Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcvs2git2009-05-21 05:10:00 +0000
committercvs2git2009-05-21 05:10:00 +0000
commitfa36ba2d4ca8917a880e8588aad3c32abae10182 (patch)
tree0e422ea8c62ed3044cc0cff3fd2ba69906e83fb9
parente552e609165826782e7b3175a5d95e54c9127643 (diff)
downloadorg.eclipse.mylyn.tasks-Root_e_3_3_m_3_x.tar.gz
org.eclipse.mylyn.tasks-Root_e_3_3_m_3_x.tar.xz
org.eclipse.mylyn.tasks-Root_e_3_3_m_3_x.zip
This commit was manufactured by cvs2svn to create tag 'Root_e_3_3_m_3_x'.Root_e_3_3_m_3_x
Sprout from master 2009-05-21 05:09:59 UTC relves 'NEW - bug 237042: [e3.4] use secure storage to save passwords' Cherrypick from master 2008-06-02 07:07:31 UTC spingel 'NEW - bug 220436: generalize implementation for generating incoming/outgoing change messages for tooltips and popups': org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn-feature/.settings/org.eclipse.mylyn.tasklist.prefs org.eclipse.mylyn-feature/about.html org.eclipse.mylyn-feature/build.properties org.eclipse.mylyn-feature/feature.xml org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.mylyn.tasklist.prefs org.eclipse.mylyn.bugzilla-feature/about.html org.eclipse.mylyn.bugzilla-feature/build.properties org.eclipse.mylyn.bugzilla-feature/feature.xml org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylar.tasklist.prefs org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylyn.tasklist.prefs org.eclipse.mylyn.tasks.bugs/.classpath org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.mylyn.tasklist.prefs org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF org.eclipse.mylyn.tasks.bugs/about.html org.eclipse.mylyn.tasks.bugs/build.properties org.eclipse.mylyn.tasks.bugs/plugin.properties org.eclipse.mylyn.tasks.bugs/plugin.xml org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMapping.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMappingManager.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectFeaturePage.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectProductPage.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java Cherrypick from master 2008-06-05 02:46:20 UTC spingel 'NEW - bug 235470: update Mylyn packaging and update site structure': org.eclipse.mylyn.sdk-feature/build.properties org.eclipse.mylyn.sdk-feature/feature.xml org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/BundleGroupContainer.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureGroup.java Delete: org.eclipse.mylyn-feature/feature.properties org.eclipse.mylyn.bugzilla-feature/feature.properties org.eclipse.mylyn.bugzilla.core/.classpath org.eclipse.mylyn.bugzilla.core/.cvsignore org.eclipse.mylyn.bugzilla.core/.project org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF org.eclipse.mylyn.bugzilla.core/about.html org.eclipse.mylyn.bugzilla.core/build-user.xml org.eclipse.mylyn.bugzilla.core/build.properties org.eclipse.mylyn.bugzilla.core/plugin.properties org.eclipse.mylyn.bugzilla.core/plugin.xml org.eclipse.mylyn.bugzilla.core/schema/languages.exsd org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttribute.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttributeMapper.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientFactory.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientManager.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCorePlugin.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCustomField.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlag.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlagMapper.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaLanguageSettings.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaOperation.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaStatus.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskAttachmentHandler.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaVersion.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipGetMethod.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipPostMethod.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/KeywordParser.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/MultiBugReportFactory.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfiguration.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfigurationFactory.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryQueryResultsFactory.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxBugzillaQueryContentHandler.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxConfigurationContentHandler.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/UnrecognizedReponseException.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AssignmentEvent.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentEvent.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlag.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagState.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagStatus.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/BugzillaTaskHistoryParser.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/Messages.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionEvent.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionType.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusEvent.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusType.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskHistory.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskRevision.java org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/messages.properties org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties org.eclipse.mylyn.bugzilla.tests/.classpath org.eclipse.mylyn.bugzilla.tests/.cvsignore org.eclipse.mylyn.bugzilla.tests/.project org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.api.tools.prefs org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF org.eclipse.mylyn.bugzilla.tests/about.html org.eclipse.mylyn.bugzilla.tests/build.properties org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaTests.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaProductParserTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepository32Test.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchDialogTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskCompletionTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskDataHandlerTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskHyperlinkDetectorTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestPlugin.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestUtil.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaVersionTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/IBugzillaTestConstants.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryEditorWizardTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryReportFactoryTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskEditorTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaQueryTest.java org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaTaskHistoryTest.java org.eclipse.mylyn.bugzilla.tests/testdata/configuration/rdfconfig218.txt org.eclipse.mylyn.bugzilla.tests/testdata/contexts/.cvsignore org.eclipse.mylyn.bugzilla.tests/testdata/contexts/empty.txt org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-1-full.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-eclipse.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-hipikat.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/cdt-page.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug220.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug2201.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/equinox-page.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/gmt-page.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/hipikat-copy-bug-1-full.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/platform-page.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/product-page-1-product-hipikat.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-220.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-2201.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-222attachment.html org.eclipse.mylyn.bugzilla.tests/testdata/pages/ve-page.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/1.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/2.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/40152.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4548.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4862.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/67395.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76146.html org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76388.html org.eclipse.mylyn.bugzilla.ui/.classpath org.eclipse.mylyn.bugzilla.ui/.cvsignore org.eclipse.mylyn.bugzilla.ui/.project org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF org.eclipse.mylyn.bugzilla.ui/about.html org.eclipse.mylyn.bugzilla.ui/build-user.xml org.eclipse.mylyn.bugzilla.ui/build.properties org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-comment.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-dirty.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-favorite.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-new.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search-new.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-small.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-conflicting.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-incoming.gif org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-outgoing.gif org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-new.gif org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-refresh.gif org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug.gif org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-remote.gif org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository-new.gif org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/bugzilla-logo.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bug.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bugzilla.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-critical.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-enhancement.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-feature.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-major.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-minor.gif org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-normal.gif org.eclipse.mylyn.bugzilla.ui/icons/find.gif org.eclipse.mylyn.bugzilla.ui/icons/wizban/bug-wizard.gif org.eclipse.mylyn.bugzilla.ui/plugin.properties org.eclipse.mylyn.bugzilla.ui/plugin.xml org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaImages.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaSearchHandler.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiExtensionReader.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiPlugin.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaNotObsoleteAttachmentAction.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaObsoleteAttachmentAction.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaUpdateAttachmentAction.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/Messages.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/UpdateAttachmentJob.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/messages.properties org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaCcAttributeEditor.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaKeywordAttributeEditor.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPlanningEditorPart.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPage.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPageFactory.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaVotesEditor.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/FlagAttributeEditor.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/KeywordsDialog.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/Messages.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/messages.properties org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSeveritySearchSorter.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaStateSearchSorter.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/Messages.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/messages.properties org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaConnectorUi.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryDialog.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskAttachmentPage.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskListMigrator.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/StackTrace.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/Messages.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/NewBugzillaTaskWizard.java org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/messages.properties org.eclipse.mylyn.help.sdk/.classpath org.eclipse.mylyn.help.sdk/.cvsignore org.eclipse.mylyn.help.sdk/.externalToolBuilders/Javadoc Builder.launch org.eclipse.mylyn.help.sdk/.project org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.help.sdk/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.help.sdk/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.help.sdk/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.help.sdk/META-INF/MANIFEST.MF org.eclipse.mylyn.help.sdk/about.html org.eclipse.mylyn.help.sdk/build-helper.xml org.eclipse.mylyn.help.sdk/build.properties org.eclipse.mylyn.help.sdk/customBuildCallbacks.xml org.eclipse.mylyn.help.sdk/doc/book.css org.eclipse.mylyn.help.sdk/doc/notices.html org.eclipse.mylyn.help.sdk/plugin.properties org.eclipse.mylyn.help.sdk/plugin.xml org.eclipse.mylyn.help.sdk/src/.placeholder org.eclipse.mylyn.help.sdk/toc-reference.xml org.eclipse.mylyn.help.sdk/toc.xml org.eclipse.mylyn.help.ui/.classpath org.eclipse.mylyn.help.ui/.cvsignore org.eclipse.mylyn.help.ui/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch org.eclipse.mylyn.help.ui/.project org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.help.ui/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.help.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF org.eclipse.mylyn.help.ui/about.html org.eclipse.mylyn.help.ui/build-helper.xml org.eclipse.mylyn.help.ui/build.properties org.eclipse.mylyn.help.ui/cheatsheets/Query.xml org.eclipse.mylyn.help.ui/cheatsheets/TaskFocus.xml org.eclipse.mylyn.help.ui/customBuildCallbacks.xml org.eclipse.mylyn.help.ui/doc/book.css org.eclipse.mylyn.help.ui/doc/images/2.0/ui-legend.gif org.eclipse.mylyn.help.ui/doc/images/2.0/welcome.gif org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-edit.gif org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-switch.gif org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-local-users.gif org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-time-tracking.gif org.eclipse.mylyn.help.ui/doc/images/2.0M1/java-editor-hyperlink.gif org.eclipse.mylyn.help.ui/doc/images/2.0M1/jira-editor-hyperlink.gif org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-context-editor.gif org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-editor-progress.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/bugzilla-due-dates.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-apply-attachments.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-quick-view.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/hyperlinks-text.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/jira-java-hyperlinks.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/repository-settings-proxy.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/synchronize-view-add.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/task-editor-warning.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/tasklist-schedule.gif org.eclipse.mylyn.help.ui/doc/images/2.0M2/trac-hyperlinks.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/annotation-hyperlinks.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/bugzilla-subtasks.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/jira-attachments.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-editor-error.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-tooltip-incoming.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasklist-tree.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-content-assist.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-working-sets.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-annotations.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-history.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-legend-connectors.gif org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-usage-report.gif org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-cached-config.png org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-custom-resolutions.png org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-search-keywords.png org.eclipse.mylyn.help.ui/doc/images/2.1M1/screenshot-capture.png org.eclipse.mylyn.help.ui/doc/images/2.1M1/spelling-corrections.png org.eclipse.mylyn.help.ui/doc/images/2.1M1/task-editor-hyperlinks.png org.eclipse.mylyn.help.ui/doc/images/2.1M1/tasklist-search.png org.eclipse.mylyn.help.ui/doc/images/mylyn-2.0.png org.eclipse.mylyn.help.ui/doc/new.html org.eclipse.mylyn.help.ui/doc/notices.html org.eclipse.mylyn.help.ui/doc/overview.html org.eclipse.mylyn.help.ui/extract-markup.xsl org.eclipse.mylyn.help.ui/icons/etool16/icons-legend.gif org.eclipse.mylyn.help.ui/images/mylyn-overview-small.gif org.eclipse.mylyn.help.ui/images/mylyn-overview.gif org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48.gif org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48_hov.gif org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48.gif org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48_hov.gif org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48.gif org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48_hov.gif org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48.gif org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48_hov.gif org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48.gif org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48_hov.gif org.eclipse.mylyn.help.ui/intro/css/overview.css org.eclipse.mylyn.help.ui/intro/css/overview.properties org.eclipse.mylyn.help.ui/intro/css/tutorials.css org.eclipse.mylyn.help.ui/intro/css/tutorials.properties org.eclipse.mylyn.help.ui/intro/css/whatsnew.css org.eclipse.mylyn.help.ui/intro/css/whatsnew.properties org.eclipse.mylyn.help.ui/intro/overviewExtensionContent.xml org.eclipse.mylyn.help.ui/intro/tutorialsExtensionContent.xml org.eclipse.mylyn.help.ui/intro/whatsnewExtensionContent.xml org.eclipse.mylyn.help.ui/plugin.properties org.eclipse.mylyn.help.ui/plugin.xml org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties org.eclipse.mylyn.help.ui/toc.xml org.eclipse.mylyn.help.ui/userguide/Mylyn Reference-toc.xml org.eclipse.mylyn.help.ui/userguide/Mylyn Reference.html org.eclipse.mylyn.help.ui/userguide/Preferences.html org.eclipse.mylyn.help.ui/userguide/Shortcuts.html org.eclipse.mylyn.help.ui/userguide/Task-Editor.html org.eclipse.mylyn.help.ui/userguide/Task-Focused-Interface.html org.eclipse.mylyn.help.ui/userguide/Task-Repositories.html org.eclipse.mylyn.help.ui/userguide/Task-Repository-Connectors.html org.eclipse.mylyn.help.ui/userguide/Team-Support.html org.eclipse.mylyn.help.ui/userguide/Updating-This-Document.html org.eclipse.mylyn.help.ui/userguide/book.css org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Focused-Editor.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Local-Task.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Package-Explorer-Focused.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-Task-Repository.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-To-Context.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Category-Progress.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Change-Sets.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Context-Tab.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Error-Log.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Query-Combined.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Task.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Open-Task.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Planning-Tab.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Bottom.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Top.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Categorized.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Presentation-Select.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Tooltip.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-UI-Legend.png org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Weekly-Progress.png org.eclipse.mylyn.help.ui/userguide/images/Generic-web-repository-settings.gif org.eclipse.mylyn.help.ui/userguide/images/XPlannerTaskEditor.gif org.eclipse.mylyn.help.ui/userguide/images/XPlannerUserStoryEditor.gif org.eclipse.mylyn.help.ui/userguide/images/images/home.gif org.eclipse.mylyn.help.ui/userguide/images/images/next.gif org.eclipse.mylyn.help.ui/userguide/images/images/prev.gif org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview-small.gif org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview.gif org.eclipse.mylyn.sdk-feature/feature.properties org.eclipse.mylyn.tasks.bugs/icons/etool16/task-new.gif org.eclipse.mylyn.tasks.bugs/schema/support.exsd org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProduct.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProvider.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportRequest.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ITaskContribution.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AbstractSupportElement.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/Messages.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/ProductRepositoryMapping.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProduct.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProvider.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProviderManager.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportRequest.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/Messages.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/messages.properties org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/messages.properties org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties org.eclipse.mylyn.tasks.tests/.classpath org.eclipse.mylyn.tasks.tests/.cvsignore org.eclipse.mylyn.tasks.tests/.project org.eclipse.mylyn.tasks.tests/.settings/.api_filters org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.api.tools.prefs org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF org.eclipse.mylyn.tasks.tests/about.html org.eclipse.mylyn.tasks.tests/build.properties org.eclipse.mylyn.tasks.tests/plugin.xml org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksPerformanceTests.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AttachmentSizeFormatterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/BackgroundSaveTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentGroupStrategyTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentQuoterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/DateRangeTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/LinkProviderTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskFromSelectionActionTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ProjectRepositoryAssociationTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositorySettingsPageTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTemplateManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ScheduledPresentationTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/StackTraceDuplicateDetectorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationActionTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationHistoryTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityTimingTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskContainerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataStoreTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDiffUtilTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskExportImportTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskKeyComparatorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListBackupManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListContentProviderTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDropAdapterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListPresentationTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSaveManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSorterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoriesExternalizerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryFilterTests.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositorySorterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTestUtil.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskWorkingSetTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksTestsPlugin.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUiUtilTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUtilTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnectorUi.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockTask.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/FileTaskAttachmentSourceTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/ITasksCoreConstantsTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskListUnmatchedContainerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskRepositoryLocationTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/data/TaskDataExternalizerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskContainerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskListPerformanceTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/ContextPerspectiveManagerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/MarkTaskHandlerTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/RetrieveTitleFromUrlTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskAttachmentPropertyTesterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskHyperlinkDetectorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskListFilterTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskRelationHyperlinkDetectorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorPartDescriptorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/util/TestTaskDataCollector.java org.eclipse.mylyn.tasks.tests/testdata/activityTests/.activity.xml.zip org.eclipse.mylyn.tasks.tests/testdata/activityTests/activity.xml.zip org.eclipse.mylyn.tasks.tests/testdata/legacy/tasklist_0_4_8.xml org.eclipse.mylyn.tasks.tests/testdata/performance/tasklist-4000.xml.zip org.eclipse.mylyn.tasks.tests/testdata/taskdata-1.0-bug-219897.zip org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/context-history.xml org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-69.xml org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-70.xml org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2007-01-19.zip org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/tasklist.xml org.eclipse.mylyn.tasks.tests/testdata/tasklistdatamigrationtest/empty.txt org.eclipse.mylyn.tasks.ui/.classpath org.eclipse.mylyn.tasks.ui/.cvsignore org.eclipse.mylyn.tasks.ui/.options org.eclipse.mylyn.tasks.ui/.project org.eclipse.mylyn.tasks.ui/.settings/.api_filters org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF org.eclipse.mylyn.tasks.ui/about.html org.eclipse.mylyn.tasks.ui/build.properties org.eclipse.mylyn.tasks.ui/doc/book.css org.eclipse.mylyn.tasks.ui/doc/bugzilla.html org.eclipse.mylyn.tasks.ui/doc/images/tasklist-overview.gif org.eclipse.mylyn.tasks.ui/doc/planning.html org.eclipse.mylyn.tasks.ui/doc/tasklist.html org.eclipse.mylyn.tasks.ui/doc/toc.xml org.eclipse.mylyn.tasks.ui/icons/archive/bug-search.gif org.eclipse.mylyn.tasks.ui/icons/archive/filter-archive.gif org.eclipse.mylyn.tasks.ui/icons/archive/find.gif org.eclipse.mylyn.tasks.ui/icons/archive/overlay-due.gif org.eclipse.mylyn.tasks.ui/icons/archive/overlay-offline.gif org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository-context.gif org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository.gif org.eclipse.mylyn.tasks.ui/icons/archive/overlay-web.gif org.eclipse.mylyn.tasks.ui/icons/archive/task-activity.gif org.eclipse.mylyn.tasks.ui/icons/archive/task-bug.gif org.eclipse.mylyn.tasks.ui/icons/archive/task-items.gif org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-completed.gif org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-notes.gif org.eclipse.mylyn.tasks.ui/icons/archive/task-server.gif org.eclipse.mylyn.tasks.ui/icons/elcl16/bug-search.gif org.eclipse.mylyn.tasks.ui/icons/etool12/reply.gif org.eclipse.mylyn.tasks.ui/icons/etool12/repository-synchronize-small.png org.eclipse.mylyn.tasks.ui/icons/etool12/task-narrow.gif org.eclipse.mylyn.tasks.ui/icons/etool16/bug-report.gif org.eclipse.mylyn.tasks.ui/icons/etool16/calendar.gif org.eclipse.mylyn.tasks.ui/icons/etool16/capture-pause.gif org.eclipse.mylyn.tasks.ui/icons/etool16/category-archive.gif org.eclipse.mylyn.tasks.ui/icons/etool16/category-new.gif org.eclipse.mylyn.tasks.ui/icons/etool16/category.gif org.eclipse.mylyn.tasks.ui/icons/etool16/comment.gif org.eclipse.mylyn.tasks.ui/icons/etool16/compare.png org.eclipse.mylyn.tasks.ui/icons/etool16/context-add.gif org.eclipse.mylyn.tasks.ui/icons/etool16/context-attach.gif org.eclipse.mylyn.tasks.ui/icons/etool16/context-clear.gif org.eclipse.mylyn.tasks.ui/icons/etool16/context-retrieve.gif org.eclipse.mylyn.tasks.ui/icons/etool16/context-transfer.gif org.eclipse.mylyn.tasks.ui/icons/etool16/export.gif org.eclipse.mylyn.tasks.ui/icons/etool16/icons-legend.gif org.eclipse.mylyn.tasks.ui/icons/etool16/import.gif org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-next.gif org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-active.gif org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-pause.gif org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous.gif org.eclipse.mylyn.tasks.ui/icons/etool16/open-repository-task.gif org.eclipse.mylyn.tasks.ui/icons/etool16/open-task.gif org.eclipse.mylyn.tasks.ui/icons/etool16/person.gif org.eclipse.mylyn.tasks.ui/icons/etool16/query-new.gif org.eclipse.mylyn.tasks.ui/icons/etool16/query-unmatched.png org.eclipse.mylyn.tasks.ui/icons/etool16/query.gif org.eclipse.mylyn.tasks.ui/icons/etool16/reply.gif org.eclipse.mylyn.tasks.ui/icons/etool16/repository-new.gif org.eclipse.mylyn.tasks.ui/icons/etool16/repository-submit.gif org.eclipse.mylyn.tasks.ui/icons/etool16/repository-synchronize.gif org.eclipse.mylyn.tasks.ui/icons/etool16/sub-task-new.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-active-centered.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-active.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-complete.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-completed.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-context.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive-centered.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-incomplete.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-new.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-notes.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-remote.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-history.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-new.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task-retrieve.gif org.eclipse.mylyn.tasks.ui/icons/etool16/task.gif org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-export.png org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-import.png org.eclipse.mylyn.tasks.ui/icons/eview16/focus.gif org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-due.gif org.eclipse.mylyn.tasks.ui/icons/eview16/perspective-planning.png org.eclipse.mylyn.tasks.ui/icons/eview16/repositories-blue.gif org.eclipse.mylyn.tasks.ui/icons/eview16/repositories.gif org.eclipse.mylyn.tasks.ui/icons/eview16/repository-middle.gif org.eclipse.mylyn.tasks.ui/icons/eview16/repository.gif org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif org.eclipse.mylyn.tasks.ui/icons/eview16/task-search.gif org.eclipse.mylyn.tasks.ui/icons/obj16/attachment-patch.gif org.eclipse.mylyn.tasks.ui/icons/obj16/repository-small.gif org.eclipse.mylyn.tasks.ui/icons/obj16/resource_obj.gif org.eclipse.mylyn.tasks.ui/icons/obj16/workingSet.gif org.eclipse.mylyn.tasks.ui/icons/ovr16/overlay-local.gif org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-context.gif org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-settings.gif org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository.gif org.eclipse.mylyn.tasks.ui/icons/wizban/secur_role_wiz.gif org.eclipse.mylyn.tasks.ui/icons/wizban/workset_wiz.png org.eclipse.mylyn.tasks.ui/plugin.properties org.eclipse.mylyn.tasks.ui/plugin.xml org.eclipse.mylyn.tasks.ui/schema/actions.exsd org.eclipse.mylyn.tasks.ui/schema/duplicateDetectors.exsd org.eclipse.mylyn.tasks.ui/schema/editors.exsd org.eclipse.mylyn.tasks.ui/schema/presentations.exsd org.eclipse.mylyn.tasks.ui/schema/projectLinkProviders.exsd org.eclipse.mylyn.tasks.ui/schema/repositories.exsd org.eclipse.mylyn.tasks.ui/schema/taskEditorExtensions.exsd org.eclipse.mylyn.tasks.ui/schema/taskRepositoryPageContribution.exsd org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AddExistingTaskJob.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CategorizedPresentation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ChangeActivityHandleOperation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ComboSelectionDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/IDynamicSubMenuContributor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskCommandIds.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskHighlighter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskListNotificationProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryConnectorUi.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonContentProposal.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PlanningPerspectiveFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleDatePicker.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduledPresentation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskArchiveFilter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskCompletionFilter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskEditorBloatMonitor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryDropDown.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHyperlink.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskJobFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskLabelDecorator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListModifyOperation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListNotificationManager.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListSynchronizationScheduler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskPriorityFilter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryComparator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryLocationUi.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskSearchPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksAdapterFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksReminderDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractChangeCompletionAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskEditorAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskRepositoryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskDialogAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskHistoryDropDownAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ClearOutgoingAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CloneTaskAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CollapseAllAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CommentActionGroup.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CompareAttachmentsAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyCommentDetailsAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeactivateAllTasksAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskEditorAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DisconnectRepositoryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/EditRepositoryPropertiesAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExpandAllAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExportAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FilterCompletedTasksAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoIntoAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoUpAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ImportAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/LinkWithEditorAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewCategoryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewSubTaskAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskFromSelectionAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenRepositoryTaskAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskListElementAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskSearchAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTasksUiPreferencesAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PresentationDropDownSelectionAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/QueryCloneAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RefreshRepositoryTasksAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RestoreTaskListAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SearchForRepositoryTask.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInSearchViewAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInTaskListAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTaskRepositoriesViewAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTasksUiLegendAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAllAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAutomaticallyAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeEditorAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskActivateAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskDeactivateAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorCopyAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorScheduleAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListSortAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleAllWorkingSetsAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleTaskActivationAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleWorkingSetAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskListViewHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AddTaskRepositoryHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/CollapseAllHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/GoToUnreadTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MaximizePartHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewLocalTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewSubTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenRepositoryTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenSelectedTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInBrowserHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInDefaultEditorHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskListElementPropertiesHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskRepositoryPropertiesHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/SubmitTaskHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskListToolTipHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskRepositoryParameterValues.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/ViewSourceHandler.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/AbstractWorkingSetDialogCOPY.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskRepositoryCredentialsDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractReplyToCommentAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentSizeFormatter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentTableLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BooleanAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BrowserPreviewViewer.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditorInput.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/DateAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorBusyIndicator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/FillWidthLayout.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/HighlightingHyperlinkTextPresentationManager.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/IBusyEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/MultiSelectionAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PersonAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPageFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryCompletionProcessor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryTextViewerConfiguration.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/SingleSelectionAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentDropListener.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentEditorInput.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentStorage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttachmentPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorCommentPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorDescriptionPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionReader.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionSettingsContribution.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorInputFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNewCommentPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNotesPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlineNode.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlinePage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorSummaryPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkDetector.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkTextPresentationManager.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskListChangeAdapter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskMigrator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TextAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TraverseOnTabKeyListener.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskAttributeDiff.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDataDiff.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotification.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationPopup.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationQueryIncoming.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationReminder.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotifier.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectPropertiesLinkProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectTaskRepositoryPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/CreateQueryFromSearchAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResult.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchHitCollector.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultContentProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSortAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSorter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultTreeContentProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultsLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchScoreComputerAdapterFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/StackTraceDuplicateDetector.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AbstractRetrieveTitleFromUrlJob.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AttachmentUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ClipboardCopier.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/CopyAttachmentToClipboardJob.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DownloadAttachmentJob.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ImportExportUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/PlatformUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/SelectionProviderAdapter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskAttachmentPropertyTester.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskContainerComparator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataSnapshotOperation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskPropertyTester.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskRepositoryPropertyTester.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiMenus.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TreeWalker.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/WebBrowserDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListContentProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListPresentation.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/PriorityDropDownAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TableDecoratingLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskDetailLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskInputDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListCellModifier.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListSorter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesSorter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskTableLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/WorkweekProgressBar.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentPreviewPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentSourcePage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/MultiRepositoryAwareWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewAttachmentWizardDialog.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalCategoryWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewQueryWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskWizardInternal.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewWebTaskPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryConnectorPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskAttachmentWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizardPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizardPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/Messages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetAdapterFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementAdapter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/WorkingSetLabelComparator.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/messages.properties org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskHyperlinkDetector.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskRepositoryLinkProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/IHighlightingHyperlink.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiConstants.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/LegendElement.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlink.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlinkPresenter.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskRepositoryLocationUiFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUi.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiImages.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRenderingEngine.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorExtension.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPageFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorFactory.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorToolkit.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/BrowserFormPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/LayoutHint.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorPartDescriptor.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositoryQueryPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPageContribution.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPageContainer.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewTaskWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/RepositoryQueryWizard.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskAttachmentPage.java org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskRepositoryWizardDialog.java org.eclipse.mylyn.test-feature/.project org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.test-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.test-feature/about.html org.eclipse.mylyn.test-feature/build.properties org.eclipse.mylyn.test-feature/epl-v10.html org.eclipse.mylyn.test-feature/feature.xml org.eclipse.mylyn.test-feature/license.html org.eclipse.mylyn.trac-feature/.project org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.trac-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.trac-feature/about.html org.eclipse.mylyn.trac-feature/build.properties org.eclipse.mylyn.trac-feature/epl-v10.html org.eclipse.mylyn.trac-feature/feature.properties org.eclipse.mylyn.trac-feature/feature.xml org.eclipse.mylyn.trac-feature/license.html org.eclipse.mylyn.trac.core/.classpath org.eclipse.mylyn.trac.core/.cvsignore org.eclipse.mylyn.trac.core/.project org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.trac.core/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.trac.core/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.trac.core/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF org.eclipse.mylyn.trac.core/about.html org.eclipse.mylyn.trac.core/build.properties org.eclipse.mylyn.trac.core/plugin.properties org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/Messages.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttribute.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttributeMapper.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientFactory.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientManager.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracCorePlugin.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskMapper.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracWikiHandler.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractWikiHandler.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracWikiClient.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidTicketException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidWikiPageException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracClientData.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracLoginException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracNoSuchMethodException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracPermissionDeniedException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracProxyAuthenticationException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracRemoteException.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/messages.properties org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/messages.properties org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracAttachment.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComment.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComponent.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracMilestone.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracPriority.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracRepositoryAttribute.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearchFilter.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSeverity.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicket.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketAttribute.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketField.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketResolution.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketStatus.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketType.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracVersion.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPage.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPageInfo.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/HttpMethodInterceptor.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/Messages.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracHttpClientTransportFactory.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracUtil.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracXmlRpcClientRequest.java org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/messages.properties org.eclipse.mylyn.trac.tests/.classpath org.eclipse.mylyn.trac.tests/.cvsignore org.eclipse.mylyn.trac.tests/.project org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.trac.tests/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.trac.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.trac.tests/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.trac.tests/META-INF/MANIFEST.MF org.eclipse.mylyn.trac.tests/about.html org.eclipse.mylyn.trac.tests/build.properties org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtilStandaloneTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracHeadlessStandaloneTests.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientRepositoryTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientSearchTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientFactoryTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientProxyTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracSearchTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientSearchTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientSearchTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/RepositorySearchTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracAttachmentHandlerTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracClientManagerTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryConnectorTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryQueryTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracUtilTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestFixture.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestProxy.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestCleanupUtil.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestConstants.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/XmlRpcServer.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracHyperlinkUtilTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracRepositorySettingsPageTest.java org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracTaskEditorTest.java org.eclipse.mylyn.trac.ui/.classpath org.eclipse.mylyn.trac.ui/.cvsignore org.eclipse.mylyn.trac.ui/.project org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.core.prefs org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.ui.prefs org.eclipse.mylyn.trac.ui/.settings/org.eclipse.ltk.core.refactoring.prefs org.eclipse.mylyn.trac.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs org.eclipse.mylyn.trac.ui/.settings/org.eclipse.pde.prefs org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF org.eclipse.mylyn.trac.ui/about.html org.eclipse.mylyn.trac.ui/build.properties org.eclipse.mylyn.trac.ui/icons/etool16/task-repository.gif org.eclipse.mylyn.trac.ui/icons/eview16/overlay-critical.gif org.eclipse.mylyn.trac.ui/icons/eview16/overlay-enhancement.gif org.eclipse.mylyn.trac.ui/icons/eview16/overlay-trac.gif org.eclipse.mylyn.trac.ui/icons/eview16/trac-icon.gif org.eclipse.mylyn.trac.ui/plugin.properties org.eclipse.mylyn.trac.ui/plugin.xml org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/Messages.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracConnectorUi.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkDetector.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtil.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracImages.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracSearchHandler.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskListMigrator.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracUiPlugin.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/WebHyperlink.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/Messages.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracCcAttributeEditor.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracPeoplePart.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracRenderingEngine.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPage.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPageFactory.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/messages.properties org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/messages.properties org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/Messages.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracFilterQueryPage.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracQueryPage.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracRepositorySettingsPage.java org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/messages.properties
-rw-r--r--org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--org.eclipse.mylyn-feature/.settings/org.eclipse.mylyn.tasklist.prefs (renamed from org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs)2
-rw-r--r--org.eclipse.mylyn-feature/about.html2
-rw-r--r--org.eclipse.mylyn-feature/build.properties3
-rw-r--r--org.eclipse.mylyn-feature/feature.properties50
-rw-r--r--org.eclipse.mylyn-feature/feature.xml106
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.mylyn.tasklist.prefs (renamed from org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.mylyn.tasks.ui.prefs)2
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/about.html2
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/build.properties6
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/feature.properties48
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/feature.xml70
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.classpath15
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.cvsignore3
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.project34
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF18
-rw-r--r--org.eclipse.mylyn.bugzilla.core/about.html27
-rw-r--r--org.eclipse.mylyn.bugzilla.core/build-user.xml3
-rw-r--r--org.eclipse.mylyn.bugzilla.core/build.properties16
-rw-r--r--org.eclipse.mylyn.bugzilla.core/plugin.properties3
-rw-r--r--org.eclipse.mylyn.bugzilla.core/plugin.xml13
-rw-r--r--org.eclipse.mylyn.bugzilla.core/schema/languages.exsd116
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java134
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttribute.java233
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttributeMapper.java304
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java1904
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientFactory.java40
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientManager.java82
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCorePlugin.java393
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCustomField.java101
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlag.java116
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlagMapper.java136
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaLanguageSettings.java107
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaOperation.java67
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java569
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaStatus.java111
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskAttachmentHandler.java101
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java648
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaVersion.java125
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipGetMethod.java70
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipPostMethod.java69
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java273
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/KeywordParser.java7
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java255
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/MultiBugReportFactory.java62
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfiguration.java700
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfigurationFactory.java57
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryQueryResultsFactory.java42
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxBugzillaQueryContentHandler.java106
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxConfigurationContentHandler.java584
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java636
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/UnrecognizedReponseException.java26
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java71
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AssignmentEvent.java38
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentEvent.java160
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlag.java48
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagState.java19
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagStatus.java19
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/BugzillaTaskHistoryParser.java236
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/Messages.java31
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionEvent.java42
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionType.java98
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusEvent.java37
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusType.java101
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskHistory.java118
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskRevision.java118
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/messages.properties2
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties122
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.classpath15
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.cvsignore2
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.project34
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.api.tools.prefs145
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF35
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/about.html27
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/build.properties17
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java182
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaTests.java49
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java256
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaProductParserTest.java88
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepository32Test.java484
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java1208
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchDialogTest.java71
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchTest.java119
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskCompletionTest.java107
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskDataHandlerTest.java182
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskHyperlinkDetectorTest.java284
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListTest.java172
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestPlugin.java100
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestUtil.java54
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaVersionTest.java74
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java100
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/IBugzillaTestConstants.java39
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryEditorWizardTest.java189
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryReportFactoryTest.java464
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java59
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskEditorTest.java119
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java190
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaQueryTest.java236
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaTaskHistoryTest.java146
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/configuration/rdfconfig218.txt461
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/contexts/.cvsignore1
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/contexts/empty.txt0
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-1-full.html719
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-eclipse.html158
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-hipikat.html142
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/cdt-page.html184
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug220.html441
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug2201.html493
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/equinox-page.html177
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/gmt-page.html175
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/hipikat-copy-bug-1-full.html157
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/platform-page.html299
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/product-page-1-product-hipikat.html256
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-220.html667
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-2201.html859
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-222attachment.html859
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/pages/ve-page.html178
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/1.html377
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/2.html406
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/40152.html1228
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4548.html377
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4862.html401
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/67395.html390
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76146.html406
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76388.html426
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.classpath17
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.cvsignore1
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.project34
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF31
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/about.html27
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/build-user.xml3
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/build.properties18
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-comment.gifbin343 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-dirty.gifbin237 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-favorite.gifbin358 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-new.gifbin233 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search-new.gifbin596 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search.gifbin583 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-small.gifbin132 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug.gifbin159 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-conflicting.gifbin187 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-incoming.gifbin114 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-outgoing.gifbin64 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-new.gifbin359 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-refresh.gifbin362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug.gifbin339 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-remote.gifbin89 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository-new.gifbin339 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository.gifbin216 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/bugzilla-logo.gifbin1026 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bug.gifbin77 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bugzilla.gifbin275 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-critical.gifbin105 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-enhancement.gifbin81 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-feature.gifbin78 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-major.gifbin77 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-minor.gifbin77 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-normal.gifbin78 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/find.gifbin157 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/icons/wizban/bug-wizard.gifbin3895 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/plugin.properties7
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/plugin.xml106
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaImages.java100
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaSearchHandler.java48
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiExtensionReader.java93
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiPlugin.java242
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaNotObsoleteAttachmentAction.java24
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaObsoleteAttachmentAction.java23
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaUpdateAttachmentAction.java115
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/Messages.java40
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/UpdateAttachmentJob.java156
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/messages.properties6
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaCcAttributeEditor.java96
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaKeywordAttributeEditor.java115
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java209
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPlanningEditorPart.java168
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPage.java368
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPageFactory.java67
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaVotesEditor.java116
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/FlagAttributeEditor.java181
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/KeywordsDialog.java160
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/Messages.java51
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/messages.properties17
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java1960
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSeveritySearchSorter.java79
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaStateSearchSorter.java96
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/Messages.java113
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/messages.properties43
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaConnectorUi.java221
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryDialog.java116
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java126
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java88
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java348
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskAttachmentPage.java188
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskListMigrator.java77
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java83
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/StackTrace.java373
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties31
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/Messages.java40
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/NewBugzillaTaskWizard.java150
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/messages.properties12
-rw-r--r--org.eclipse.mylyn.help.sdk/.classpath7
-rw-r--r--org.eclipse.mylyn.help.sdk/.cvsignore4
-rw-r--r--org.eclipse.mylyn.help.sdk/.externalToolBuilders/Javadoc Builder.launch20
-rw-r--r--org.eclipse.mylyn.help.sdk/.project44
-rw-r--r--org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.help.sdk/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.help.sdk/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.help.sdk/META-INF/MANIFEST.MF10
-rw-r--r--org.eclipse.mylyn.help.sdk/about.html27
-rw-r--r--org.eclipse.mylyn.help.sdk/build-helper.xml52
-rw-r--r--org.eclipse.mylyn.help.sdk/build.properties17
-rw-r--r--org.eclipse.mylyn.help.sdk/customBuildCallbacks.xml159
-rw-r--r--org.eclipse.mylyn.help.sdk/doc/book.css1
-rw-r--r--org.eclipse.mylyn.help.sdk/doc/notices.html22
-rw-r--r--org.eclipse.mylyn.help.sdk/plugin.properties3
-rw-r--r--org.eclipse.mylyn.help.sdk/plugin.xml31
-rw-r--r--org.eclipse.mylyn.help.sdk/src/.placeholder0
-rw-r--r--org.eclipse.mylyn.help.sdk/toc-reference.xml45
-rw-r--r--org.eclipse.mylyn.help.sdk/toc.xml18
-rw-r--r--org.eclipse.mylyn.help.ui/.classpath7
-rw-r--r--org.eclipse.mylyn.help.ui/.cvsignore2
-rw-r--r--org.eclipse.mylyn.help.ui/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch7
-rw-r--r--org.eclipse.mylyn.help.ui/.project34
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF17
-rw-r--r--org.eclipse.mylyn.help.ui/about.html27
-rw-r--r--org.eclipse.mylyn.help.ui/build-helper.xml130
-rw-r--r--org.eclipse.mylyn.help.ui/build.properties25
-rw-r--r--org.eclipse.mylyn.help.ui/cheatsheets/Query.xml44
-rw-r--r--org.eclipse.mylyn.help.ui/cheatsheets/TaskFocus.xml86
-rw-r--r--org.eclipse.mylyn.help.ui/customBuildCallbacks.xml161
-rw-r--r--org.eclipse.mylyn.help.ui/doc/book.css1
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0/ui-legend.gifbin7738 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0/welcome.gifbin17920 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-edit.gifbin15823 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-switch.gifbin30522 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-local-users.gifbin3279 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-time-tracking.gifbin1896 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M1/java-editor-hyperlink.gifbin5524 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M1/jira-editor-hyperlink.gifbin10720 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-context-editor.gifbin12677 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-editor-progress.gifbin9620 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/bugzilla-due-dates.gifbin8738 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-apply-attachments.gifbin12514 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-quick-view.gifbin7497 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/hyperlinks-text.gifbin6654 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/jira-java-hyperlinks.gifbin4832 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/repository-settings-proxy.gifbin15317 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/synchronize-view-add.gifbin14914 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/task-editor-warning.gifbin17173 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/tasklist-schedule.gifbin14850 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M2/trac-hyperlinks.gifbin8249 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/annotation-hyperlinks.gifbin11069 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/bugzilla-subtasks.gifbin4984 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/jira-attachments.gifbin15929 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-editor-error.gifbin12088 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-tooltip-incoming.gifbin4985 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasklist-tree.gifbin33885 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-content-assist.gifbin10482 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-working-sets.gifbin5930 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-annotations.gifbin9012 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-history.gifbin15470 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-legend-connectors.gifbin8274 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-usage-report.gifbin23692 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-cached-config.pngbin7777 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-custom-resolutions.pngbin11383 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-search-keywords.pngbin14166 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/screenshot-capture.pngbin61453 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/spelling-corrections.pngbin16739 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/task-editor-hyperlinks.pngbin5562 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/2.1M1/tasklist-search.pngbin26440 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/images/mylyn-2.0.pngbin166436 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/doc/new.html916
-rw-r--r--org.eclipse.mylyn.help.ui/doc/notices.html22
-rw-r--r--org.eclipse.mylyn.help.ui/doc/overview.html63
-rw-r--r--org.eclipse.mylyn.help.ui/extract-markup.xsl9
-rw-r--r--org.eclipse.mylyn.help.ui/icons/etool16/icons-legend.gifbin200 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/mylyn-overview-small.gifbin84098 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/mylyn-overview.gifbin60126 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48_hov.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48_hov.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48.gifbin2245 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48_hov.gifbin2245 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48_hov.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48_hov.gifbin2362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/intro/css/overview.css15
-rw-r--r--org.eclipse.mylyn.help.ui/intro/css/overview.properties4
-rw-r--r--org.eclipse.mylyn.help.ui/intro/css/tutorials.css15
-rw-r--r--org.eclipse.mylyn.help.ui/intro/css/tutorials.properties4
-rw-r--r--org.eclipse.mylyn.help.ui/intro/css/whatsnew.css7
-rw-r--r--org.eclipse.mylyn.help.ui/intro/css/whatsnew.properties2
-rw-r--r--org.eclipse.mylyn.help.ui/intro/overviewExtensionContent.xml20
-rw-r--r--org.eclipse.mylyn.help.ui/intro/tutorialsExtensionContent.xml26
-rw-r--r--org.eclipse.mylyn.help.ui/intro/whatsnewExtensionContent.xml19
-rw-r--r--org.eclipse.mylyn.help.ui/plugin.properties9
-rw-r--r--org.eclipse.mylyn.help.ui/plugin.xml59
-rw-r--r--org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java147
-rw-r--r--org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties1
-rw-r--r--org.eclipse.mylyn.help.ui/toc.xml17
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Mylyn Reference-toc.xml55
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Mylyn Reference.html409
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Preferences.html143
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Shortcuts.html95
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Task-Editor.html217
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Task-Focused-Interface.html107
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Task-Repositories.html76
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Task-Repository-Connectors.html200
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Team-Support.html106
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/Updating-This-Document.html54
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/book.css1
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Focused-Editor.pngbin25330 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Local-Task.pngbin24367 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Package-Explorer-Focused.pngbin14930 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-Task-Repository.pngbin63168 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-To-Context.pngbin17025 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Category-Progress.pngbin23926 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Change-Sets.pngbin26006 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Context-Tab.pngbin44388 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Error-Log.pngbin38789 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Query-Combined.pngbin60615 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Task.pngbin7873 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Open-Task.pngbin45630 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Planning-Tab.pngbin21151 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Bottom.pngbin50812 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Top.pngbin50018 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Categorized.pngbin36082 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Presentation-Select.pngbin13294 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Tooltip.pngbin31517 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-UI-Legend.pngbin32583 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Weekly-Progress.pngbin20747 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/Generic-web-repository-settings.gifbin20696 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/XPlannerTaskEditor.gifbin44656 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/XPlannerUserStoryEditor.gifbin34610 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/images/home.gifbin582 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/images/next.gifbin327 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/images/prev.gifbin327 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview-small.gifbin84098 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview.gifbin60126 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylar.tasklist.prefs (renamed from org.eclipse.mylyn.help.sdk/.settings/org.eclipse.mylyn.tasks.ui.prefs)2
-rw-r--r--org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylyn.tasklist.prefs (renamed from org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs)2
-rw-r--r--org.eclipse.mylyn.sdk-feature/build.properties7
-rw-r--r--org.eclipse.mylyn.sdk-feature/feature.properties48
-rw-r--r--org.eclipse.mylyn.sdk-feature/feature.xml77
-rw-r--r--org.eclipse.mylyn.tasks.bugs/.classpath1
-rw-r--r--org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.mylyn.tasklist.prefs4
-rw-r--r--org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF16
-rw-r--r--org.eclipse.mylyn.tasks.bugs/about.html2
-rw-r--r--org.eclipse.mylyn.tasks.bugs/build.properties3
-rw-r--r--org.eclipse.mylyn.tasks.bugs/icons/etool16/task-new.gifbin334 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.bugs/plugin.properties21
-rw-r--r--org.eclipse.mylyn.tasks.bugs/plugin.xml84
-rw-r--r--org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd6
-rw-r--r--org.eclipse.mylyn.tasks.bugs/schema/support.exsd322
-rw-r--r--org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd11
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java69
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProduct.java30
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProvider.java28
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportRequest.java30
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ITaskContribution.java37
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AbstractSupportElement.java68
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java217
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java181
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java40
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java90
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/Messages.java53
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMapping.java13
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMappingManager.java53
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/ProductRepositoryMapping.java53
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java56
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProduct.java136
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProvider.java57
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProviderManager.java378
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportRequest.java125
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java148
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java140
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java16
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/Messages.java47
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java81
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java81
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java8
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/messages.properties11
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/messages.properties13
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/BundleGroupContainer.java6
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java5
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureGroup.java5
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java (renamed from org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java)23
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java47
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java100
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java122
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java25
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectFeaturePage.java30
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectProductPage.java167
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java369
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties14
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java (renamed from org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java)24
-rw-r--r--org.eclipse.mylyn.tasks.tests/.classpath16
-rw-r--r--org.eclipse.mylyn.tasks.tests/.cvsignore1
-rw-r--r--org.eclipse.mylyn.tasks.tests/.project34
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/.api_filters19
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.api.tools.prefs151
-rw-r--r--org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF43
-rw-r--r--org.eclipse.mylyn.tasks.tests/about.html27
-rw-r--r--org.eclipse.mylyn.tasks.tests/build.properties17
-rw-r--r--org.eclipse.mylyn.tasks.tests/plugin.xml39
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksPerformanceTests.java29
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java103
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AttachmentSizeFormatterTest.java76
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/BackgroundSaveTest.java49
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentGroupStrategyTest.java240
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentQuoterTest.java73
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java30
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/DateRangeTest.java173
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/LinkProviderTest.java101
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskFromSelectionActionTest.java68
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java93
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java206
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ProjectRepositoryAssociationTest.java77
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java290
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java206
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositorySettingsPageTest.java268
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTemplateManagerTest.java47
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ScheduledPresentationTest.java181
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/StackTraceDuplicateDetectorTest.java100
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationActionTest.java50
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationHistoryTest.java328
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java224
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityTimingTest.java1331
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java112
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskContainerTest.java39
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java169
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java124
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java293
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataStoreTest.java196
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDiffUtilTest.java56
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskExportImportTest.java117
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskKeyComparatorTest.java69
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListBackupManagerTest.java69
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListContentProviderTest.java70
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDropAdapterTest.java66
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java384
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListPresentationTest.java33
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSaveManagerTest.java109
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSorterTest.java259
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java555
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java357
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java186
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java114
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoriesExternalizerTest.java111
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryFilterTests.java81
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java239
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositorySorterTest.java75
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryTest.java163
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java78
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTestUtil.java149
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskWorkingSetTest.java158
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksTestsPlugin.java47
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUiUtilTest.java166
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUtilTest.java47
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java57
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java173
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnectorUi.java74
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java39
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockTask.java65
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/FileTaskAttachmentSourceTest.java30
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/ITasksCoreConstantsTest.java41
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskListUnmatchedContainerTest.java296
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskRepositoryLocationTest.java106
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/data/TaskDataExternalizerTest.java193
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskContainerTest.java49
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskListPerformanceTest.java74
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/ContextPerspectiveManagerTest.java97
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/MarkTaskHandlerTest.java90
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/RetrieveTitleFromUrlTest.java47
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskAttachmentPropertyTesterTest.java46
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskHyperlinkDetectorTest.java95
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskListFilterTest.java180
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskRelationHyperlinkDetectorTest.java35
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java105
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorPartDescriptorTest.java62
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java116
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/util/TestTaskDataCollector.java53
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/activityTests/.activity.xml.zipbin342 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/activityTests/activity.xml.zipbin339 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/legacy/tasklist_0_4_8.xml1
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/performance/tasklist-4000.xml.zipbin284854 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdata-1.0-bug-219897.zipbin4526 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/context-history.xml1
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-69.xml1
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-70.xml1
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zipbin2670 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2007-01-19.zipbin3275 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml4
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/tasklist.xml1
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/tasklistdatamigrationtest/empty.txt0
-rw-r--r--org.eclipse.mylyn.tasks.ui/.classpath18
-rw-r--r--org.eclipse.mylyn.tasks.ui/.cvsignore2
-rw-r--r--org.eclipse.mylyn.tasks.ui/.options1
-rw-r--r--org.eclipse.mylyn.tasks.ui/.project34
-rw-r--r--org.eclipse.mylyn.tasks.ui/.settings/.api_filters19
-rw-r--r--org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF50
-rw-r--r--org.eclipse.mylyn.tasks.ui/about.html27
-rw-r--r--org.eclipse.mylyn.tasks.ui/build.properties18
-rw-r--r--org.eclipse.mylyn.tasks.ui/doc/book.css1
-rw-r--r--org.eclipse.mylyn.tasks.ui/doc/bugzilla.html46
-rw-r--r--org.eclipse.mylyn.tasks.ui/doc/images/tasklist-overview.gifbin9719 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/doc/planning.html21
-rw-r--r--org.eclipse.mylyn.tasks.ui/doc/tasklist.html141
-rw-r--r--org.eclipse.mylyn.tasks.ui/doc/toc.xml13
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/bug-search.gifbin583 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/filter-archive.gifbin350 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/find.gifbin157 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/overlay-due.gifbin108 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/overlay-offline.gifbin895 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository-context.gifbin166 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository.gifbin79 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/overlay-web.gifbin167 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/task-activity.gifbin581 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/task-bug.gifbin341 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/task-items.gifbin218 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-completed.gifbin343 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-notes.gifbin337 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/archive/task-server.gifbin339 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/elcl16/bug-search.gifbin583 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool12/reply.gifbin183 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool12/repository-synchronize-small.pngbin463 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool12/task-narrow.gifbin209 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/bug-report.gifbin159 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/calendar.gifbin594 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/capture-pause.gifbin212 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/category-archive.gifbin354 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/category-new.gifbin343 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/category.gifbin213 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/comment.gifbin309 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/compare.pngbin410 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/context-add.gifbin331 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/context-attach.gifbin355 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/context-clear.gifbin316 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/context-retrieve.gifbin361 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/context-transfer.gifbin325 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/export.gifbin329 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/icons-legend.gifbin200 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/import.gifbin327 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-next.gifbin319 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-active.gifbin333 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-pause.gifbin325 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous.gifbin317 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/open-repository-task.gifbin227 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/open-task.gifbin343 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/person.gifbin308 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/query-new.gifbin349 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/query-unmatched.pngbin485 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/query.gifbin332 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/reply.gifbin188 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/repository-new.gifbin342 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/repository-submit.gifbin577 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/repository-synchronize.gifbin362 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/sub-task-new.gifbin381 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-active-centered.gifbin896 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-active.gifbin199 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-complete.gifbin343 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-completed.gifbin333 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-context.gifbin197 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive-centered.gifbin132 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive.gifbin132 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-incomplete.gifbin148 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-new.gifbin334 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-notes.gifbin220 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-remote.gifbin90 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-history.gifbin561 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-new.gifbin339 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository.gifbin224 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task-retrieve.gifbin343 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/task.gifbin216 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-export.pngbin430 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-import.pngbin410 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/focus.gifbin357 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-due.gifbin108 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/perspective-planning.pngbin782 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/repositories-blue.gifbin367 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/repositories.gifbin587 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/repository-middle.gifbin325 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/repository.gifbin328 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gifbin337 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/eview16/task-search.gifbin587 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/obj16/attachment-patch.gifbin342 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/obj16/repository-small.gifbin310 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/obj16/resource_obj.gifbin588 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/obj16/workingSet.gifbin363 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/ovr16/overlay-local.gifbin169 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-context.gifbin2866 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-settings.gifbin3345 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository.gifbin2749 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/wizban/secur_role_wiz.gifbin3153 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/icons/wizban/workset_wiz.pngbin6602 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.tasks.ui/plugin.properties194
-rw-r--r--org.eclipse.mylyn.tasks.ui/plugin.xml1846
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/actions.exsd94
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/duplicateDetectors.exsd119
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/editors.exsd109
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/presentations.exsd133
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/projectLinkProviders.exsd126
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/repositories.exsd203
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/taskEditorExtensions.exsd173
-rw-r--r--org.eclipse.mylyn.tasks.ui/schema/taskRepositoryPageContribution.exsd119
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java269
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/Messages.java41
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/messages.properties7
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java89
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java114
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AddExistingTaskJob.java127
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CategorizedPresentation.java35
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ChangeActivityHandleOperation.java72
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ComboSelectionDialog.java109
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java59
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/IDynamicSubMenuContributor.java27
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskCommandIds.java31
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskHighlighter.java23
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskListNotificationProvider.java25
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java85
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryConnectorUi.java62
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/Messages.java130
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java122
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java118
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonContentProposal.java82
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalLabelProvider.java37
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java200
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PlanningPerspectiveFactory.java69
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java157
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleDatePicker.java187
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java272
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduledPresentation.java35
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java145
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskArchiveFilter.java37
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskCompletionFilter.java45
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskEditorBloatMonitor.java84
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryDropDown.java210
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryHandler.java92
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHyperlink.java60
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskJobFactory.java183
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskLabelDecorator.java95
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java278
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListModifyOperation.java78
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListNotificationManager.java194
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListSynchronizationScheduler.java89
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskPriorityFilter.java53
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java63
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryComparator.java34
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryLocationUi.java159
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryUtil.java72
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskSearchPage.java624
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java370
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java138
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksAdapterFactory.java52
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksReminderDialog.java265
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiFactory.java40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java1254
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractChangeCompletionAction.java60
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java61
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskEditorAction.java56
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskRepositoryAction.java84
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskDialogAction.java58
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskHistoryDropDownAction.java103
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java112
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ClearOutgoingAction.java96
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CloneTaskAction.java113
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CollapseAllAction.java42
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CommentActionGroup.java69
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CompareAttachmentsAction.java178
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyCommentDetailsAction.java56
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java84
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeactivateAllTasksAction.java34
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteAction.java195
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskEditorAction.java37
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java157
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DisconnectRepositoryAction.java72
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/EditRepositoryPropertiesAction.java61
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExpandAllAction.java41
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExportAction.java84
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FilterCompletedTasksAction.java50
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoIntoAction.java55
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoUpAction.java39
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java57
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ImportAction.java138
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/LinkWithEditorAction.java37
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java259
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewCategoryAction.java93
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java123
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewSubTaskAction.java199
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java239
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskFromSelectionAction.java147
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenRepositoryTaskAction.java119
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java59
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskListElementAction.java65
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskSearchAction.java53
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTasksUiPreferencesAction.java40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java64
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PresentationDropDownSelectionAction.java151
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/QueryCloneAction.java107
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RefreshRepositoryTasksAction.java74
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java57
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java61
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RestoreTaskListAction.java76
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SearchForRepositoryTask.java46
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInSearchViewAction.java68
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInTaskListAction.java42
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTaskRepositoriesViewAction.java36
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTasksUiLegendAction.java63
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAllAction.java38
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAutomaticallyAction.java38
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeEditorAction.java92
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java159
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskActivateAction.java59
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskDeactivateAction.java52
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorCopyAction.java33
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorScheduleAction.java74
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListSortAction.java43
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java728
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java360
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleAllWorkingSetsAction.java56
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleTaskActivationAction.java86
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleWorkingSetAction.java88
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties157
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java63
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskListViewHandler.java59
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AddTaskRepositoryHandler.java53
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/CollapseAllHandler.java40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/GoToUnreadTaskHandler.java113
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java102
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MaximizePartHandler.java52
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/Messages.java51
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewLocalTaskHandler.java52
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewSubTaskHandler.java47
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenRepositoryTaskHandler.java29
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenSelectedTaskHandler.java33
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInBrowserHandler.java43
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInDefaultEditorHandler.java78
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskListElementPropertiesHandler.java33
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskRepositoryPropertiesHandler.java39
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java340
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/SubmitTaskHandler.java44
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskListToolTipHandler.java42
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskRepositoryParameterValues.java38
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/ViewSourceHandler.java102
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/messages.properties15
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/AbstractWorkingSetDialogCOPY.java410
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java129
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java248
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java42
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskRepositoryCredentialsDialog.java298
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java573
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendDialog.java105
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties54
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java170
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractReplyToCommentAction.java58
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentSizeFormatter.java101
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentTableLabelProvider.java195
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BooleanAttributeEditor.java80
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BrowserPreviewViewer.java178
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditor.java131
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditorInput.java74
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java171
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/DateAttributeEditor.java164
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorBusyIndicator.java137
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java361
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/FillWidthLayout.java244
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/HighlightingHyperlinkTextPresentationManager.java30
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/IBusyEditor.java27
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java81
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java271
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/MultiSelectionAttributeEditor.java113
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PersonAttributeEditor.java43
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPageFactory.java48
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryCompletionProcessor.java326
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryTextViewerConfiguration.java231
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java538
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/SingleSelectionAttributeEditor.java147
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentDropListener.java106
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentEditorInput.java59
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentStorage.java122
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java335
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionPart.java388
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttachmentPart.java248
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java283
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorCommentPart.java751
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorDescriptionPart.java191
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionReader.java86
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionSettingsContribution.java138
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java216
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorInputFactory.java60
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNewCommentPart.java35
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNotesPart.java135
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlineNode.java186
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlinePage.java156
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java66
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java353
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java318
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorSummaryPart.java190
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkDetector.java68
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkTextPresentationManager.java52
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskListChangeAdapter.java24
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskMigrator.java187
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java961
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java128
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java32
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java98
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TextAttributeEditor.java75
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TraverseOnTabKeyListener.java27
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties144
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/messages.properties74
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/Messages.java41
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskAttributeDiff.java127
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDataDiff.java161
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java188
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotification.java181
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationPopup.java160
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationQueryIncoming.java47
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationReminder.java50
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotifier.java116
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/messages.properties10
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java87
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java772
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties30
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/Messages.java29
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectPropertiesLinkProvider.java92
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectTaskRepositoryPage.java183
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/messages.properties1
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/CreateQueryFromSearchAction.java91
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/Messages.java71
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java64
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResult.java97
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java434
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchHitCollector.java138
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultContentProvider.java63
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSortAction.java38
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSorter.java50
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultTreeContentProvider.java144
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultsLabelProvider.java67
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchScoreComputerAdapterFactory.java55
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/StackTraceDuplicateDetector.java111
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/messages.properties26
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AbstractRetrieveTitleFromUrlJob.java72
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AttachmentUtil.java275
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ClipboardCopier.java72
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/CopyAttachmentToClipboardJob.java67
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DownloadAttachmentJob.java68
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ImportExportUtil.java60
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/Messages.java83
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/PlatformUtil.java126
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/SelectionProviderAdapter.java60
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskAttachmentPropertyTester.java45
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java282
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskContainerComparator.java34
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java118
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataSnapshotOperation.java34
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java116
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskPropertyTester.java73
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskRepositoryPropertyTester.java49
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java438
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java888
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiMenus.java145
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TreeWalker.java198
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/WebBrowserDialog.java65
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/messages.properties33
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListContentProvider.java28
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListPresentation.java98
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java309
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java103
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/PriorityDropDownAction.java194
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TableDecoratingLabelProvider.java72
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskDetailLabelProvider.java61
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskInputDialog.java290
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java128
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListCellModifier.java134
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java209
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java245
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java627
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java190
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java178
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListSorter.java127
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java645
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java1917
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesSorter.java57
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java312
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java94
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java219
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskTableLabelProvider.java92
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java94
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/WorkweekProgressBar.java173
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties46
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentPreviewPage.java317
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentSourcePage.java644
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java116
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java66
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/Messages.java271
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/MultiRepositoryAwareWizard.java55
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewAttachmentWizardDialog.java51
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalCategoryWizard.java40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java71
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewQueryWizard.java43
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java119
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskPage.java41
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskWizardInternal.java40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewWebTaskPage.java48
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryConnectorPage.java192
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java283
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskAttachmentWizard.java427
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java105
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizardPage.java173
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java224
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizardPage.java248
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/messages.properties141
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/Messages.java47
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetAdapterFactory.java64
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementAdapter.java54
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementFactory.java76
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetPage.java582
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java344
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/WorkingSetLabelComparator.java28
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/messages.properties10
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java253
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskHyperlinkDetector.java171
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskRepositoryLinkProvider.java74
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/IHighlightingHyperlink.java24
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiConstants.java57
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiFactory.java52
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/LegendElement.java61
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java301
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlink.java76
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlinkPresenter.java169
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskRepositoryLocationUiFactory.java33
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUi.java79
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiImages.java225
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java472
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java231
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRenderingEngine.java32
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorExtension.java64
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java1488
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPageFactory.java88
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java164
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorFactory.java146
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorToolkit.java224
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/BrowserFormPage.java118
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/LayoutHint.java105
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java712
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java218
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorPartDescriptor.java86
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java35
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositoryQueryPage.java169
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java1687
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPage.java414
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPageContribution.java224
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java29
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPage.java28
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPageContainer.java26
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewTaskWizard.java140
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java94
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/RepositoryQueryWizard.java92
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskAttachmentPage.java314
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskRepositoryWizardDialog.java173
-rw-r--r--org.eclipse.mylyn.test-feature/.project17
-rw-r--r--org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.core.prefs260
-rw-r--r--org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.test-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.test-feature/about.html27
-rw-r--r--org.eclipse.mylyn.test-feature/build.properties5
-rw-r--r--org.eclipse.mylyn.test-feature/epl-v10.html328
-rw-r--r--org.eclipse.mylyn.test-feature/feature.xml272
-rw-r--r--org.eclipse.mylyn.test-feature/license.html79
-rw-r--r--org.eclipse.mylyn.trac-feature/.project17
-rw-r--r--org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.trac-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.trac-feature/about.html27
-rw-r--r--org.eclipse.mylyn.trac-feature/build.properties6
-rw-r--r--org.eclipse.mylyn.trac-feature/epl-v10.html328
-rw-r--r--org.eclipse.mylyn.trac-feature/feature.properties48
-rw-r--r--org.eclipse.mylyn.trac-feature/feature.xml77
-rw-r--r--org.eclipse.mylyn.trac-feature/license.html79
-rw-r--r--org.eclipse.mylyn.trac.core/.classpath7
-rw-r--r--org.eclipse.mylyn.trac.core/.cvsignore1
-rw-r--r--org.eclipse.mylyn.trac.core/.project34
-rw-r--r--org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.trac.core/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.trac.core/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.trac.core/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF20
-rw-r--r--org.eclipse.mylyn.trac.core/about.html27
-rw-r--r--org.eclipse.mylyn.trac.core/build.properties15
-rw-r--r--org.eclipse.mylyn.trac.core/plugin.properties3
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/Messages.java87
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java119
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttribute.java140
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttributeMapper.java74
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientFactory.java66
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientManager.java168
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracCorePlugin.java114
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java669
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java615
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskMapper.java142
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracWikiHandler.java117
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java207
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractWikiHandler.java38
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java198
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracWikiClient.java270
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidTicketException.java30
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidWikiPageException.java38
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java31
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracClientData.java51
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracException.java38
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracLoginException.java30
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracNoSuchMethodException.java24
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracPermissionDeniedException.java30
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracProxyAuthenticationException.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracRemoteException.java38
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java795
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java1043
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/messages.properties1
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/messages.properties34
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracAttachment.java80
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComment.java89
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComponent.java45
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracMilestone.java58
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracPriority.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracRepositoryAttribute.java46
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java183
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearchFilter.java108
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSeverity.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicket.java225
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketAttribute.java49
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketField.java155
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketResolution.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketStatus.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketType.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracVersion.java47
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPage.java67
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPageInfo.java81
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/HttpMethodInterceptor.java25
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/Messages.java31
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracHttpClientTransportFactory.java273
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracUtil.java94
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracXmlRpcClientRequest.java35
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/messages.properties1
-rw-r--r--org.eclipse.mylyn.trac.tests/.classpath11
-rw-r--r--org.eclipse.mylyn.trac.tests/.cvsignore3
-rw-r--r--org.eclipse.mylyn.trac.tests/.project34
-rw-r--r--org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.trac.tests/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.trac.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.trac.tests/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.trac.tests/META-INF/MANIFEST.MF28
-rw-r--r--org.eclipse.mylyn.trac.tests/about.html27
-rw-r--r--org.eclipse.mylyn.trac.tests/build.properties13
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtilStandaloneTest.java65
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracHeadlessStandaloneTests.java49
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java47
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientRepositoryTest.java96
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientSearchTest.java268
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientTest.java113
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientFactoryTest.java102
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientProxyTest.java82
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracSearchTest.java136
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java70
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientSearchTest.java56
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientTest.java85
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientSearchTest.java56
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java343
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java509
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/RepositorySearchTest.java90
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracAttachmentHandlerTest.java165
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracClientManagerTest.java83
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryConnectorTest.java384
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryQueryTest.java58
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java406
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracUtilTest.java78
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestFixture.java94
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestProxy.java238
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestCleanupUtil.java62
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestConstants.java35
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java93
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/XmlRpcServer.java367
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracHyperlinkUtilTest.java273
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracRepositorySettingsPageTest.java105
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracTaskEditorTest.java54
-rw-r--r--org.eclipse.mylyn.trac.ui/.classpath7
-rw-r--r--org.eclipse.mylyn.trac.ui/.cvsignore1
-rw-r--r--org.eclipse.mylyn.trac.ui/.project34
-rw-r--r--org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.core.prefs342
-rw-r--r--org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.ui.prefs63
-rw-r--r--org.eclipse.mylyn.trac.ui/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--org.eclipse.mylyn.trac.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--org.eclipse.mylyn.trac.ui/.settings/org.eclipse.pde.prefs18
-rw-r--r--org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF23
-rw-r--r--org.eclipse.mylyn.trac.ui/about.html27
-rw-r--r--org.eclipse.mylyn.trac.ui/build.properties16
-rw-r--r--org.eclipse.mylyn.trac.ui/icons/etool16/task-repository.gifbin216 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.trac.ui/icons/eview16/overlay-critical.gifbin105 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.trac.ui/icons/eview16/overlay-enhancement.gifbin81 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.trac.ui/icons/eview16/overlay-trac.gifbin275 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.trac.ui/icons/eview16/trac-icon.gifbin176 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.trac.ui/plugin.properties9
-rw-r--r--org.eclipse.mylyn.trac.ui/plugin.xml49
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/Messages.java37
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracConnectorUi.java133
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkDetector.java39
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtil.java310
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracImages.java55
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracSearchHandler.java53
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskListMigrator.java71
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracUiPlugin.java55
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/WebHyperlink.java57
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/Messages.java32
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracCcAttributeEditor.java90
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracPeoplePart.java109
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracRenderingEngine.java75
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPage.java80
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPageFactory.java77
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/messages.properties4
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/messages.properties6
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/Messages.java111
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracFilterQueryPage.java449
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracQueryPage.java759
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracRepositorySettingsPage.java248
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/messages.properties44
1162 files changed, 848 insertions, 130505 deletions
diff --git a/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs
index 1314ffa2f..8b08f1b8b 100644
--- a/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Tue May 12 20:42:46 PDT 2009
+#Thu Apr 24 21:03:23 PDT 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
@@ -41,7 +41,7 @@ org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nullReference=error
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
@@ -77,8 +77,8 @@ org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,API
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -124,7 +124,7 @@ org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
@@ -324,8 +324,6 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
diff --git a/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs
index 766f9cb69..5e70d0848 100644
--- a/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs
@@ -1,4 +1,4 @@
-#Thu Sep 11 16:27:18 PDT 2008
+#Sat Mar 01 03:38:47 PST 2008
cleanup_settings_version=2
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
@@ -10,7 +10,7 @@ org.eclipse.jdt.ui.gettersetter.use.is=true
org.eclipse.jdt.ui.javadoc=false
org.eclipse.jdt.ui.keywordthis=false
org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\n * Copyright (c) 2004, 2007 Mylyn project committers and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/\n\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true
diff --git a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn-feature/.settings/org.eclipse.mylyn.tasklist.prefs
index d8c6d26af..8535764ed 100644
--- a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/org.eclipse.mylyn-feature/.settings/org.eclipse.mylyn.tasklist.prefs
@@ -1,4 +1,4 @@
-#Mon Jun 25 03:02:37 GMT 2007
+#Mon Jun 18 17:15:50 PDT 2007
eclipse.preferences.version=1
project.repository.kind=bugzilla
project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn-feature/about.html b/org.eclipse.mylyn-feature/about.html
index d774b07c7..0dd939c09 100644
--- a/org.eclipse.mylyn-feature/about.html
+++ b/org.eclipse.mylyn-feature/about.html
@@ -7,7 +7,7 @@
<body lang="EN-US">
<h2>About This Content</h2>
-<p>June 25, 2008</p>
+<p>June 7, 2007</p>
<h3>License</h3>
<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
diff --git a/org.eclipse.mylyn-feature/build.properties b/org.eclipse.mylyn-feature/build.properties
index 9b0ffd25e..d37c5aecf 100644
--- a/org.eclipse.mylyn-feature/build.properties
+++ b/org.eclipse.mylyn-feature/build.properties
@@ -5,8 +5,7 @@
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
###############################################################################
-bin.includes = feature.properties,\
- feature.xml,\
+bin.includes = feature.xml,\
about.ini,\
about.properties,\
eclipse32.gif,\
diff --git a/org.eclipse.mylyn-feature/feature.properties b/org.eclipse.mylyn-feature/feature.properties
deleted file mode 100644
index bf2fb4450..000000000
--- a/org.eclipse.mylyn-feature/feature.properties
+++ /dev/null
@@ -1,50 +0,0 @@
-featureName=Mylyn Task List (Required)
-description=Provides the Task List for task and time management.
-providerName=Eclipse Mylyn
-copyright=Copyright (c) 2004, 2008 Tasktop Technologies and others. All rights reserved.
-updateSiteName=Mylyn for Eclipse 3.4
-discovery_Mylyn_Extras=Mylyn Extras
-discovery_Mylyn=Mylyn
-license=\
-Eclipse Foundation Software User Agreement\n\
-\n\
-March 17, 2005\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS modules ("Modules") and made available as downloadable archives ("Downloads").\n\
-\n\
- * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").\n\
- * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java\u2122 ARchive) in a directory named "plugins".\n\
- * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- * Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:\n\
-\n\
- * The top-level (root) directory\n\
- * Plug-in and Fragment directories\n\
- * Inside Plug-ins and Fragments packaged as JARs\n\
- * Sub-directories of the directory named "src" of certain Plug-ins\n\
- * Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0\n\)
- * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
diff --git a/org.eclipse.mylyn-feature/feature.xml b/org.eclipse.mylyn-feature/feature.xml
index b378b7c61..2100b96c6 100644
--- a/org.eclipse.mylyn-feature/feature.xml
+++ b/org.eclipse.mylyn-feature/feature.xml
@@ -1,34 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.eclipse.mylyn_feature"
- label="%featureName"
- version="3.2.0.qualifier"
- provider-name="%providerName"
+ label="Mylyn Task List (Required)"
+ version="3.0.0.qualifier"
+ provider-name="Eclipse.org"
plugin="org.eclipse.mylyn">
<description url="http://eclipse.org/mylyn">
- %description
+ Provides the Task List for task and time management.
</description>
<copyright>
- %copyright
+ Copyright (c) 2004 - 2007 Mylyn project committers and others.
</copyright>
<license url="license.html">
- %license
+ Eclipse Foundation Software User Agreement
+
+March 17, 2005
+Usage Of Content
+
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.
+Applicable Licenses
+
+Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, &quot;Program&quot; will mean the Content.
+
+Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).
+
+ * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).
+ * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Javaâ„¢ ARchive) in a directory named &quot;plugins&quot;.
+ * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.
+ * Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.
+
+The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:
+
+ * The top-level (root) directory
+ * Plug-in and Fragment directories
+ * Inside Plug-ins and Fragments packaged as JARs
+ * Sub-directories of the directory named &quot;src&quot; of certain Plug-ins
+ * Feature directories
+
+Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.
+
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
+
+ * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)
+ * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)
+ * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)
+ * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)
+ * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)
+ * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)
+
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.
+Cryptography
+
+Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
+
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
</license>
<url>
- <update label="%updateSiteName" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
- <discovery label="%discovery_Mylyn_Extras" url="http://download.eclipse.org/tools/mylyn/update/extras"/>
- <discovery label="%discovery_Mylyn" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
+ <update label="Mylyn for Eclipse 3.4" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
+ <discovery label="Mylyn Extras" url="http://download.eclipse.org/tools/mylyn/update/extras"/>
+ <discovery label="Mylyn" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
</url>
<requires>
<import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.mylyn.commons.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.monitor.core" version="3.0.0" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.4.0.I20070918" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ui.forms"/>
<import plugin="org.eclipse.compare"/>
<import plugin="org.eclipse.core.expressions"/>
<import plugin="org.eclipse.core.net"/>
@@ -37,29 +77,31 @@
<import plugin="org.eclipse.search"/>
<import plugin="org.eclipse.ui.browser"/>
<import plugin="org.eclipse.ui.editors"/>
- <import plugin="org.eclipse.ui.forms"/>
<import plugin="org.eclipse.ui.ide"/>
<import plugin="org.eclipse.ui.views"/>
<import plugin="org.eclipse.ui.workbench.texteditor"/>
- <import plugin="org.eclipse.mylyn.context.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.monitor.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.net" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.apache.commons.logging" version="1.0.4" match="greaterOrEqual"/>
<import plugin="org.apache.commons.codec" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.apache.commons.httpclient" version="3.1.0" match="greaterOrEqual"/>
<import plugin="org.apache.commons.lang" version="2.3.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.core.runtime" version="3.3.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.mylyn.commons.core" version="3.1.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.mylyn.commons.net" version="3.1.0" match="greaterOrEqual"/>
- <import feature="org.eclipse.rcp" version="3.4.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.discovery.core" version="3.2.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.core" version="3.2.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.ui" version="3.2.0" match="compatible"/>
+ <import plugin="org.apache.commons.logging" version="1.0.4" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.tasks.ui" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.commons.ui" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.commons.core" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.monitor.core" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.context.core" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.monitor.ui" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.commons.net" version="3.0.0" match="compatible"/>
</requires>
<plugin
+ id="org.eclipse.mylyn.help.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
id="org.eclipse.mylyn"
download-size="0"
install-size="0"
@@ -157,18 +199,4 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.mylyn.discovery.core"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.discovery.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
</feature>
diff --git a/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs
index 1314ffa2f..8b08f1b8b 100644
--- a/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Tue May 12 20:42:46 PDT 2009
+#Thu Apr 24 21:03:23 PDT 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
@@ -41,7 +41,7 @@ org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nullReference=error
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
@@ -77,8 +77,8 @@ org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,API
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -124,7 +124,7 @@ org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
@@ -324,8 +324,6 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
diff --git a/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs
index 766f9cb69..5e70d0848 100644
--- a/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs
@@ -1,4 +1,4 @@
-#Thu Sep 11 16:27:18 PDT 2008
+#Sat Mar 01 03:38:47 PST 2008
cleanup_settings_version=2
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
@@ -10,7 +10,7 @@ org.eclipse.jdt.ui.gettersetter.use.is=true
org.eclipse.jdt.ui.javadoc=false
org.eclipse.jdt.ui.keywordthis=false
org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\n * Copyright (c) 2004, 2007 Mylyn project committers and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/\n\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.mylyn.tasklist.prefs
index d8c6d26af..4a0e39c4f 100644
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.mylyn.tasklist.prefs
@@ -1,4 +1,4 @@
-#Mon Jun 25 03:02:37 GMT 2007
+#Mon Jun 18 17:13:25 PDT 2007
eclipse.preferences.version=1
project.repository.kind=bugzilla
project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.bugzilla-feature/about.html b/org.eclipse.mylyn.bugzilla-feature/about.html
index d774b07c7..0dd939c09 100644
--- a/org.eclipse.mylyn.bugzilla-feature/about.html
+++ b/org.eclipse.mylyn.bugzilla-feature/about.html
@@ -7,7 +7,7 @@
<body lang="EN-US">
<h2>About This Content</h2>
-<p>June 25, 2008</p>
+<p>June 7, 2007</p>
<h3>License</h3>
<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
diff --git a/org.eclipse.mylyn.bugzilla-feature/build.properties b/org.eclipse.mylyn.bugzilla-feature/build.properties
index afcbe3fd6..dfa11f437 100644
--- a/org.eclipse.mylyn.bugzilla-feature/build.properties
+++ b/org.eclipse.mylyn.bugzilla-feature/build.properties
@@ -1,13 +1,11 @@
###############################################################################
-# Copyright (c) 2004, 2008 Tasktop Technologies and others.
+# Copyright (c) 2004, 2007 Mylyn project committers 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
###############################################################################
-
-bin.includes = feature.properties,\
- feature.xml,\
+bin.includes = feature.xml,\
license.html,\
epl-v10.html,\
about.html
diff --git a/org.eclipse.mylyn.bugzilla-feature/feature.properties b/org.eclipse.mylyn.bugzilla-feature/feature.properties
deleted file mode 100644
index 33107d5ad..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/feature.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-featureName=Mylyn Connector: Bugzilla
-description=Provides Task List integration, offline support and rich editing for the open source Bugzilla bug tracker.
-providerName=Eclipse Mylyn
-copyright=Copyright (c) 2004, 2008 Tasktop Technologies and others. All rights reserved.
-updateSiteName=Mylyn for Eclipse 3.4
-license=\
-Eclipse Foundation Software User Agreement\n\
-\n\
-March 17, 2005\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS modules ("Modules") and made available as downloadable archives ("Downloads").\n\
-\n\
- * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").\n\
- * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java\u2122 ARchive) in a directory named "plugins".\n\
- * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- * Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:\n\
-\n\
- * The top-level (root) directory\n\
- * Plug-in and Fragment directories\n\
- * Inside Plug-ins and Fragments packaged as JARs\n\
- * Sub-directories of the directory named "src" of certain Plug-ins\n\
- * Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
diff --git a/org.eclipse.mylyn.bugzilla-feature/feature.xml b/org.eclipse.mylyn.bugzilla-feature/feature.xml
index 0e3567faa..a00ee3309 100644
--- a/org.eclipse.mylyn.bugzilla-feature/feature.xml
+++ b/org.eclipse.mylyn.bugzilla-feature/feature.xml
@@ -1,58 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.eclipse.mylyn.bugzilla_feature"
- label="%featureName"
- version="3.2.0.qualifier"
- provider-name="%providerName"
+ label="Mylyn Connector: Bugzilla"
+ version="3.0.0.qualifier"
+ provider-name="Eclipse.org"
plugin="org.eclipse.mylyn">
<description url="http://www.bugzilla.org">
- %description
+ Provides Task List integration, offline support and rich editing for the open source Bugzilla bug tracker.
</description>
<copyright>
- %copyright
+ Copyright (c) 2004 - 2007 Mylyn project committers and others.
</copyright>
<license url="license.html">
- %license
+ Eclipse Foundation Software User Agreement
+
+March 17, 2005
+Usage Of Content
+
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.
+Applicable Licenses
+
+Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, &quot;Program&quot; will mean the Content.
+
+Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).
+
+ * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).
+ * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Javaâ„¢ ARchive) in a directory named &quot;plugins&quot;.
+ * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.
+ * Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.
+
+The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:
+
+ * The top-level (root) directory
+ * Plug-in and Fragment directories
+ * Inside Plug-ins and Fragments packaged as JARs
+ * Sub-directories of the directory named &quot;src&quot; of certain Plug-ins
+ * Feature directories
+
+Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.
+
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
+
+ * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)
+ * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)
+ * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)
+ * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)
+ * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)
+ * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)
+
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.
+Cryptography
+
+Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
+
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
</license>
<url>
- <update label="%updateSiteName" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
+ <update label="Mylyn for Eclipse 3.4" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
</url>
<requires>
<import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.core.net"/>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.resources"/>
<import plugin="org.eclipse.compare"/>
+ <import plugin="org.eclipse.search"/>
<import plugin="org.eclipse.ui.views"/>
<import plugin="org.eclipse.ui.forms"/>
<import plugin="org.eclipse.jface.text"/>
<import plugin="org.eclipse.ui.editors"/>
<import plugin="org.eclipse.ui.workbench.texteditor"/>
+ <import feature="org.eclipse.mylyn_feature" version="3.0.0.qualifier" match="perfect"/>
+ <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.mylyn.monitor.core" version="3.0.0" match="compatible"/>
+ <import plugin="org.eclipse.core.net"/>
<import plugin="org.eclipse.mylyn.tasks.ui" version="3.0.0" match="compatible"/>
- <import feature="org.eclipse.mylyn_feature" version="3.2.0.qualifier" match="perfect"/>
- <import plugin="org.eclipse.mylyn.commons.net" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.ui" version="3.0.0" match="compatible"/>
</requires>
<plugin
id="org.eclipse.mylyn.bugzilla.core"
download-size="0"
install-size="0"
- version="3.2.0.qualifier"
+ version="3.0.0.qualifier"
unpack="false"/>
<plugin
id="org.eclipse.mylyn.bugzilla.ui"
download-size="0"
install-size="0"
- version="3.2.0.qualifier"
+ version="3.0.0.qualifier"
unpack="false"/>
</feature>
diff --git a/org.eclipse.mylyn.bugzilla.core/.classpath b/org.eclipse.mylyn.bugzilla.core/.classpath
deleted file mode 100644
index 6fe19812c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="nonaccessible" pattern="**/System"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <accessrules>
- <accessrule kind="nonaccessible" pattern="com/sun/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.bugzilla.core/.cvsignore b/org.eclipse.mylyn.bugzilla.core/.cvsignore
deleted file mode 100644
index bc8b2d4cb..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-bugzilla.jar
-doc.zip
diff --git a/org.eclipse.mylyn.bugzilla.core/.project b/org.eclipse.mylyn.bugzilla.core/.project
deleted file mode 100644
index ffdfd20f4..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.bugzilla.core</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index fbac23913..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:44 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 08b4044f5..000000000
--- a/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.bugzilla.core;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.core.net
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %Bundle-Vendor
-Bundle-ClassPath: .
-Export-Package: org.eclipse.mylyn.internal.bugzilla.core;x-friends:="org.eclipse.mylyn.bugzilla.ide,org.eclipse.mylyn.bugzilla.ui",
- org.eclipse.mylyn.internal.bugzilla.core.history;x-friends:="org.eclipse.mylyn.bugzilla.ide,org.eclipse.mylyn.bugzilla.ui"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.bugzilla.core/about.html b/org.eclipse.mylyn.bugzilla.core/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.bugzilla.core/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.core/build-user.xml b/org.eclipse.mylyn.bugzilla.core/build-user.xml
deleted file mode 100644
index 6097713f2..000000000
--- a/org.eclipse.mylyn.bugzilla.core/build-user.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<target name="help">
- <echo message="Please run: $ ant -v -projecthelp"/>
-</target> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.core/build.properties b/org.eclipse.mylyn.bugzilla.core/build.properties
deleted file mode 100644
index 0130a60da..000000000
--- a/org.eclipse.mylyn.bugzilla.core/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2008 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
-###############################################################################
-
-bin.includes = META-INF/,\
- about.html,\
- .,\
- plugin.xml,\
- plugin.properties
-src.includes = about.html
-jre.compilation.profile = J2SE-1.5
-source.. = src/
diff --git a/org.eclipse.mylyn.bugzilla.core/plugin.properties b/org.eclipse.mylyn.bugzilla.core/plugin.properties
deleted file mode 100644
index 5af8dbfda..000000000
--- a/org.eclipse.mylyn.bugzilla.core/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Properties file for org.eclipse.mylyn.bugzilla.core
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Bugzilla Connector Core
diff --git a/org.eclipse.mylyn.bugzilla.core/plugin.xml b/org.eclipse.mylyn.bugzilla.core/plugin.xml
deleted file mode 100644
index a60c3b221..000000000
--- a/org.eclipse.mylyn.bugzilla.core/plugin.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension-point id="languages" name="languages" schema="schema/languages.exsd"/>
-<!--<extension
- point="org.eclipse.mylyn.tasks.ui.duplicateDetectors">
- <detector
- class="org.eclipse.mylyn.internal.bugzilla.core.BugzillaStackTraceDuplicateDetector"
- kind="bugzilla"
- name="Stack Trace">
- </detector>
- </extension>-->
-</plugin>
diff --git a/org.eclipse.mylyn.bugzilla.core/schema/languages.exsd b/org.eclipse.mylyn.bugzilla.core/schema/languages.exsd
deleted file mode 100644
index d175012e6..000000000
--- a/org.eclipse.mylyn.bugzilla.core/schema/languages.exsd
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.bugzilla.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.bugzilla.core" id="languages" name="languages"/>
- </appInfo>
- <documentation>
- [Enter description of this extension point.]
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="language" minOccurs="1" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="language">
- <complexType>
- <sequence>
- <element ref="languageAttribute" minOccurs="1" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="languageAttribute">
- <complexType>
- <attribute name="command" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="response" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java
deleted file mode 100644
index d20c4f413..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.security.GeneralSecurityException;
-
-import org.xml.sax.EntityResolver;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * @author Rob Elves
- */
-public class AbstractReportFactory {
-
- public static final int RETURN_ALL_HITS = -1;
-
- private final InputStream inStream;
-
- private final String characterEncoding;
-
- public AbstractReportFactory(InputStream inStream, String encoding) {
- this.inStream = inStream;
- this.characterEncoding = encoding;
- }
-
- /**
- * expects rdf returned from repository (ctype=rdf in url)
- *
- * @throws GeneralSecurityException
- */
- protected void collectResults(DefaultHandler contentHandler, boolean clean) throws IOException {
- File tempFile = null;
-
- if (inStream == null) {
- return;
- }
-
- final BufferedInputStream is = new BufferedInputStream(inStream, 1024);
-
- InputStream iis = new InputStream() {
- @SuppressWarnings( { "restriction" })
- @Override
- public int read() throws IOException {
- int c;
- while ((c = is.read()) != -1) {
- if (org.eclipse.mylyn.internal.commons.core.XmlStringConverter.isValid((char) c)) {
- return c;
- }
- }
- return -1;
- }
- };
-
- Reader in;
- if (characterEncoding != null) {
- in = new InputStreamReader(iis, characterEncoding);
- } else {
- in = new InputStreamReader(iis);
- }
-
- if (clean) {
- tempFile = File.createTempFile("XmlCleaner-", "tmp"); //$NON-NLS-1$//$NON-NLS-2$
- tempFile.deleteOnExit();
- in = XmlCleaner.clean(in, tempFile);
- }
-
- try {
- final XMLReader reader = XMLReaderFactory.createXMLReader();
- reader.setFeature("http://xml.org/sax/features/validation", false); //$NON-NLS-1$
- reader.setContentHandler(contentHandler);
-
- EntityResolver resolver = new EntityResolver() {
-
- public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
- // The default resolver will try to resolve the dtd via
- // URLConnection. Since we
- // don't have need of entity resolving
- // currently, we just supply a dummy (empty) resource for
- // each request...
- InputSource source = new InputSource();
- source.setCharacterStream(new StringReader("")); //$NON-NLS-1$
- return source;
- }
- };
-
- reader.setEntityResolver(resolver);
- reader.setErrorHandler(new ErrorHandler() {
-
- public void error(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void fatalError(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void warning(SAXParseException exception) throws SAXException {
- throw exception;
- }
- });
- reader.parse(new InputSource(in));
- } catch (SAXException e) {
- throw new IOException(e.getMessage());
- }
-
- finally {
- if (tempFile != null) {
- tempFile.delete();
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttribute.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttribute.java
deleted file mode 100644
index 62275a877..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttribute.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Rob Elves
- */
-public enum BugzillaAttribute {
-
- STATUS_WHITEBOARD(Messages.BugzillaAttribute_Status_Whiteboard,
- "status_whiteboard", TaskAttribute.TYPE_LONG_RICH_TEXT, false, false), //$NON-NLS-1$
-
- ACTUAL_TIME(Messages.BugzillaAttribute_Worked, "actual_time", TaskAttribute.TYPE_SHORT_TEXT, true, true), //$NON-NLS-1$
-
- ADD_COMMENT(Messages.BugzillaAttribute_Additional_Comments, "comment", TaskAttribute.TYPE_LONG_TEXT, true, false), //$NON-NLS-1$
-
- ASSIGNED_TO(Messages.BugzillaAttribute_Assigned_to, "assigned_to", TaskAttribute.TYPE_PERSON, true, true), //$NON-NLS-1$
-
- ASSIGNED_TO_NAME(Messages.BugzillaAttribute_Assigned_to_NAME,
- "assigned_to_name", TaskAttribute.TYPE_PERSON, true, true), //$NON-NLS-1$
-
- ATTACHID(Messages.BugzillaAttribute_ATTACH_ID, "attachid", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- ATTACHMENT(Messages.BugzillaAttribute_attachment, "attachment", TaskAttribute.TYPE_ATTACHMENT, false, false), //$NON-NLS-1$
-
- BLOCKED(Messages.BugzillaAttribute_Blocks, "blocked", TaskAttribute.TYPE_TASK_DEPENDENCY, false, false), //$NON-NLS-1$
-
- BUG(Messages.BugzillaAttribute_bug, "bug", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- BUG_FILE_LOC(Messages.BugzillaAttribute_URL, "bug_file_loc", TaskAttribute.TYPE_URL, false, false), //$NON-NLS-1$
-
- BUG_ID(Messages.BugzillaAttribute_Bug_ID, "bug_id", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- BUG_SEVERITY(Messages.BugzillaAttribute_Severity, "bug_severity", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- BUG_STATUS(Messages.BugzillaAttribute_Status, "bug_status", TaskAttribute.TYPE_SHORT_TEXT, true, true), //$NON-NLS-1$
-
- BUG_WHEN(Messages.BugzillaAttribute_bug_when, "bug_when", TaskAttribute.TYPE_DATE, true, true), //$NON-NLS-1$
-
- BUGZILLA(Messages.BugzillaAttribute_bugzilla, "bugzilla", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- CC(Messages.BugzillaAttribute_CC, "cc", IBugzillaConstants.EDITOR_TYPE_REMOVECC, true, true), //$NON-NLS-1$
-
- REMOVECC(Messages.BugzillaAttribute_Remove_CC, "removecc", IBugzillaConstants.EDITOR_TYPE_REMOVECC, true, true), //$NON-NLS-1$
-
- CCLIST_ACCESSIBLE(Messages.BugzillaAttribute_CC_List, "cclist_accessible", TaskAttribute.TYPE_BOOLEAN, true, false), //$NON-NLS-1$
-
- CLASSIFICATION(Messages.BugzillaAttribute_Classification,
- "classification", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- CLASSIFICATION_ID(Messages.BugzillaAttribute_Classification_ID,
- "classification_id", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- COMPONENT(Messages.BugzillaAttribute_Component, "component", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- CONFIRM_PRODUCT_CHANGE("confirm_product_change", "confirm_product_change", TaskAttribute.TYPE_BOOLEAN, true, false), //$NON-NLS-1$ //$NON-NLS-2$
-
- CREATION_TS(Messages.BugzillaAttribute_Opened, "creation_ts", TaskAttribute.TYPE_DATE, true, false), //$NON-NLS-1$
-
- CTYPE(Messages.BugzillaAttribute_Content_Type, "ctype", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- DATA(Messages.BugzillaAttribute_data, "data", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- DATE(Messages.BugzillaAttribute_Date, "date", TaskAttribute.TYPE_DATE, false, false), //$NON-NLS-1$
-
- DEADLINE(Messages.BugzillaAttribute_Due, "deadline", TaskAttribute.TYPE_DATE, true, false), //$NON-NLS-1$
-
- DELTA_TS(Messages.BugzillaAttribute_Modified, "delta_ts", TaskAttribute.TYPE_DATE, true, false), //$NON-NLS-1$
-
- DEPENDSON(Messages.BugzillaAttribute_Depends_on__Subtasks_,
- "dependson", TaskAttribute.TYPE_TASK_DEPENDENCY, false, false), //$NON-NLS-1$
-
- DESC(Messages.BugzillaAttribute_desc, "desc", TaskAttribute.TYPE_LONG_TEXT, true, true), //$NON-NLS-1$
-
- EVERCONFIRMED(Messages.BugzillaAttribute_everconfirmed, "everconfirmed", TaskAttribute.TYPE_BOOLEAN, true, false), //$NON-NLS-1$
-
- ESTIMATED_TIME(Messages.BugzillaAttribute_Estimated_Time,
- "estimated_time", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- FILENAME(Messages.BugzillaAttribute_filename, "filename", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- FLAG(Messages.BugzillaAttribute_flag, "flag", IBugzillaConstants.EDITOR_TYPE_FLAG, false, false), //$NON-NLS-1$
-
- GROUP(Messages.BugzillaAttribute_Group, "group", TaskAttribute.TYPE_BOOLEAN, true, true), //$NON-NLS-1$
-
- IS_OBSOLETE(Messages.BugzillaAttribute_Obsolete, "isobsolete", TaskAttribute.TYPE_BOOLEAN, true, false), //$NON-NLS-1$
-
- IS_PATCH(Messages.BugzillaAttribute_Patch, "ispatch", TaskAttribute.TYPE_BOOLEAN, true, false), //$NON-NLS-1$
-
- KEYWORDS(Messages.BugzillaAttribute_Keywords, "keywords", IBugzillaConstants.EDITOR_TYPE_KEYWORDS, false, false), //$NON-NLS-1$
-
- LONG_DESC(Messages.BugzillaAttribute_Description, "long_desc", TaskAttribute.TYPE_LONG_RICH_TEXT, true, true), //$NON-NLS-1$
-
- LONGDESCLENGTH(Messages.BugzillaAttribute_Number_of_comments,
- "longdesclength", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- NEWCC(Messages.BugzillaAttribute_Add_CC, "newcc", TaskAttribute.TYPE_PERSON, true, false), //$NON-NLS-1$
-
- OP_SYS(Messages.BugzillaAttribute_OS, "op_sys", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- PRIORITY(Messages.BugzillaAttribute_Priority, "priority", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- PRODUCT(Messages.BugzillaAttribute_Product, "product", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- REP_PLATFORM(Messages.BugzillaAttribute_Platform, "rep_platform", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- REPORTER(Messages.BugzillaAttribute_Reporter, "reporter", TaskAttribute.TYPE_PERSON, true, true), //$NON-NLS-1$
-
- REPORTER_NAME(Messages.BugzillaAttribute_REPORT_NAME, "reporter_name", TaskAttribute.TYPE_PERSON, true, true), //$NON-NLS-1$
-
- REPORTER_ACCESSIBLE(Messages.BugzillaAttribute_REPORT_ACCESSIBLE, "reporter_accessible", //$NON-NLS-1$
- TaskAttribute.TYPE_BOOLEAN, true, false),
-
- RESOLUTION(Messages.BugzillaAttribute_Resolution, "resolution", TaskAttribute.TYPE_SHORT_TEXT, false, true), //$NON-NLS-1$
-
- REMAINING_TIME(Messages.BugzillaAttribute_Remaining, "remaining_time", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- SET_DEFAULT_ASSIGNEE(Messages.BugzillaAttribute_Reassign_to_default_assignee,
- "set_default_assignee", TaskAttribute.TYPE_BOOLEAN, true, //$NON-NLS-1$
- false),
-
- SHORT_DESC(Messages.BugzillaAttribute_Summary, "short_desc", TaskAttribute.TYPE_SHORT_RICH_TEXT, true, false), //$NON-NLS-1$
-
- SIZE(Messages.BugzillaAttribute_Size, "size", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- TARGET_MILESTONE(Messages.BugzillaAttribute_Target_milestone,
- "target_milestone", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- THETEXT(Messages.BugzillaAttribute_thetext, "thetext", TaskAttribute.TYPE_SHORT_TEXT, false, true), //$NON-NLS-1$
-
- TYPE(Messages.BugzillaAttribute_type, "type", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- UNKNOWN(Messages.BugzillaAttribute_UNKNOWN, "UNKNOWN", TaskAttribute.TYPE_SHORT_TEXT, false, false), //$NON-NLS-1$
-
- VERSION(Messages.BugzillaAttribute_Version, "version", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
-
- INSTALL_VERSION(Messages.BugzillaAttribute_version_of_bugzilla_installed, "install_version", null, true, false), //$NON-NLS-1$
-
- VOTES(Messages.BugzillaAttribute_Votes, "votes", IBugzillaConstants.EDITOR_TYPE_VOTES, false, true), //$NON-NLS-1$
-
- WORK_TIME(Messages.BugzillaAttribute_Add, "work_time", TaskAttribute.TYPE_SHORT_TEXT, true, false), //$NON-NLS-1$
-
- WHO(Messages.BugzillaAttribute_who, "who", TaskAttribute.TYPE_PERSON, false, false), //$NON-NLS-1$
-
- WHO_NAME(Messages.BugzillaAttribute_who_name, "who_name", TaskAttribute.TYPE_SHORT_TEXT, true, true), //$NON-NLS-1$
-
- QA_CONTACT(Messages.BugzillaAttribute_QA_Contact, "qa_contact", TaskAttribute.TYPE_PERSON, true, false), //$NON-NLS-1$
-
- QA_CONTACT_NAME(Messages.BugzillaAttribute_QA_Contact_NAME,
- "qa_contact_name", TaskAttribute.TYPE_SHORT_TEXT, true, true), //$NON-NLS-1$
-
- ADDSELFCC(Messages.BugzillaAttribute_Add_self_to_CC, "addselfcc", TaskAttribute.TYPE_BOOLEAN, true, false), //$NON-NLS-1$
-
- STATUS_OPEN(Messages.BugzillaAttribute_open_status_values, "status_open", null, true, true), //$NON-NLS-1$
-
- NEW_COMMENT(Messages.BugzillaAttribute_new_comment, "new_comment", TaskAttribute.TYPE_LONG_RICH_TEXT, true, false), //$NON-NLS-1$
-
- TOKEN("token", "token", null, true, true), //$NON-NLS-1$ //$NON-NLS-2$
-
- // Used by search engine
- LI(Messages.BugzillaAttribute_used_by_search_engine_li, "li", null, true, false), //$NON-NLS-1$
-
- ID(Messages.BugzillaAttribute_used_by_search_engine_id, "id", null, true, false), //$NON-NLS-1$
-
- SHORT_SHORT_DESC(Messages.BugzillaAttribute_used_by_search_engine_desc, "short_short_desc", null, false, false), //$NON-NLS-1$
-
- SEQ(Messages.BugzillaAttribute_used_by_search_engine_seq, "seq", null, false, false), //$NON-NLS-1$
-
- RESULT(Messages.BugzillaAttribute_used_by_search_engine_result, "result", null, false, false), //$NON-NLS-1$
-
- RDF(Messages.BugzillaAttribute_used_by_search_engine_rdf, "rdf", null, false, false), //$NON-NLS-1$
-
- INSTALLATION(Messages.BugzillaAttribute_used_by_search_engine_installation, "installation", null, false, false), //$NON-NLS-1$
-
- BUGS(Messages.BugzillaAttribute_used_by_search_engine_bugs, "bugs", null, false, false); //$NON-NLS-1$
-
- private final boolean isHidden;
-
- private final boolean isReadOnly;
-
- private final String keyString;
-
- private final String prettyName;
-
- private final String type;
-
- public static final BugzillaAttribute[] EXTENDED_ATTRIBUTES = { DELTA_TS, BUG_SEVERITY, PRODUCT };
-
- BugzillaAttribute(String prettyName, String idKey, String type, boolean hidden, boolean readonly) {
- this.prettyName = prettyName;
- this.keyString = idKey;
- this.type = type;
- this.isHidden = hidden;
- this.isReadOnly = readonly;
- }
-
- public String getKey() {
- return keyString;
- }
-
- public boolean isHidden() {
- return isHidden;
- }
-
- public boolean isReadOnly() {
- return isReadOnly;
- }
-
- @Override
- public String toString() {
- return prettyName;
- }
-
- public String getKind() {
- return isHidden() ? null : TaskAttribute.KIND_DEFAULT;
- }
-
- public String getType() {
- return type;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttributeMapper.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttributeMapper.java
deleted file mode 100644
index 73a0ba2a9..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttributeMapper.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaAttributeMapper extends TaskAttributeMapper {
-
- private static final String DATE_FORMAT_1 = "yyyy-MM-dd HH:mm"; //$NON-NLS-1$
-
- private static final String DATE_FORMAT_2 = "yyyy-MM-dd HH:mm:ss"; //$NON-NLS-1$
-
- private static final String DATE_FORMAT_3 = "yyyy-MM-dd"; //$NON-NLS-1$
-
- private static final String delta_ts_format = DATE_FORMAT_2;
-
- private static final String creation_ts_format = DATE_FORMAT_1;
-
- private static final String deadline_format = DATE_FORMAT_3;
-
- private static final String customAttribute_format = DATE_FORMAT_2;
-
- /**
- * public for testing Bugzilla 2.18 uses DATE_FORMAT_1 but later versions use DATE_FORMAT_2 Using lowest common
- * denominator DATE_FORMAT_1
- */
- public static final String comment_creation_ts_format = DATE_FORMAT_1;
-
- private static final String attachment_creation_ts_format = DATE_FORMAT_1;
-
- public BugzillaAttributeMapper(TaskRepository taskRepository) {
- super(taskRepository);
- }
-
- @Override
- public Date getDateValue(TaskAttribute attribute) {
- if (attribute == null) {
- return null;
- }
- String dateString = attribute.getValue();
- String id = attribute.getId();
- Date parsedDate = getDate(id, dateString);
- if (parsedDate == null) {
- parsedDate = super.getDateValue(attribute);
- }
- return parsedDate;
- }
-
- @Override
- public boolean getBooleanValue(TaskAttribute attribute) {
- if (attribute.getValue().equals("1")) { //$NON-NLS-1$
- return true;
- } else {
- return false;
- }
- }
-
- @Override
- public void setBooleanValue(TaskAttribute attribute, Boolean value) {
- if (value == null) {
- attribute.setValue("0"); //$NON-NLS-1$
- } else if (value) {
- attribute.setValue("1"); //$NON-NLS-1$
- } else {
- attribute.setValue("0"); //$NON-NLS-1$
- }
- }
-
- private Date getDate(String attributeId, String dateString) {
- Date parsedDate = null;
- try {
- if (attributeId.equals(BugzillaAttribute.DELTA_TS.getKey())) {
- parsedDate = new SimpleDateFormat(delta_ts_format).parse(dateString);
- } else if (attributeId.equals(BugzillaAttribute.CREATION_TS.getKey())) {
- parsedDate = new SimpleDateFormat(creation_ts_format).parse(dateString);
- } else if (attributeId.equals(BugzillaAttribute.BUG_WHEN.getKey())) {
- parsedDate = new SimpleDateFormat(comment_creation_ts_format).parse(dateString);
- } else if (attributeId.equals(BugzillaAttribute.DATE.getKey())) {
- parsedDate = new SimpleDateFormat(attachment_creation_ts_format).parse(dateString);
- } else if (attributeId.equals(BugzillaAttribute.DEADLINE.getKey())) {
- parsedDate = new SimpleDateFormat(deadline_format).parse(dateString);
- } else if (attributeId.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- parsedDate = new SimpleDateFormat(customAttribute_format).parse(dateString);
- }
- } catch (ParseException e) {
- return null;
- } catch (NumberFormatException e) {
- return null;
- }
- return parsedDate;
- }
-
- @Override
- public void setDateValue(TaskAttribute attribute, Date date) {
- if (date != null) {
- String dateString = null;
- String attributeId = attribute.getId();
-
- if (attributeId.equals(BugzillaAttribute.DELTA_TS.getKey())) {
- dateString = new SimpleDateFormat(delta_ts_format).format(date);
- } else if (attributeId.equals(BugzillaAttribute.CREATION_TS.getKey())) {
- dateString = new SimpleDateFormat(creation_ts_format).format(date);
- } else if (attributeId.equals(BugzillaAttribute.BUG_WHEN.getKey())) {
- dateString = new SimpleDateFormat(comment_creation_ts_format).format(date);
- } else if (attributeId.equals(BugzillaAttribute.DATE.getKey())) {
- dateString = new SimpleDateFormat(attachment_creation_ts_format).format(date);
- } else if (attributeId.equals(BugzillaAttribute.DEADLINE.getKey())) {
- dateString = new SimpleDateFormat(deadline_format).format(date);
- } else if (attributeId.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- dateString = new SimpleDateFormat(customAttribute_format).format(date);
- }
-
- if (dateString == null) {
- super.setDateValue(attribute, date);
- } else {
- attribute.setValue(dateString);
- }
-
- } else {
- attribute.clearValues();
- }
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public String mapToRepositoryKey(TaskAttribute parent, String key) {
- /*if (key.equals(TaskAttribute.NEW_CC)) {
- return BugzillaReportElement.NEWCC.getKey();
- } else*/if (key.equals(TaskAttribute.COMMENT_DATE)) {
- return BugzillaAttribute.BUG_WHEN.getKey();
- } else if (key.equals(TaskAttribute.COMMENT_AUTHOR)) {
- return BugzillaAttribute.WHO.getKey();
- } else if (key.equals(TaskAttribute.COMMENT_AUTHOR_NAME)) {
- return BugzillaAttribute.WHO_NAME.getKey();
- } else if (key.equals(TaskAttribute.USER_CC)) {
- return BugzillaAttribute.CC.getKey();
- } else if (key.equals(TaskAttribute.COMMENT_TEXT)) {
- return BugzillaAttribute.THETEXT.getKey();
- } else if (key.equals(TaskAttribute.DATE_CREATION)) {
- return BugzillaAttribute.CREATION_TS.getKey();
- } else if (key.equals(TaskAttribute.DESCRIPTION)) {
- return BugzillaAttribute.LONG_DESC.getKey();
- } else if (key.equals(TaskAttribute.ATTACHMENT_ID)) {
- return BugzillaAttribute.ATTACHID.getKey();
- } else if (key.equals(TaskAttribute.ATTACHMENT_DESCRIPTION)) {
- return BugzillaAttribute.DESC.getKey();
- } else if (key.equals(TaskAttribute.ATTACHMENT_CONTENT_TYPE)) {
- return BugzillaAttribute.CTYPE.getKey();
- //return BugzillaReportElement.TYPE.getKey();*/
- } else if (key.equals(TaskAttribute.USER_ASSIGNED)) {
- return BugzillaAttribute.ASSIGNED_TO.getKey();
- } else if (key.equals(TaskAttribute.USER_ASSIGNED_NAME)) {
- return BugzillaAttribute.ASSIGNED_TO_NAME.getKey();
- } else if (key.equals(TaskAttribute.RESOLUTION)) {
- return BugzillaAttribute.RESOLUTION.getKey();
- } else if (key.equals(TaskAttribute.STATUS)) {
- return BugzillaAttribute.BUG_STATUS.getKey();
- } else if (key.equals(TaskAttribute.DATE_MODIFICATION)) {
- return BugzillaAttribute.DELTA_TS.getKey();
- } else if (key.equals(TaskAttribute.USER_REPORTER)) {
- return BugzillaAttribute.REPORTER.getKey();
- } else if (key.equals(TaskAttribute.USER_REPORTER_NAME)) {
- return BugzillaAttribute.REPORTER_NAME.getKey();
- } else if (key.equals(TaskAttribute.SUMMARY)) {
- return BugzillaAttribute.SHORT_DESC.getKey();
- } else if (key.equals(TaskAttribute.PRODUCT)) {
- return BugzillaAttribute.PRODUCT.getKey();
- } else if (key.equals(TaskAttribute.KEYWORDS)) {
- return BugzillaAttribute.KEYWORDS.getKey();
- } else if (key.equals(TaskAttribute.ATTACHMENT_DATE)) {
- return BugzillaAttribute.DATE.getKey();
- } else if (key.equals(TaskAttribute.ATTACHMENT_SIZE)) {
- return BugzillaAttribute.SIZE.getKey();
- } else if (key.equals(TaskAttribute.ADD_SELF_CC)) {
- return BugzillaAttribute.ADDSELFCC.getKey();
- } else if (key.equals(TaskAttribute.PRIORITY)) {
- return BugzillaAttribute.PRIORITY.getKey();
- } else if (key.equals(TaskAttribute.COMMENT_NEW)) {
- return BugzillaAttribute.NEW_COMMENT.getKey();
- } else if (key.equals(TaskAttribute.COMPONENT)) {
- return BugzillaAttribute.COMPONENT.getKey();
- } else if (key.equals(TaskAttribute.TASK_KEY)) {
- return BugzillaAttribute.BUG_ID.getKey();
- } else if (key.equals(TaskAttribute.DATE_DUE)) {
- return BugzillaAttribute.DEADLINE.getKey();
- } else if (key.equals(TaskAttribute.SEVERITY)) {
- return BugzillaAttribute.BUG_SEVERITY.getKey();
- } else if (key.equals(TaskAttribute.VERSION)) {
- return BugzillaAttribute.VERSION.getKey();
- }
- return super.mapToRepositoryKey(parent, key);
- }
-
- @Override
- public TaskAttribute getAssoctiatedAttribute(TaskAttribute taskAttribute) {
- String id = taskAttribute.getMetaData().getValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID);
- if (id != null) {
- // operation associated input attributes are stored on the root attribute
- if (TaskAttribute.TYPE_OPERATION.equals(taskAttribute.getMetaData().getType())) {
- return taskAttribute.getTaskData().getRoot().getMappedAttribute(id);
- }
- return taskAttribute.getMappedAttribute(id);
- }
- return null;
- }
-
- @Override
- public IRepositoryPerson getRepositoryPerson(TaskAttribute taskAttribute) {
-
- IRepositoryPerson person = super.getRepositoryPerson(taskAttribute);
- if (person.getName() == null) {
- if (taskAttribute.getId().equals(BugzillaAttribute.ASSIGNED_TO.getKey())) {
- TaskAttribute attrAssigned = taskAttribute.getTaskData().getRoot().getAttribute(
- BugzillaAttribute.ASSIGNED_TO_NAME.getKey());
- if (attrAssigned != null) {
- person.setName(attrAssigned.getValue());
- }
- } else if (taskAttribute.getId().equals(BugzillaAttribute.REPORTER.getKey())) {
- TaskAttribute attrReporter = taskAttribute.getTaskData().getRoot().getAttribute(
- BugzillaAttribute.REPORTER_NAME.getKey());
- if (attrReporter != null) {
- person.setName(attrReporter.getValue());
- }
- } else if (taskAttribute.getId().equals(BugzillaAttribute.QA_CONTACT.getKey())) {
- TaskAttribute attrReporter = taskAttribute.getTaskData().getRoot().getAttribute(
- BugzillaAttribute.QA_CONTACT_NAME.getKey());
- if (attrReporter != null) {
- person.setName(attrReporter.getValue());
- }
- }
- }
- return person;
- }
-
- @Override
- public Map<String, String> getOptions(TaskAttribute attribute) {
- RepositoryConfiguration configuration = BugzillaCorePlugin.getRepositoryConfiguration(getTaskRepository().getRepositoryUrl());
- if (configuration != null) {
- TaskAttribute attributeProduct = attribute.getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.PRODUCT.getKey());
- if (attributeProduct != null && attributeProduct.getValue().length() > 0) {
- List<String> options = configuration.getAttributeOptions(attributeProduct.getValue(), attribute);
- if (options.size() == 0 && attribute.getId().equals(BugzillaOperation.resolve.getInputId())) {
- options = configuration.getOptionValues(BugzillaAttribute.RESOLUTION, attributeProduct.getValue());
- // DUPLICATE and MOVED have special meanings so do not show as resolution
- // TODO: COPIED FUNCTIONALITY from RepositoryConfiguration.addOperation() refactor.
- options.remove("DUPLICATE"); //$NON-NLS-1$
- options.remove("MOVED"); //$NON-NLS-1$
- }
- Map<String, String> newOptions = new LinkedHashMap<String, String>();
- for (String option : options) {
- newOptions.put(option, option);
- }
- return newOptions;
- }
- }
- return super.getOptions(attribute);
- }
-
- @Override
- public boolean equals(TaskAttribute newAttribute, TaskAttribute oldAttribute) {
- if (oldAttribute.getId().startsWith(TaskAttribute.PREFIX_ATTACHMENT)) {
- TaskAttachmentMapper oldAttachment;
- oldAttachment = TaskAttachmentMapper.createFrom(oldAttribute);
- TaskAttachmentMapper newAttachment;
- newAttachment = TaskAttachmentMapper.createFrom(newAttribute);
- return newAttachment.equals(oldAttachment);
- }
- return super.equals(newAttribute, oldAttribute);
- }
-
- @Override
- public String getLabel(TaskAttribute taskAttribute) {
- if (taskAttribute.getId().startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- return super.getLabel(taskAttribute) + ":"; //$NON-NLS-1$
- } else {
- return super.getLabel(taskAttribute);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java
deleted file mode 100644
index 01cfa1437..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java
+++ /dev/null
@@ -1,1904 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.Proxy;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.nio.charset.Charset;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.security.auth.login.LoginException;
-import javax.swing.text.html.HTML.Tag;
-
-import org.apache.commons.httpclient.Cookie;
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.RedirectException;
-import org.apache.commons.httpclient.URI;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.HeadMethod;
-import org.apache.commons.httpclient.methods.multipart.FilePart;
-import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
-import org.apache.commons.httpclient.methods.multipart.Part;
-import org.apache.commons.httpclient.methods.multipart.PartBase;
-import org.apache.commons.httpclient.methods.multipart.StringPart;
-import org.apache.commons.httpclient.params.HttpMethodParams;
-import org.eclipse.core.net.proxy.IProxyData;
-import org.eclipse.core.runtime.Assert;
-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.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer;
-import org.eclipse.mylyn.commons.net.HtmlTag;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer.Token;
-import org.eclipse.mylyn.internal.bugzilla.core.history.BugzillaTaskHistoryParser;
-import org.eclipse.mylyn.internal.bugzilla.core.history.TaskHistory;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentPartSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class BugzillaClient {
-
- private static final String COOKIE_BUGZILLA_LOGIN = "Bugzilla_login"; //$NON-NLS-1$
-
- protected static final String USER_AGENT = "BugzillaConnector"; //$NON-NLS-1$
-
- private static final int MAX_RETRIEVED_PER_QUERY = 50;
-
- private static final String QUERY_DELIMITER = "?"; //$NON-NLS-1$
-
- private static final String KEY_ID = "id"; //$NON-NLS-1$
-
- private static final String VAL_TRUE = "true"; //$NON-NLS-1$
-
- private static final String KEY_CC = "cc"; //$NON-NLS-1$
-
- private static final String POST_BUG_CGI = "/post_bug.cgi"; //$NON-NLS-1$
-
- private static final String PROCESS_BUG_CGI = "/process_bug.cgi"; //$NON-NLS-1$
-
- private static final String PROCESS_ATTACHMENT_CGI = "/attachment.cgi"; //$NON-NLS-1$
-
- public static final int WRAP_LENGTH = 80;
-
- private static final String VAL_PROCESS_BUG = "process_bug"; //$NON-NLS-1$
-
- private static final String KEY_FORM_NAME = "form_name"; //$NON-NLS-1$
-
- private static final String VAL_NONE = "none"; //$NON-NLS-1$
-
- private static final String KEY_KNOB = "knob"; //$NON-NLS-1$
-
- // TODO change to BugzillaReportElement.ADD_COMMENT
- private static final String KEY_COMMENT = "comment"; //$NON-NLS-1$
-
- private static final String KEY_SHORT_DESC = "short_desc"; //$NON-NLS-1$
-
- private static final String VALUE_CONTENTTYPEMETHOD_MANUAL = "manual"; //$NON-NLS-1$
-
- private static final String VALUE_ISPATCH = "1"; //$NON-NLS-1$
-
- private static final String VALUE_ACTION_INSERT = "insert"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_CONTENTTYPEENTRY = "contenttypeentry"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_CONTENTTYPEMETHOD = "contenttypemethod"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_ISPATCH = "ispatch"; //$NON-NLS-1$
-
- private static final String CONTENT_TYPE_APP_RDF_XML = "application/rdf+xml"; //$NON-NLS-1$
-
- private static final String CONTENT_TYPE_APP_XML = "application/xml"; //$NON-NLS-1$
-
- private static final String CONTENT_TYPE_TEXT_XML = "text/xml"; //$NON-NLS-1$
-
- private static final String[] VALID_CONFIG_CONTENT_TYPES = { CONTENT_TYPE_APP_RDF_XML, CONTENT_TYPE_APP_XML,
- CONTENT_TYPE_TEXT_XML };
-
- private static final String ATTR_CHARSET = "charset"; //$NON-NLS-1$
-
- protected Proxy proxy = Proxy.NO_PROXY;
-
- protected URL repositoryUrl;
-
- protected String characterEncoding;
-
- private boolean loggedIn;
-
- private final Map<String, String> configParameters;
-
- private final HttpClient httpClient = new HttpClient(WebUtil.getConnectionManager());
-
- private boolean lastModifiedSupported = true;
-
- private final BugzillaLanguageSettings bugzillaLanguageSettings;
-
- private RepositoryConfiguration repositoryConfiguration;
-
- private HostConfiguration hostConfiguration;
-
- private final AbstractWebLocation location;
-
- public BugzillaClient(AbstractWebLocation location, String characterEncoding, Map<String, String> configParameters,
- BugzillaLanguageSettings languageSettings) throws MalformedURLException {
- this.repositoryUrl = new URL(location.getUrl());
- this.location = location;
- this.characterEncoding = characterEncoding;
- this.configParameters = configParameters;
- this.bugzillaLanguageSettings = languageSettings;
- this.proxy = location.getProxyForHost(location.getUrl(), IProxyData.HTTP_PROXY_TYPE);
- WebUtil.configureHttpClient(httpClient, USER_AGENT);
-
- }
-
- public void validate(IProgressMonitor monitor) throws IOException, CoreException {
- monitor = Policy.monitorFor(monitor);
- GzipGetMethod method = null;
- try {
- logout(monitor);
- method = getConnect(repositoryUrl + "/", monitor); //$NON-NLS-1$
- } finally {
- if (method != null) {
- method.releaseConnection();
- }
- }
- }
-
- protected boolean hasAuthenticationCredentials() {
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- return (credentials != null && credentials.getUserName() != null && credentials.getUserName().length() > 0);
- }
-
- private GzipGetMethod getConnect(String serverURL, IProgressMonitor monitor) throws IOException, CoreException {
-
- return connectInternal(serverURL, false, monitor);
-
- }
-
- /**
- * in order to provide an even better solution for bug 196056 the size of the bugzilla configuration downloaded must
- * be reduced. By using a cached version of the config.cgi this can reduce traffic considerably:
- * http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.phoenix/infra-scripts/bugzilla/?root=Technology_Project
- *
- * @param serverURL
- * @return a GetMethod with possibly gzip encoded response body, so caller MUST check with
- * "gzip".equals(method.getResponseHeader("Content-encoding") or use the utility method
- * getResponseBodyAsUnzippedStream().
- * @throws IOException
- * @throws CoreException
- */
- protected GzipGetMethod getConnectGzip(String serverURL, IProgressMonitor monitor) throws IOException,
- CoreException {
-
- return connectInternal(serverURL, true, monitor);
-
- }
-
- private GzipGetMethod connectInternal(String requestURL, boolean gzip, IProgressMonitor monitor)
- throws IOException, CoreException {
- monitor = Policy.monitorFor(monitor);
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
-
- for (int attempt = 0; attempt < 2; attempt++) {
- // force authentication
- authenticate(monitor);
-
- GzipGetMethod getMethod = new GzipGetMethod(WebUtil.getRequestPath(requestURL), gzip);
- if (requestURL.contains(QUERY_DELIMITER)) {
- getMethod.setQueryString(requestURL.substring(requestURL.indexOf(QUERY_DELIMITER)));
- }
-
- getMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" //$NON-NLS-1$ //$NON-NLS-2$
- + characterEncoding);
-
- // Resolves bug#195113
- httpClient.getParams().setParameter("http.protocol.single-cookie-header", true); //$NON-NLS-1$
-
- // WARNING!! Setting browser compatibility breaks Bugzilla
- // authentication
- // getMethod.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
- // getMethod.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
-
- getMethod.setDoAuthentication(true);
-
- int code;
- try {
- code = WebUtil.execute(httpClient, hostConfiguration, getMethod, monitor);
- } catch (IOException e) {
- getMethod.getResponseBodyNoop();
- getMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repositoryUrl.toString(), e));
- }
-
- if (code == HttpURLConnection.HTTP_OK) {
- return getMethod;
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED || code == HttpURLConnection.HTTP_FORBIDDEN) {
- getMethod.getResponseBodyNoop();
- // login or reauthenticate due to an expired session
- getMethod.releaseConnection();
- loggedIn = false;
- authenticate(monitor);
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- loggedIn = false;
- getMethod.getResponseBodyNoop();
- getMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
- "Proxy authentication required")); //$NON-NLS-1$
- } else {
- getMethod.getResponseBodyNoop();
- getMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_NETWORK, "Http error: " + HttpStatus.getStatusText(code))); //$NON-NLS-1$
- }
- }
-
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "All connection attempts to " + repositoryUrl.toString() //$NON-NLS-1$
- + " failed. Please verify connection and authentication information.")); //$NON-NLS-1$
- }
-
- public void logout(IProgressMonitor monitor) throws IOException, CoreException {
- monitor = Policy.monitorFor(monitor);
- String loginUrl = repositoryUrl + "/relogin.cgi"; //$NON-NLS-1$
- GzipGetMethod method = null;
- try {
- method = getConnect(loginUrl, monitor);
- loggedIn = false;
- httpClient.getState().clearCookies();
- } finally {
- if (method != null) {
- method.releaseConnection();
- }
- }
- }
-
- protected InputStream getResponseStream(HttpMethodBase method, IProgressMonitor monitor) throws IOException {
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- if (isZippedReply(method)) {
- in = new java.util.zip.GZIPInputStream(in);
- }
- return in;
- }
-
- private boolean isZippedReply(HttpMethodBase method) {
- // content-encoding:gzip can be set by a dedicated perl script or mod_gzip
- boolean zipped = (null != method.getResponseHeader("Content-encoding") && method.getResponseHeader( //$NON-NLS-1$
- "Content-encoding").getValue().equals(IBugzillaConstants.CONTENT_ENCODING_GZIP)) //$NON-NLS-1$
- ||
- // content-type: application/x-gzip can be set by any apache after 302 redirect, based on .gz suffix
- (null != method.getResponseHeader("Content-Type") && method.getResponseHeader("Content-Type") //$NON-NLS-1$ //$NON-NLS-2$
- .getValue()
- .equals("application/x-gzip")); //$NON-NLS-1$
- return zipped;
- }
-
- public void authenticate(IProgressMonitor monitor) throws CoreException {
- if (loggedIn || !hasAuthenticationCredentials()) {
- return;
-// throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
-// RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
-// "Authentication credentials missing.")); //$NON-NLS-1$
- }
-
- monitor = Policy.monitorFor(monitor);
-
- GzipPostMethod postMethod = null;
-
- try {
-
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
-
- NameValuePair[] formData = new NameValuePair[2];
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- if (credentials == null) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
- "Authentication credentials from location missing.")); //$NON-NLS-1$
- }
- formData[0] = new NameValuePair(IBugzillaConstants.POST_INPUT_BUGZILLA_LOGIN, credentials.getUserName());
- formData[1] = new NameValuePair(IBugzillaConstants.POST_INPUT_BUGZILLA_PASSWORD, credentials.getPassword());
-
- postMethod = new GzipPostMethod(WebUtil.getRequestPath(repositoryUrl.toString()
- + IBugzillaConstants.URL_POST_LOGIN), true);
-
- postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" //$NON-NLS-1$ //$NON-NLS-2$
- + characterEncoding);
-
- postMethod.setRequestBody(formData);
- postMethod.setDoAuthentication(true);
- postMethod.setFollowRedirects(false);
- httpClient.getState().clearCookies();
-
- AuthenticationCredentials httpAuthCredentials = location.getCredentials(AuthenticationType.HTTP);
-
- if (httpAuthCredentials != null && httpAuthCredentials.getUserName() != null
- && httpAuthCredentials.getUserName().length() > 0) {
- httpClient.getParams().setAuthenticationPreemptive(true);
- }
-
- int code = WebUtil.execute(httpClient, hostConfiguration, postMethod, monitor);
- if (code == HttpURLConnection.HTTP_UNAUTHORIZED || code == HttpURLConnection.HTTP_FORBIDDEN) {
- loggedIn = false;
- postMethod.getResponseBodyNoop();
- postMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
- "HTTP authentication failed.")); //$NON-NLS-1$
-
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- loggedIn = false;
- postMethod.getResponseBodyNoop();
- postMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
- "Proxy authentication required")); //$NON-NLS-1$
-
- } else if (code != HttpURLConnection.HTTP_OK) {
- loggedIn = false;
- postMethod.getResponseBodyNoop();
- postMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_NETWORK, "Http error: " + HttpStatus.getStatusText(code))); //$NON-NLS-1$
- }
-
- if (hasAuthenticationCredentials()) {
- for (Cookie cookie : httpClient.getState().getCookies()) {
- if (cookie.getName().equals(COOKIE_BUGZILLA_LOGIN)) {
- loggedIn = true;
- break;
- }
- }
-
- if (!loggedIn) {
- InputStream input = getResponseStream(postMethod, monitor);
- try {
- parseHtmlError(input);
- } finally {
- input.close();
- }
- }
- } else {
- // anonymous login
- loggedIn = true;
- }
- } catch (IOException e) {
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repositoryUrl.toString(), e));
- } finally {
- if (postMethod != null) {
- postMethod.releaseConnection();
- }
- httpClient.getParams().setAuthenticationPreemptive(false);
- }
- }
-
- public boolean getSearchHits(IRepositoryQuery query, TaskDataCollector collector, TaskAttributeMapper mapper,
- IProgressMonitor monitor) throws IOException, CoreException {
- HttpMethodBase postMethod = null;
-
- try {
- authenticate(new SubProgressMonitor(monitor, 1));
- String queryUrl = query.getUrl();
- int start = queryUrl.indexOf('?');
-
- List<NameValuePair> pairs = new ArrayList<NameValuePair>();
- if (start != -1) {
- queryUrl = queryUrl.substring(start + 1);
- String[] result = queryUrl.split("&"); //$NON-NLS-1$
- if (result.length > 0) {
- for (String string : result) {
- String[] nameValue = string.split("="); //$NON-NLS-1$
- if (nameValue.length == 1) {
- pairs.add(new NameValuePair(nameValue[0].trim(), "")); //$NON-NLS-1$
- } else if (nameValue.length == 2 && nameValue[0] != null && nameValue[1] != null) {
- pairs.add(new NameValuePair(nameValue[0].trim(), URLDecoder.decode(nameValue[1].trim(),
- characterEncoding)));
- }
- }
- }
- }
-
- NameValuePair ctypePair = new NameValuePair("ctype", "rdf"); //$NON-NLS-1$ //$NON-NLS-2$
- // Test that we don't specify content type twice.
- if (!pairs.contains(ctypePair)) {
- pairs.add(ctypePair);
- }
-
- try {
- postMethod = postFormData(IBugzillaConstants.URL_BUGLIST,
- pairs.toArray(new NameValuePair[pairs.size()]), monitor);
- } catch (RedirectException r) {
- // Handle one redirect (Bugzilla 3.4 provides a redirect upon query submission via post)
- postMethod = getConnectGzip(r.getMessage(), monitor);
- }
-
- if (postMethod != null && postMethod.getResponseHeader("Content-Type") != null) { //$NON-NLS-1$
- Header responseTypeHeader = postMethod.getResponseHeader("Content-Type"); //$NON-NLS-1$
- for (String type : VALID_CONFIG_CONTENT_TYPES) {
- if (responseTypeHeader.getValue().toLowerCase(Locale.ENGLISH).contains(type)) {
- InputStream stream = getResponseStream(postMethod, monitor);
- try {
- RepositoryQueryResultsFactory queryFactory = getQueryResultsFactory(stream);
- int count = queryFactory.performQuery(repositoryUrl.toString(), collector, mapper,
- TaskDataCollector.MAX_HITS);
- return count > 0;
- } finally {
- stream.close();
- }
- }
- }
- }
-
- parseHtmlError(getResponseStream(postMethod, monitor));
- } finally {
- if (postMethod != null) {
- postMethod.releaseConnection();
- }
- }
- return false;
- }
-
- protected RepositoryQueryResultsFactory getQueryResultsFactory(InputStream stream) {
- return new RepositoryQueryResultsFactory(stream, characterEncoding);
- }
-
- public static void setupExistingBugAttributes(String serverUrl, TaskData existingReport) {
- // ordered list of elements as they appear in UI
- // and additional elements that may not appear in the incoming xml
- // stream but need to be present for bug submission / not always dirty
- // state handling
- BugzillaAttribute[] reportElements = { BugzillaAttribute.SHORT_DESC, BugzillaAttribute.BUG_STATUS,
- BugzillaAttribute.RESOLUTION, BugzillaAttribute.BUG_ID, BugzillaAttribute.REP_PLATFORM,
- BugzillaAttribute.PRODUCT, BugzillaAttribute.OP_SYS, BugzillaAttribute.COMPONENT,
- BugzillaAttribute.VERSION, BugzillaAttribute.PRIORITY, BugzillaAttribute.BUG_SEVERITY,
- BugzillaAttribute.ASSIGNED_TO, BugzillaAttribute.TARGET_MILESTONE, BugzillaAttribute.REPORTER,
- BugzillaAttribute.DEPENDSON, BugzillaAttribute.BLOCKED, BugzillaAttribute.BUG_FILE_LOC,
- BugzillaAttribute.NEWCC, BugzillaAttribute.KEYWORDS, BugzillaAttribute.CC,
- BugzillaAttribute.NEW_COMMENT, BugzillaAttribute.QA_CONTACT, BugzillaAttribute.STATUS_WHITEBOARD,
- BugzillaAttribute.DEADLINE };
-
- for (BugzillaAttribute element : reportElements) {
- BugzillaTaskDataHandler.createAttribute(existingReport, element);
- }
- }
-
- public static String getBugUrlWithoutLogin(String repositoryUrl, String id) {
- String url = repositoryUrl + IBugzillaConstants.URL_GET_SHOW_BUG + id;
- return url;
- }
-
- public static String getCharsetFromString(String string) {
- int charsetStartIndex = string.indexOf(ATTR_CHARSET);
- if (charsetStartIndex != -1) {
- int charsetEndIndex = string.indexOf("\"", charsetStartIndex); // TODO: //$NON-NLS-1$
- // could
- // be
- // space
- // after?
- if (charsetEndIndex == -1) {
- charsetEndIndex = string.length();
- }
- String charsetString = string.substring(charsetStartIndex + 8, charsetEndIndex);
- if (Charset.availableCharsets().containsKey(charsetString)) {
- return charsetString;
- }
- }
- return null;
- }
-
- public RepositoryConfiguration getRepositoryConfiguration(IProgressMonitor monitor) throws IOException,
- CoreException {
- GzipGetMethod method = null;
- int attempt = 0;
- while (attempt < 2) {
- try {
- method = getConnectGzip(repositoryUrl + IBugzillaConstants.URL_GET_CONFIG_RDF, monitor);
- // provide a solution for bug 196056 by allowing a (cached) gzipped configuration to be sent
- // modified to also accept "application/x-gzip" as results from a 302 redirect to a previously gzipped file.
- if (method == null) {
- throw new IOException("Could not retrieve configuratoin. HttpClient return null method.");
- }
-
- InputStream stream = getResponseStream(method, monitor);
- try {
- if (method.getResponseHeader("Content-Type") != null) { //$NON-NLS-1$
- Header responseTypeHeader = method.getResponseHeader("Content-Type");
- for (String type : VALID_CONFIG_CONTENT_TYPES) {
- if (responseTypeHeader.getValue().toLowerCase(Locale.ENGLISH).contains(type)) {
- RepositoryConfigurationFactory configFactory = new RepositoryConfigurationFactory(
- stream, characterEncoding);
-
- repositoryConfiguration = configFactory.getConfiguration();
-
- if (repositoryConfiguration != null) {
- if (!repositoryConfiguration.getProducts().isEmpty()) {
- repositoryConfiguration.setRepositoryUrl(repositoryUrl.toString());
- return repositoryConfiguration;
- } else {
- if (attempt == 0) {
- // empty configuration, retry authenticate
- loggedIn = false;
- break;
- } else {
- throw new CoreException(
- new Status(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN,
- "Unable to retrieve repository configuration. Ensure credentials are valid."));
- }
- }
- }
- }
- }
-
- }
- if (loggedIn) {
- parseHtmlError(stream);
- return null;
- }
- } finally {
- stream.close();
- }
- } finally {
- attempt++;
- if (method != null) {
- method.releaseConnection();
- }
- }
- }
- return null;
- }
-
- public void getAttachmentData(String attachmentId, OutputStream out, IProgressMonitor monitor) throws IOException,
- CoreException {
- String url = repositoryUrl + IBugzillaConstants.URL_GET_ATTACHMENT_DOWNLOAD + attachmentId;
- GetMethod method = connectInternal(url, false, monitor);//getConnectGzip(url, monitor);
- try {
- int status = WebUtil.execute(httpClient, hostConfiguration, method, monitor);
- if (status == HttpStatus.SC_OK) {
- out.write(method.getResponseBody());
- } else {
- parseHtmlError(method.getResponseBodyAsStream());
- }
- } catch (IOException e) {
- throw e;
- } finally {
- method.releaseConnection();
- }
- }
-
- public void postAttachment(String bugReportID, String comment, AbstractTaskAttachmentSource source,
- TaskAttribute attachmentAttribute, IProgressMonitor monitor) throws HttpException, IOException,
- CoreException {
- monitor = Policy.monitorFor(monitor);
- String description = source.getDescription();
- String contentType = source.getContentType();
- String filename = source.getName();
- boolean isPatch = false;
-
- if (attachmentAttribute != null) {
- TaskAttachmentMapper mapper = TaskAttachmentMapper.createFrom(attachmentAttribute);
-
- if (mapper.getDescription() != null) {
- description = mapper.getDescription();
- }
-
- if (mapper.getContentType() != null) {
- contentType = mapper.getContentType();
- }
-
- if (mapper.getFileName() != null) {
- filename = mapper.getFileName();
- }
-
- if (mapper.isPatch() != null) {
- isPatch = mapper.isPatch();
- }
- }
- Assert.isNotNull(bugReportID);
- Assert.isNotNull(source);
- Assert.isNotNull(contentType);
- if (description == null) {
- throw new CoreException(new Status(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN,
- Messages.BugzillaClient_description_required_when_submitting_attachments));
- }
-
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- authenticate(monitor);
- GzipPostMethod postMethod = null;
-
- try {
- postMethod = new GzipPostMethod(WebUtil.getRequestPath(repositoryUrl
- + IBugzillaConstants.URL_POST_ATTACHMENT_UPLOAD), true);
- // This option causes the client to first
- // check
- // with the server to see if it will in fact receive the post before
- // actually sending the contents.
- postMethod.getParams().setBooleanParameter(HttpMethodParams.USE_EXPECT_CONTINUE, true);
- List<PartBase> parts = new ArrayList<PartBase>();
- parts.add(new StringPart(IBugzillaConstants.POST_INPUT_ACTION, VALUE_ACTION_INSERT, characterEncoding));
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- String username;
- String password;
- if (credentials != null) {
- username = credentials.getUserName();
- password = credentials.getPassword();
- } else {
- username = null;
- password = null;
-
- }
- if (username != null && password != null) {
- parts.add(new StringPart(IBugzillaConstants.POST_INPUT_BUGZILLA_LOGIN, username, characterEncoding));
- parts.add(new StringPart(IBugzillaConstants.POST_INPUT_BUGZILLA_PASSWORD, password, characterEncoding));
- }
- parts.add(new StringPart(IBugzillaConstants.POST_INPUT_BUGID, bugReportID, characterEncoding));
- if (description != null) {
- parts.add(new StringPart(IBugzillaConstants.POST_INPUT_DESCRIPTION, description, characterEncoding));
- }
- if (comment != null) {
- parts.add(new StringPart(IBugzillaConstants.POST_INPUT_COMMENT, comment, characterEncoding));
- }
- parts.add(new FilePart(IBugzillaConstants.POST_INPUT_DATA, new TaskAttachmentPartSource(source, filename)));
-
- if (isPatch) {
- parts.add(new StringPart(ATTRIBUTE_ISPATCH, VALUE_ISPATCH));
- } else {
- parts.add(new StringPart(ATTRIBUTE_CONTENTTYPEMETHOD, VALUE_CONTENTTYPEMETHOD_MANUAL));
- parts.add(new StringPart(ATTRIBUTE_CONTENTTYPEENTRY, contentType));
- }
- if (attachmentAttribute != null) {
- Collection<TaskAttribute> attributes = attachmentAttribute.getAttributes().values();
- Iterator<TaskAttribute> itr = attributes.iterator();
- while (itr.hasNext()) {
- TaskAttribute a = itr.next();
- if (a.getId().startsWith("task.common.kind.flag_type")) {
- List<BugzillaFlag> flags = repositoryConfiguration.getFlags();
- TaskAttribute requestee = a.getAttribute("requestee"); //$NON-NLS-1$
- a = a.getAttribute("state");
- String value = a.getValue();
- String id = ""; //$NON-NLS-1$
- if (value.equals(" ")) {
- continue;
- }
- String flagname = a.getMetaData().getLabel();
- BugzillaFlag theFlag = null;
- for (BugzillaFlag bugzillaFlag : flags) {
- if (flagname.equals(bugzillaFlag.getName())) {
- theFlag = bugzillaFlag;
- break;
- }
- }
- if (theFlag != null) {
- int flagTypeNumber = theFlag.getFlagId();
- id = "flag_type-" + flagTypeNumber;
- value = a.getValue();
- if (value.equals("?") && requestee != null) { //$NON-NLS-1$
- parts.add(new StringPart("requestee_type-" + flagTypeNumber,
- requestee.getValue() != null ? requestee.getValue() : ""));
- }
- }
- parts.add(new StringPart(id, value != null ? value : "")); //$NON-NLS-1$
- } else if (a.getId().startsWith("task.common.kind.flag")) {
- TaskAttribute flagnumber = a.getAttribute("number");
- TaskAttribute requestee = a.getAttribute("requestee"); //$NON-NLS-1$
- a = a.getAttribute("state"); //$NON-NLS-1$
- String id = "flag-" + flagnumber.getValue();
- String value = a.getValue();
- if (value.equals(" ")) { //$NON-NLS-1$
- value = "X";
- }
- if (value.equals("?") && requestee != null) { //$NON-NLS-1$
- parts.add(new StringPart("requestee-" + flagnumber.getValue(),
- requestee.getValue() != null ? requestee.getValue() : ""));
- }
- parts.add(new StringPart(id, value != null ? value : ""));
- }
- }
- }
- postMethod.setRequestEntity(new MultipartRequestEntity(parts.toArray(new Part[1]), postMethod.getParams()));
- postMethod.setDoAuthentication(true);
- int status = WebUtil.execute(httpClient, hostConfiguration, postMethod, monitor);
- if (status == HttpStatus.SC_OK) {
- InputStream input = getResponseStream(postMethod, monitor);
- try {
- parseHtmlError(input);
- } finally {
- input.close();
- }
-
- } else {
- postMethod.getResponseBodyNoop();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_NETWORK, repositoryUrl.toString(), "Http error: " //$NON-NLS-1$
- + HttpStatus.getStatusText(status)));
- // throw new IOException("Communication error occurred during
- // upload. \n\n"
- // + HttpStatus.getStatusText(status));
- }
- } finally {
- if (postMethod != null) {
- postMethod.releaseConnection();
- }
- }
- }
-
- /**
- * calling method must release the connection on the returned PostMethod once finished.
- *
- * @throws CoreException
- */
- private GzipPostMethod postFormData(String formUrl, NameValuePair[] formData, IProgressMonitor monitor)
- throws IOException, CoreException {
-
- GzipPostMethod postMethod = null;
- monitor = Policy.monitorFor(monitor);
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- authenticate(monitor);
-
- postMethod = new GzipPostMethod(WebUtil.getRequestPath(repositoryUrl.toString() + formUrl), true);
- postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" + characterEncoding); //$NON-NLS-1$ //$NON-NLS-2$
-
- httpClient.getHttpConnectionManager().getParams().setSoTimeout(WebUtil.getConnectionTimeout());
-
- postMethod.setRequestBody(formData);
- postMethod.setDoAuthentication(true);
-
- int status = WebUtil.execute(httpClient, hostConfiguration, postMethod, monitor);
- if (status == HttpStatus.SC_OK) {
- return postMethod;
- } else if (status == HttpStatus.SC_MOVED_TEMPORARILY) {
- String redirectLocation;
- Header locationHeader = postMethod.getResponseHeader("location"); //$NON-NLS-1$
- if (locationHeader != null) {
- redirectLocation = locationHeader.getValue();
- throw new RedirectException(redirectLocation);
- }
-
- }
-
- postMethod.getResponseBodyNoop();
- postMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repositoryUrl.toString(), new IOException(
- "Communication error occurred during upload. \n\n" + HttpStatus.getStatusText(status)))); //$NON-NLS-1$
-
- }
-
- public void postUpdateAttachment(TaskAttribute taskAttribute, String action, IProgressMonitor monitor)
- throws IOException, CoreException {
- List<NameValuePair> formData = new ArrayList<NameValuePair>(5);
- boolean existingBugPosted = false;
-
- formData.add(new NameValuePair("action", action)); //$NON-NLS-1$
- formData.add(new NameValuePair("contenttypemethod", "manual"));
-
- formData.add(new NameValuePair("id", taskAttribute.getValue()));
- Collection<TaskAttribute> attributes = taskAttribute.getAttributes().values();
- Iterator<TaskAttribute> itr = attributes.iterator();
- while (itr.hasNext()) {
- TaskAttribute a = itr.next();
- String id = a.getId();
- String value = a.getValue();
- if (id.equals(TaskAttribute.ATTACHMENT_AUTHOR) || id.equals("date") || id.equals("size")
- || id.equals(TaskAttribute.ATTACHMENT_URL)) {
- continue;
- }
-
- if (id.equals("desc")) { //$NON-NLS-1$
- id = "description";
- }
- if (id.equals("ctype")) { //$NON-NLS-1$
- id = "contenttypeentry";
- }
-
- if (id.equals(TaskAttribute.ATTACHMENT_IS_DEPRECATED)) {
- id = "isobsolete";
- }
- if (id.equals(TaskAttribute.ATTACHMENT_IS_PATCH)) {
- id = "ispatch";
- }
- formData.add(new NameValuePair(id, value));
- }
- GzipPostMethod method = null;
- InputStream input = null;
- try {
- method = postFormData(PROCESS_ATTACHMENT_CGI, formData.toArray(new NameValuePair[formData.size()]), monitor);
-
- if (method == null) {
- throw new IOException(Messages.BugzillaClient_could_not_post_form_null_returned);
- }
-
- input = getResponseStream(method, monitor);
-
- BufferedReader in = new BufferedReader(new InputStreamReader(input, method.getRequestCharSet()));
- if (in.markSupported()) {
- in.mark(1028);
- }
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(in, null);
-
- boolean isTitle = false;
- String title = ""; //$NON-NLS-1$
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
-
- if (token.getType() == Token.TAG && ((HtmlTag) (token.getValue())).getTagType() == Tag.TITLE
- && !((HtmlTag) (token.getValue())).isEndTag()) {
- isTitle = true;
- continue;
- }
-
- if (isTitle) {
- // get all of the data in the title tag
- if (token.getType() != Token.TAG) {
- title += ((StringBuffer) token.getValue()).toString().toLowerCase(Locale.ENGLISH) + " ";
- continue;
- } else if (token.getType() == Token.TAG && ((HtmlTag) token.getValue()).getTagType() == Tag.TITLE
- && ((HtmlTag) token.getValue()).isEndTag()) {
-
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_CHANGES_SUBMITTED).iterator(); iterator.hasNext()
- && !existingBugPosted;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- existingBugPosted = existingBugPosted || title.indexOf(value) != -1;
- }
- break;
- }
- }
- }
-
- if (existingBugPosted != true) {
- try {
- if (in.markSupported()) {
- in.reset();
- }
- } catch (IOException e) {
- // ignore
- }
- parseHtmlError(in);
- }
-
- } catch (ParseException e) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "Unable to parse response from " + repositoryUrl.toString() + "."));
- } finally {
- if (input != null) {
- input.close();
- }
- if (method != null) {
- method.releaseConnection();
- }
- }
- }
-
- public RepositoryResponse postTaskData(TaskData taskData, IProgressMonitor monitor) throws IOException,
- CoreException {
- NameValuePair[] formData = null;
- monitor = Policy.monitorFor(monitor);
-
- authenticate(new SubProgressMonitor(monitor, 1));
-
- if (taskData == null) {
- return null;
- } else if (taskData.isNew()) {
- formData = getPairsForNew(taskData);
- } else {
- formData = getPairsForExisting(taskData, new SubProgressMonitor(monitor, 1));
- }
-
- String result = null;
- GzipPostMethod method = null;
- InputStream input = null;
- try {
- if (taskData.isNew()) {
- method = postFormData(POST_BUG_CGI, formData, monitor);
- } else {
- method = postFormData(PROCESS_BUG_CGI, formData, monitor);
- }
-
- if (method == null) {
- throw new IOException("Could not post form, client returned null method.");
- }
-
- input = getResponseStream(method, monitor);
-
- BufferedReader in = new BufferedReader(new InputStreamReader(input, method.getRequestCharSet()));
- if (in.markSupported()) {
- in.mark(1028);
- }
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(in, null);
-
- boolean existingBugPosted = false;
- boolean isTitle = false;
- String title = ""; //$NON-NLS-1$
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG && ((HtmlTag) (token.getValue())).getTagType() == Tag.TITLE
- && !((HtmlTag) (token.getValue())).isEndTag()) {
- isTitle = true;
- continue;
- }
-
- if (isTitle) {
- // get all of the data in the title tag
- if (token.getType() != Token.TAG) {
- title += ((StringBuffer) token.getValue()).toString().toLowerCase(Locale.ENGLISH) + " ";
- continue;
- } else if (token.getType() == Token.TAG && ((HtmlTag) token.getValue()).getTagType() == Tag.TITLE
- && ((HtmlTag) token.getValue()).isEndTag()) {
-
- boolean found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_PROCESSED).iterator(); iterator.hasNext() && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (!taskData.isNew() && found) {
- existingBugPosted = true;
- } else if (taskData.isNew()) {
-
- int startIndex = -1;
-
- if (result == null) {
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_SUBMITTED).iterator(); iterator.hasNext();) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- int stopIndex = title.indexOf(value);
- if (stopIndex > -1) {
- for (iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_BUG).iterator(); iterator.hasNext();) {
- value = iterator.next().toLowerCase(Locale.ENGLISH);
- startIndex = title.indexOf(value);
- if (startIndex > -1) {
- startIndex = startIndex + value.length();
- result = (title.substring(startIndex, stopIndex)).trim();
- break;
- }
- }
- break;
- }
- }
- }
- }
- break;
- }
- }
- }
-
- if ((!taskData.isNew() && existingBugPosted != true) || (taskData.isNew() && result == null)) {
- try {
- if (in.markSupported()) {
- in.reset();
- }
- } catch (IOException e) {
- // ignore
- }
- parseHtmlError(in);
- }
-
- if (taskData.isNew()) {
- return new RepositoryResponse(ResponseKind.TASK_CREATED, result);
- } else {
- return new RepositoryResponse(ResponseKind.TASK_UPDATED, taskData.getTaskId());
- }
- } catch (ParseException e) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "Unable to parse response from " + repositoryUrl.toString() + "."));
- } finally {
- if (input != null) {
- input.close();
- }
- if (method != null) {
- method.releaseConnection();
- }
- }
-
- }
-
- private NameValuePair[] getPairsForNew(TaskData taskData) {
- Map<String, NameValuePair> fields = new HashMap<String, NameValuePair>();
-
- // go through all of the attributes and add them to
- // the bug post
- Collection<TaskAttribute> attributes = new ArrayList<TaskAttribute>(taskData.getRoot().getAttributes().values());
- Iterator<TaskAttribute> itr = attributes.iterator();
- while (itr.hasNext()) {
- TaskAttribute a = itr.next();
- if (a != null && a.getId() != null && a.getId().compareTo("") != 0) {
- String value = null;
- value = a.getValue();
- if (value == null) {
- continue;
- }
- if (a.getId().equals(BugzillaAttribute.NEWCC.getKey())) {
- TaskAttribute b = taskData.getRoot().createAttribute(BugzillaAttribute.CC.getKey());
- b.getMetaData().defaults().setReadOnly(BugzillaAttribute.CC.isReadOnly()).setKind(
- BugzillaAttribute.CC.getKind()).setLabel(BugzillaAttribute.CC.toString()).setType(
- BugzillaAttribute.CC.getType());
- for (String val : a.getValues()) {
- if (val != null) {
- b.addValue(val);
- }
- }
- a = b;
- cleanIfShortLogin(a);
- } else {
- cleanQAContact(a);
- }
- fields.put(a.getId(), new NameValuePair(a.getId(), value));
- }
- }
-
- TaskAttribute descAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION);
- if (descAttribute != null && !descAttribute.getValue().equals("")) {
- BugzillaVersion bugzillaVersion = null;
- if (repositoryConfiguration != null) {
- bugzillaVersion = repositoryConfiguration.getInstallVersion();
- } else {
- bugzillaVersion = BugzillaVersion.MIN_VERSION;
- }
-
- if (bugzillaVersion.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_2_18) == 0) {
- fields.put(KEY_COMMENT, new NameValuePair(KEY_COMMENT, formatTextToLineWrap(descAttribute.getValue(),
- true)));
- } else {
- fields.put(KEY_COMMENT, new NameValuePair(KEY_COMMENT, descAttribute.getValue()));
- }
- }
-
- return fields.values().toArray(new NameValuePair[fields.size()]);
-
- }
-
- private void cleanQAContact(TaskAttribute a) {
- if (a.getId().equals(BugzillaAttribute.QA_CONTACT.getKey())) {
- cleanIfShortLogin(a);
- }
- }
-
- private void cleanIfShortLogin(TaskAttribute a) {
- if ("true".equals(configParameters.get(IBugzillaConstants.REPOSITORY_SETTING_SHORT_LOGIN))) {
- if (a.getValue() != null && a.getValue().length() > 0) {
- int atIndex = a.getValue().indexOf("@"); //$NON-NLS-1$
- if (atIndex != -1) {
- String newValue = a.getValue().substring(0, atIndex);
- a.setValue(newValue);
- }
- }
- }
- }
-
- private NameValuePair[] getPairsForExisting(TaskData model, IProgressMonitor monitor) throws CoreException {
- boolean groupSecurityEnabled = false;
- Map<String, NameValuePair> fields = new HashMap<String, NameValuePair>();
- fields.put(KEY_FORM_NAME, new NameValuePair(KEY_FORM_NAME, VAL_PROCESS_BUG));
- // go through all of the attributes and add them to the bug post
- Collection<TaskAttribute> attributes = model.getRoot().getAttributes().values();
- Iterator<TaskAttribute> itr = attributes.iterator();
- boolean tokenFound = false;
- boolean tokenRequired = false;
- while (itr.hasNext()) {
- TaskAttribute a = itr.next();
-
- if (a == null) {
- continue;
- } else {
- String id = a.getId();
- if (id.equalsIgnoreCase(BugzillaAttribute.TOKEN.getKey())) {
- tokenFound = true;
- } else if (id.equals(BugzillaAttribute.QA_CONTACT.getKey())
- || id.equals(BugzillaAttribute.ASSIGNED_TO.getKey())) {
- cleanIfShortLogin(a);
- } else if (id.equals(BugzillaAttribute.REPORTER.getKey()) || id.equals(BugzillaAttribute.CC.getKey())
- || id.equals(BugzillaAttribute.REMOVECC.getKey())
- || id.equals(BugzillaAttribute.CREATION_TS.getKey())
- || id.equals(BugzillaAttribute.BUG_STATUS.getKey())
- || id.equals(BugzillaAttribute.VOTES.getKey())) {
- continue;
- } else if (id.equals(BugzillaAttribute.NEW_COMMENT.getKey())) {
- BugzillaVersion bugzillaVersion = null;
- if (repositoryConfiguration != null) {
- bugzillaVersion = repositoryConfiguration.getInstallVersion();
- } else {
- bugzillaVersion = BugzillaVersion.MIN_VERSION;
- }
- if (bugzillaVersion.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_2_18) == 0) {
- a.setValue(formatTextToLineWrap(a.getValue(), true));
- }
- } else if (id.equals(BugzillaAttribute.GROUP.getKey()) && a.getValue().length() > 0) {
- groupSecurityEnabled = true;
- }
-
- if (a.getMetaData().getType() != null
- && a.getMetaData().getType().equals(TaskAttribute.TYPE_MULTI_SELECT)) {
- List<String> values = a.getValues();
- int i = 0;
- for (String string : values) {
- fields.put(id + i++, new NameValuePair(id, string != null ? string : ""));
- }
- } else if (id != null && id.compareTo("") != 0) {
- String value = a.getValue();
- if (id.equals(BugzillaAttribute.DELTA_TS.getKey())) {
- value = stripTimeZone(value);
- }
- if (id.startsWith("task.common.kind.flag_type")) {
- List<BugzillaFlag> flags = repositoryConfiguration.getFlags();
- TaskAttribute requestee = a.getAttribute("requestee"); //$NON-NLS-1$
- a = a.getAttribute("state");
- value = a.getValue();
- if (value.equals(" ")) {
- continue;
- }
- String flagname = a.getMetaData().getLabel();
- BugzillaFlag theFlag = null;
- for (BugzillaFlag bugzillaFlag : flags) {
- if (flagname.equals(bugzillaFlag.getName())) {
- theFlag = bugzillaFlag;
- break;
- }
- }
- if (theFlag != null) {
- int flagTypeNumber = theFlag.getFlagId();
- id = "flag_type-" + flagTypeNumber;
- value = a.getValue();
- if (value.equals("?") && requestee != null) { //$NON-NLS-1$
- fields.put("requestee_type-" + flagTypeNumber, new NameValuePair("requestee_type-" //$NON-NLS-2$
- + flagTypeNumber, requestee.getValue() != null ? requestee.getValue() : ""));
- }
- }
- } else if (id.startsWith("task.common.kind.flag")) { //$NON-NLS-1$
- TaskAttribute flagnumber = a.getAttribute("number");
- TaskAttribute requestee = a.getAttribute("requestee"); //$NON-NLS-1$
- a = a.getAttribute("state"); //$NON-NLS-1$
- id = "flag-" + flagnumber.getValue();
- value = a.getValue();
- if (value.equals(" ")) { //$NON-NLS-1$
- value = "X";
- }
- if (value.equals("?") && requestee != null) { //$NON-NLS-1$
- fields.put("requestee-" + flagnumber.getValue(), new NameValuePair("requestee-" //$NON-NLS-2$
- + flagnumber.getValue(), requestee.getValue() != null ? requestee.getValue() : ""));
- }
- } else if (id.startsWith("task.common.")) {
- // Don't post any remaining non-bugzilla specific attributes
- continue;
- }
- fields.put(id, new NameValuePair(id, value != null ? value : ""));
- }
- }
- }
-
- // when posting the bug id is encoded in a hidden field named 'id'
- TaskAttribute attributeBugId = model.getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey());
- if (attributeBugId != null) {
- fields.put(KEY_ID, new NameValuePair(KEY_ID, attributeBugId.getValue()));
- }
-
- // add the operation to the bug post
- BugzillaVersion bugzillaVersion = null;
- if (repositoryConfiguration != null) {
- bugzillaVersion = repositoryConfiguration.getInstallVersion();
- } else {
- bugzillaVersion = BugzillaVersion.MIN_VERSION;
- }
- if (bugzillaVersion.compareTo(BugzillaVersion.BUGZILLA_3_2) < 0) {
-
- TaskAttribute attributeOperation = model.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- if (attributeOperation == null) {
- fields.put(KEY_KNOB, new NameValuePair(KEY_KNOB, VAL_NONE));
- } else {
- TaskAttribute originalOperation = model.getRoot().getAttribute(
- TaskAttribute.PREFIX_OPERATION + attributeOperation.getValue());
- if (originalOperation == null) {
- // Work around for bug#241012
- fields.put(KEY_KNOB, new NameValuePair(KEY_KNOB, VAL_NONE));
- } else {
- String inputAttributeId = originalOperation.getMetaData().getValue(
- TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID);
- if (inputAttributeId == null || inputAttributeId.equals("")) {
- String sel = attributeOperation.getValue();
- fields.put(KEY_KNOB, new NameValuePair(KEY_KNOB, sel));
- } else {
- fields.put(KEY_KNOB, new NameValuePair(KEY_KNOB, attributeOperation.getValue()));
- TaskAttribute inputAttribute = attributeOperation.getTaskData().getRoot().getAttribute(
- inputAttributeId);
- if (inputAttribute != null) {
- if (inputAttribute.getOptions().size() > 0) {
- String sel = inputAttribute.getValue();
- String knob = inputAttribute.getId();
- if (knob.equals(BugzillaOperation.resolve.getInputId())) {
- knob = BugzillaAttribute.RESOLUTION.getKey();
- }
- fields.put(knob, new NameValuePair(knob, inputAttribute.getOption(sel)));
- } else {
- String sel = inputAttribute.getValue();
- String knob = attributeOperation.getValue();
- if (knob.equals(BugzillaOperation.reassign.toString())) {
- knob = BugzillaAttribute.ASSIGNED_TO.getKey();
- }
- fields.put(knob, new NameValuePair(knob, sel));
- }
- }
- }
- }
- if (model.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW) != null
- && model.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW).getValue().length() > 0) {
- fields.put(KEY_COMMENT, new NameValuePair(KEY_COMMENT, model.getRoot().getMappedAttribute(
- TaskAttribute.COMMENT_NEW).getValue()));
- } else if (attributeOperation != null
- && attributeOperation.getValue().equals(BugzillaOperation.duplicate.toString())) {
- // fix for bug#198677
- fields.put(KEY_COMMENT, new NameValuePair(KEY_COMMENT, ""));
- }
- }
- } else {
- // A token is required for bugzilla 3.2.1 and newer
- tokenRequired = bugzillaVersion.compareTo(BugzillaVersion.BUGZILLA_3_2) > 0;
- String fieldName = BugzillaAttribute.BUG_STATUS.getKey();
- TaskAttribute attributeStatus = model.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- TaskAttribute attributeOperation = model.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- if (attributeOperation == null) {
- fields.put(fieldName, new NameValuePair(fieldName, attributeStatus.getValue()));
- } else {
- TaskAttribute originalOperation = model.getRoot().getAttribute(
- TaskAttribute.PREFIX_OPERATION + attributeOperation.getValue());
- if (originalOperation == null) {
- // Work around for bug#241012
- fields.put(fieldName, new NameValuePair(fieldName, attributeStatus.getValue()));
- } else {
- String inputAttributeId = originalOperation.getMetaData().getValue(
- TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID);
- if (originalOperation == null) {
- fields.put(fieldName, new NameValuePair(fieldName, attributeStatus.getValue()));
- } else {
- String selOp = attributeOperation.getValue().toUpperCase();
- if (selOp.equals("NONE")) {
- selOp = attributeStatus.getValue();
- }
- if (selOp.equals("ACCEPT")) { //$NON-NLS-1$
- selOp = "ASSIGNED";
- }
- if (selOp.equals("RESOLVE")) { //$NON-NLS-1$
- selOp = "RESOLVED";
- }
- if (selOp.equals("VERIFY")) { //$NON-NLS-1$
- selOp = "VERIFIED";
- }
- if (selOp.equals("CLOSE")) { //$NON-NLS-1$
- selOp = "CLOSED";
- }
- if (selOp.equals("REOPEN")) { //$NON-NLS-1$
- selOp = "REOPENED";
- }
- if (selOp.equals("DUPLICATE")) { //$NON-NLS-1$
- selOp = "RESOLVED";
- String knob = BugzillaAttribute.RESOLUTION.getKey();
- fields.put(knob, new NameValuePair(knob, "DUPLICATE"));
- }
-
- fields.put(fieldName, new NameValuePair(fieldName, selOp));
- if (inputAttributeId != null && !inputAttributeId.equals("")) {
- TaskAttribute inputAttribute = attributeOperation.getTaskData().getRoot().getAttribute(
- inputAttributeId);
- if (inputAttribute != null) {
- if (inputAttribute.getOptions().size() > 0) {
- String sel = inputAttribute.getValue();
- String knob = inputAttribute.getId();
- if (knob.equals(BugzillaOperation.resolve.getInputId())) {
- knob = BugzillaAttribute.RESOLUTION.getKey();
- }
- fields.put(knob, new NameValuePair(knob, inputAttribute.getOption(sel)));
- } else {
- String sel = inputAttribute.getValue();
- String knob = attributeOperation.getValue();
- if (knob.equals("duplicate")) {
- knob = inputAttributeId;
- }
- if (knob.equals(BugzillaOperation.reassign.toString())) {
- knob = BugzillaAttribute.ASSIGNED_TO.getKey();
- }
- fields.put(knob, new NameValuePair(knob, sel));
- }
- }
- }
- }
- }
- }
-
- if (model.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW) != null
- && model.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW).getValue().length() > 0) {
- fields.put(KEY_COMMENT, new NameValuePair(KEY_COMMENT, model.getRoot().getMappedAttribute(
- TaskAttribute.COMMENT_NEW).getValue()));
- }
- }
-
- if (model.getRoot().getMappedAttribute(BugzillaAttribute.SHORT_DESC.getKey()) != null) {
- fields.put(KEY_SHORT_DESC, new NameValuePair(KEY_SHORT_DESC, model.getRoot().getMappedAttribute(
- BugzillaAttribute.SHORT_DESC.getKey()).getValue()));
- }
-
- TaskAttribute attributeRemoveCC = model.getRoot().getMappedAttribute(BugzillaAttribute.REMOVECC.getKey());
- if (attributeRemoveCC != null) {
- List<String> removeCC = attributeRemoveCC.getValues();
- if (removeCC != null && removeCC.size() > 0) {
- String[] s = new String[removeCC.size()];
- fields.put(KEY_CC, new NameValuePair(KEY_CC, toCommaSeparatedList(removeCC.toArray(s))));
- fields.put(BugzillaAttribute.REMOVECC.getKey(), new NameValuePair(BugzillaAttribute.REMOVECC.getKey(),
- VAL_TRUE));
- }
- }
-
- // check for security token (required for successful submit on Bugzilla 3.2.1 and greater but not in xml until Bugzilla 3.2.3 bug#263318)
-
- if (groupSecurityEnabled || (!tokenFound && tokenRequired)) {
- // get security and token if exists from html and include in post
- HtmlInformation htmlInfo = getHtmlOnlyInformation(model, monitor);
-
- if (groupSecurityEnabled) {
- for (String key : htmlInfo.getGroups().keySet()) {
- fields.put(key, new NameValuePair(key, htmlInfo.getGroups().get(key)));
- }
- }
- if (htmlInfo.getToken() != null && htmlInfo.getToken().length() > 0 && tokenRequired) {
- NameValuePair tokenPair = fields.get(BugzillaAttribute.TOKEN.getKey());
- if (tokenPair != null) {
- tokenPair.setValue(htmlInfo.getToken());
- } else {
- fields.put(BugzillaAttribute.TOKEN.getKey(), new NameValuePair(BugzillaAttribute.TOKEN.getKey(),
- htmlInfo.getToken()));
- }
- }
- }
- return fields.values().toArray(new NameValuePair[fields.size()]);
-
- }
-
- private HtmlInformation getHtmlOnlyInformation(TaskData taskData, IProgressMonitor monitor) throws CoreException {
- HtmlInformation htmlInfo = new HtmlInformation();
- authenticate(new SubProgressMonitor(monitor, 1));
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
-
- String bugUrl = taskData.getRepositoryUrl() + IBugzillaConstants.URL_GET_SHOW_BUG + taskData.getTaskId();
- GzipGetMethod getMethod = new GzipGetMethod(WebUtil.getRequestPath(bugUrl), false);
- getMethod.setRequestHeader("Content-Type", "text/xml; charset=" + characterEncoding); //$NON-NLS-1$
- httpClient.getParams().setParameter("http.protocol.single-cookie-header", true);
- getMethod.setDoAuthentication(true);
-
- int code;
- InputStream inStream = null;
- try {
- code = WebUtil.execute(httpClient, hostConfiguration, getMethod, monitor);
- if (code == HttpURLConnection.HTTP_OK) {
- inStream = getResponseStream(getMethod, monitor);
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(new BufferedReader(new InputStreamReader(
- inStream, characterEncoding)), null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG && ((HtmlTag) (token.getValue())).getTagType() == Tag.INPUT
- && !((HtmlTag) (token.getValue())).isEndTag()) {
- HtmlTag tag = (HtmlTag) token.getValue();
- // String name = tag.getAttribute("name");
- String id = tag.getAttribute("id"); //$NON-NLS-1$
- String checkedValue = tag.getAttribute("checked"); //$NON-NLS-1$
- String type = tag.getAttribute("type"); //$NON-NLS-1$
- String name = tag.getAttribute("name"); //$NON-NLS-1$
- String value = tag.getAttribute("value"); //$NON-NLS-1$
- if (type != null && type.equalsIgnoreCase("checkbox") && id != null && id.startsWith("bit-")) { //$NON-NLS-1$ //$NON-NLS-2$
- htmlInfo.getGroups().put(id, checkedValue);
- } else if (name != null && name.equalsIgnoreCase(BugzillaAttribute.TOKEN.getKey())
- && value != null && value.length() > 0) {
- htmlInfo.setToken(value);
- }
- }
- }
- }
- } catch (Exception e) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Unable to retrieve group security information", e)); //$NON-NLS-1$
- } finally {
- if (inStream != null) {
- try {
- inStream.close();
- } catch (IOException e) {
- //ignore
- }
- }
- }
- return htmlInfo;
- }
-
- public static String stripTimeZone(String longTime) {
- String result = longTime;
- if (longTime != null) {
- String[] values = longTime.split(" "); //$NON-NLS-1$
- if (values != null && values.length > 2) {
- result = values[0] + " " + values[1]; //$NON-NLS-1$
- }
- }
- return result;
- }
-
- private static String toCommaSeparatedList(String[] strings) {
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < strings.length; i++) {
- buffer.append(strings[i]);
- if (i != strings.length - 1) {
- buffer.append(","); //$NON-NLS-1$
- }
- }
- return buffer.toString();
- }
-
- /**
- * Utility method for determining what potential error has occurred from a bugzilla html reponse page
- */
- private void parseHtmlError(InputStream inputStream) throws IOException, CoreException {
-
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, characterEncoding));
- parseHtmlError(in);
- }
-
- private void parseHtmlError(BufferedReader in) throws IOException, CoreException {
-
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(in, null);
-
- boolean isTitle = false;
- String title = ""; //$NON-NLS-1$
- String body = ""; //$NON-NLS-1$
-
- try {
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- body += token.toString();
- if (token.getType() == Token.TAG && ((HtmlTag) (token.getValue())).getTagType() == Tag.TITLE
- && !((HtmlTag) (token.getValue())).isEndTag()) {
- isTitle = true;
- continue;
- }
-
- if (isTitle) {
- // get all of the data in the title tag
- if (token.getType() != Token.TAG) {
- title += ((StringBuffer) token.getValue()).toString().toLowerCase(Locale.ENGLISH) + " "; //$NON-NLS-1$
- continue;
- } else if (token.getType() == Token.TAG && ((HtmlTag) token.getValue()).getTagType() == Tag.TITLE
- && ((HtmlTag) token.getValue()).isEndTag()) {
-
- boolean found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_ERROR_LOGIN).iterator(); iterator.hasNext() && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(), title));
- }
- found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_ERROR_COLLISION).iterator(); iterator.hasNext()
- && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.REPOSITORY_COLLISION, repositoryUrl.toString()));
- }
- found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_ERROR_COMMENT_REQUIRED).iterator(); iterator.hasNext()
- && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- throw new CoreException(new BugzillaStatus(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.REPOSITORY_COMMENT_REQUIRED));
- }
- found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_SUSPICIOUS_ACTION).iterator(); iterator.hasNext()
- && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- IBugzillaConstants.REPOSITORY_STATUS_SUSPICIOUS_ACTION));
- }
- found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_ERROR_LOGGED_OUT).iterator(); iterator.hasNext()
- && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- loggedIn = false;
- // throw new
- // BugzillaException(IBugzillaConstants.LOGGED_OUT);
- throw new CoreException(new BugzillaStatus(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.REPOSITORY_LOGGED_OUT,
- "You have been logged out. Please retry operation.")); //$NON-NLS-1$
- }
- found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_CHANGES_SUBMITTED).iterator(); iterator.hasNext()
- && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- return;
- }
- isTitle = false;
- }
- }
- }
-
- throw new CoreException(RepositoryStatus.createHtmlStatus(repositoryUrl.toString(), IStatus.INFO,
- BugzillaCorePlugin.ID_PLUGIN, RepositoryStatus.ERROR_REPOSITORY,
- "A repository error has occurred.", body)); //$NON-NLS-1$
-
- } catch (ParseException e) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "Unable to parse response from " + repositoryUrl.toString() + ".")); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- in.close();
- }
- }
-
- public TaskHistory getHistory(String taskId, IProgressMonitor monitor) throws IOException, CoreException {
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- authenticate(monitor);
- GzipGetMethod method = null;
- try {
- String url = repositoryUrl + IBugzillaConstants.SHOW_ACTIVITY + taskId;
- method = getConnectGzip(url, monitor);
- if (method != null) {
- InputStream in = getResponseStream(method, monitor);
- try {
- BugzillaTaskHistoryParser parser = new BugzillaTaskHistoryParser(in, characterEncoding);
- try {
- return parser.retrieveHistory(bugzillaLanguageSettings);
- } catch (LoginException e) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
- IBugzillaConstants.INVALID_CREDENTIALS));
- } catch (ParseException e) {
- loggedIn = false;
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "Unable to parse response from " //$NON-NLS-1$
- + repositoryUrl.toString() + ".")); //$NON-NLS-1$
- }
- } finally {
- in.close();
- }
- }
-
- } finally {
- if (method != null) {
- method.releaseConnection();
- }
- }
- return null;
- }
-
- public void getTaskData(Set<String> taskIds, final TaskDataCollector collector, final TaskAttributeMapper mapper,
- final IProgressMonitor monitor) throws IOException, CoreException {
- GzipPostMethod method = null;
- HashMap<String, TaskData> taskDataMap = new HashMap<String, TaskData>();
- // make a copy to modify set
- taskIds = new HashSet<String>(taskIds);
- int authenticationAttempt = 0;
- while (taskIds.size() > 0) {
-
- try {
-
- Set<String> idsToRetrieve = new HashSet<String>();
- Iterator<String> itr = taskIds.iterator();
- for (int x = 0; itr.hasNext() && x < MAX_RETRIEVED_PER_QUERY; x++) {
- idsToRetrieve.add(itr.next());
- }
-
- NameValuePair[] formData = new NameValuePair[idsToRetrieve.size() + 2];
-
- if (idsToRetrieve.size() == 0) {
- return;
- }
-
- itr = idsToRetrieve.iterator();
- int x = 0;
- for (; itr.hasNext(); x++) {
- String taskId = itr.next();
- formData[x] = new NameValuePair("id", taskId); //$NON-NLS-1$
- TaskData taskData = new TaskData(mapper, getConnectorKind(), repositoryUrl.toString(), taskId);
- setupExistingBugAttributes(repositoryUrl.toString(), taskData);
- taskDataMap.put(taskId, taskData);
- }
- formData[x++] = new NameValuePair("ctype", "xml"); //$NON-NLS-1$ //$NON-NLS-2$
- formData[x] = new NameValuePair("excludefield", "attachmentdata"); //$NON-NLS-1$ //$NON-NLS-2$
- method = postFormData(IBugzillaConstants.URL_POST_SHOW_BUG, formData, monitor);
- if (method == null) {
- throw new IOException("Could not post form, client returned null method."); //$NON-NLS-1$
- }
-
- boolean parseable = false;
- if (method.getResponseHeader("Content-Type") != null) { //$NON-NLS-1$
- Header responseTypeHeader = method.getResponseHeader("Content-Type"); //$NON-NLS-1$
- for (String type : VALID_CONFIG_CONTENT_TYPES) {
- if (responseTypeHeader.getValue().toLowerCase(Locale.ENGLISH).contains(type)) {
- InputStream input = getResponseStream(method, monitor);
- try {
- MultiBugReportFactory factory = new MultiBugReportFactory(input, characterEncoding);
- List<BugzillaCustomField> customFields = new ArrayList<BugzillaCustomField>();
- if (repositoryConfiguration != null) {
- customFields = repositoryConfiguration.getCustomFields();
- }
- factory.populateReport(taskDataMap, collector, mapper, customFields);
- taskIds.removeAll(idsToRetrieve);
- taskDataMap.clear();
- parseable = true;
- break;
- } finally {
- input.close();
- }
- }
- }
- }
-
- if (!parseable) {
- parseHtmlError(getResponseStream(method, monitor));
- break;
- }
- } catch (CoreException c) {
- if (c.getStatus().getCode() == RepositoryStatus.ERROR_REPOSITORY_LOGIN && authenticationAttempt < 1) {
- loggedIn = false;
- authenticationAttempt++;
- //StatusHandler.log(c.getStatus());
- } else {
- throw c;
- }
- } finally {
- if (method != null) {
- method.releaseConnection();
- }
- }
- }
- }
-
- protected String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
- public String getConfigurationTimestamp(IProgressMonitor monitor) throws CoreException {
- if (!lastModifiedSupported) {
- return null;
- }
- String lastModified = null;
- HeadMethod method = null;
- try {
- method = connectHead(repositoryUrl + IBugzillaConstants.URL_GET_CONFIG_RDF, monitor);
-
- Header lastModifiedHeader = method.getResponseHeader("Last-Modified"); //$NON-NLS-1$
- if (lastModifiedHeader != null && lastModifiedHeader.getValue() != null
- && lastModifiedHeader.getValue().length() > 0) {
- lastModified = lastModifiedHeader.getValue();
- } else {
- lastModifiedSupported = false;
- }
-
- } catch (Exception e) {
-
- lastModifiedSupported = false;
-
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Error retrieving configuration timestamp", e)); //$NON-NLS-1$
- } finally {
- if (method != null) {
- method.releaseConnection();
- }
- }
- return lastModified;
- }
-
- private HeadMethod connectHead(String requestURL, IProgressMonitor monitor) throws IOException, CoreException {
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- for (int attempt = 0; attempt < 2; attempt++) {
- // force authentication
- authenticate(monitor);
-
- HeadMethod headMethod = new HeadMethod(WebUtil.getRequestPath(requestURL));
- if (requestURL.contains(QUERY_DELIMITER)) {
- headMethod.setQueryString(requestURL.substring(requestURL.indexOf(QUERY_DELIMITER)));
- }
-
- headMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" //$NON-NLS-1$ //$NON-NLS-2$
- + characterEncoding);
-
- // WARNING!! Setting browser compatability breaks Bugzilla
- // authentication
- // getMethod.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
-
-// headMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new BugzillaRetryHandler());
- headMethod.setDoAuthentication(true);
-
- int code;
- try {
- code = WebUtil.execute(httpClient, hostConfiguration, headMethod, monitor);
- } catch (IOException e) {
- headMethod.getResponseBody();
- headMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repositoryUrl.toString(), e));
- }
-
- if (code == HttpURLConnection.HTTP_OK) {
- return headMethod;
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED || code == HttpURLConnection.HTTP_FORBIDDEN) {
- headMethod.getResponseBody();
- // login or reauthenticate due to an expired session
- headMethod.releaseConnection();
- loggedIn = false;
- authenticate(monitor);
- } else if (code == HttpURLConnection.HTTP_PROXY_AUTH) {
- loggedIn = false;
- headMethod.getResponseBody();
- headMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, repositoryUrl.toString(),
- "Proxy authentication required")); //$NON-NLS-1$
- } else {
- headMethod.getResponseBody();
- headMethod.releaseConnection();
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_NETWORK, "Http error: " + HttpStatus.getStatusText(code))); //$NON-NLS-1$
- // throw new IOException("HttpClient connection error response
- // code: " + code);
- }
- }
-
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "All connection attempts to " + repositoryUrl.toString() //$NON-NLS-1$
- + " failed. Please verify connection and authentication information.")); //$NON-NLS-1$
- }
-
- public void setRepositoryConfiguration(RepositoryConfiguration repositoryConfiguration) {
- this.repositoryConfiguration = repositoryConfiguration;
- }
-
- public RepositoryConfiguration getRepositoryConfiguration() {
- return repositoryConfiguration;
- }
-
- /**
- * Break text up into lines so that it is displayed properly in bugzilla
- */
- public static String formatTextToLineWrap(String origText, boolean hardWrap) {
- if (!hardWrap) {
- return origText;
- } else {
- String newText = ""; //$NON-NLS-1$
-
- while (!origText.equals("")) { //$NON-NLS-1$
- int newLine = origText.indexOf('\n');
- if (newLine == -1 || newLine > WRAP_LENGTH) {
- if (origText.length() > WRAP_LENGTH) {
- int spaceIndex = origText.lastIndexOf(" ", WRAP_LENGTH); //$NON-NLS-1$
- if (spaceIndex == -1) {
- spaceIndex = origText.indexOf(" ", WRAP_LENGTH); //$NON-NLS-1$
- if (spaceIndex == -1) {
- spaceIndex = newLine;
- }
- }
- newText = newText + origText.substring(0, spaceIndex) + "\n"; //$NON-NLS-1$
- if (origText.charAt(spaceIndex) == ' ' || origText.charAt(spaceIndex) == '\n') {
- origText = origText.substring(spaceIndex + 1, origText.length());
- } else {
- origText = origText.substring(spaceIndex, origText.length());
- }
- } else {
- newText = newText + origText;
- origText = ""; //$NON-NLS-1$
- }
- } else {
- newText = newText + origText.substring(0, newLine + 1);
- origText = origText.substring(newLine + 1, origText.length());
- }
- }
- return newText;
- }
- }
-
- public static boolean isValidUrl(String url) {
- if (url.startsWith("https://") || url.startsWith("http://")) { //$NON-NLS-1$//$NON-NLS-2$
- try {
- new URI(url, true, "UTF-8"); //$NON-NLS-1$
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- return false;
- }
-
- private class HtmlInformation {
- private final Map<String, String> groups;
-
- private String token;
-
- public HtmlInformation() {
- groups = new HashMap<String, String>();
- }
-
- public Map<String, String> getGroups() {
- return groups;
- }
-
- public void setToken(String token) {
- this.token = token;
- }
-
- public String getToken() {
- return token;
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientFactory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientFactory.java
deleted file mode 100644
index 09fd7f879..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.net.MalformedURLException;
-
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
-
-/**
- * @author Steffen Pingel
- * @author Robert Elves (adaption for Bugzilla)
- */
-public class BugzillaClientFactory {
-
- protected static TaskRepositoryLocationFactory taskRepositoryLocationFactory = new TaskRepositoryLocationFactory();
-
- public static BugzillaClient createClient(TaskRepository taskRepository) throws MalformedURLException {
- String language = taskRepository.getProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING);
- if (language == null || language.equals("")) { //$NON-NLS-1$
- language = IBugzillaConstants.DEFAULT_LANG;
- }
- BugzillaLanguageSettings languageSettings = BugzillaRepositoryConnector.getLanguageSetting(language);
- AbstractWebLocation location = taskRepositoryLocationFactory.createWebLocation(taskRepository);
- BugzillaClient client = new BugzillaClient(location, taskRepository.getCharacterEncoding(),
- taskRepository.getProperties(), languageSettings);
- return client;
-
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientManager.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientManager.java
deleted file mode 100644
index ecb7eaa7b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClientManager.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.net.MalformedURLException;
-import java.util.HashMap;
-import java.util.Map;
-
-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.mylyn.tasks.core.IRepositoryListener;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Steffen Pingel
- * @author Robert Elves (adaption for Bugzilla)
- */
-public class BugzillaClientManager implements IRepositoryListener {
-
- private final Map<String, BugzillaClient> clientByUrl = new HashMap<String, BugzillaClient>();
-
- public BugzillaClientManager() {
- }
-
- public synchronized BugzillaClient getClient(TaskRepository taskRepository, IProgressMonitor monitor)
- throws CoreException {
- BugzillaClient client = clientByUrl.get(taskRepository.getRepositoryUrl());
- if (client == null) {
-
- String language = taskRepository.getProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING);
- if (language == null || language.equals("")) { //$NON-NLS-1$
- language = IBugzillaConstants.DEFAULT_LANG;
- }
- try {
- client = createClient(taskRepository);
- } catch (MalformedURLException e) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Malformed Repository Url", e)); //$NON-NLS-1$
- }
- clientByUrl.put(taskRepository.getRepositoryUrl(), client);
- client.setRepositoryConfiguration(BugzillaCorePlugin.getRepositoryConfiguration(taskRepository, false,
- monitor));
- }
- return client;
- }
-
- protected BugzillaClient createClient(TaskRepository taskRepository) throws MalformedURLException {
- return BugzillaClientFactory.createClient(taskRepository);
- }
-
- public synchronized void repositoryAdded(TaskRepository repository) {
- // make sure there is no stale client still in the cache, bug #149939
- removeClient(repository);
- }
-
- public synchronized void repositoryRemoved(TaskRepository repository) {
- removeClient(repository);
- }
-
- private void removeClient(TaskRepository repository) {
- clientByUrl.remove(repository.getRepositoryUrl());
- }
-
- public synchronized void repositorySettingsChanged(TaskRepository repository) {
- removeClient(repository);
- }
-
- public void repositoryUrlChanged(TaskRepository repository, String oldUrl) {
- // ignore
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCorePlugin.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCorePlugin.java
deleted file mode 100644
index a4a30e4dd..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCorePlugin.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.osgi.framework.BundleContext;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class BugzillaCorePlugin extends Plugin {
-
- private static final String ERROR_DELETING_CONFIGURATION = "Error removing corrupt repository configuration file."; //$NON-NLS-1$
-
- private static final String ERROR_INCOMPATIBLE_CONFIGURATION = "Reset Bugzilla repository configuration cache due to format change"; //$NON-NLS-1$
-
- public static final String CONNECTOR_KIND = "bugzilla"; //$NON-NLS-1$
-
- public static final String ID_PLUGIN = "org.eclipse.mylyn.bugzilla"; //$NON-NLS-1$
-
- private static BugzillaCorePlugin INSTANCE;
-
- private static boolean cacheFileRead = false;
-
- private static File repositoryConfigurationFile = null;
-
- private static BugzillaRepositoryConnector connector;
-
- private static final String OPTION_ALL = "All"; //$NON-NLS-1$
-
- // A Map from Java's Platform to Buzilla's
- private final Map<String, String> java2buzillaPlatformMap = new HashMap<String, String>();
-
- /** Product configuration for the current server */
- private static Map<String, RepositoryConfiguration> repositoryConfigurations = new HashMap<String, RepositoryConfiguration>();
-
- public BugzillaCorePlugin() {
- super();
- java2buzillaPlatformMap.put("x86", "PC"); // can be PC or Macintosh! //$NON-NLS-1$ //$NON-NLS-2$
- java2buzillaPlatformMap.put("x86_64", "PC"); //$NON-NLS-1$ //$NON-NLS-2$
- java2buzillaPlatformMap.put("ia64", "PC"); //$NON-NLS-1$ //$NON-NLS-2$
- java2buzillaPlatformMap.put("ia64_32", "PC"); //$NON-NLS-1$ //$NON-NLS-2$
- java2buzillaPlatformMap.put("sparc", "Sun"); //$NON-NLS-1$ //$NON-NLS-2$
- java2buzillaPlatformMap.put("ppc", "Power PC"); // not Power! //$NON-NLS-1$ //$NON-NLS-2$
-
- }
-
- public static BugzillaCorePlugin getDefault() {
- return INSTANCE;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- INSTANCE = this;
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- if (!repositoryConfigurations.isEmpty()) {
- writeRepositoryConfigFile();
- }
-
- INSTANCE = null;
- super.stop(context);
- }
-
- static void setConnector(BugzillaRepositoryConnector theConnector) {
- connector = theConnector;
- }
-
- public static Map<String, RepositoryConfiguration> getConfigurations() {
- if (!cacheFileRead) {
- readRepositoryConfigurationFile();
- cacheFileRead = true;
- }
- return repositoryConfigurations;
- }
-
- public static void setConfigurationCacheFile(File file) {
- repositoryConfigurationFile = file;
- }
-
- /**
- * @since 2.1
- * @return cached repository configuration. If not already cached, null is returned.
- */
- public static RepositoryConfiguration getRepositoryConfiguration(String repositoryUrl) {
- if (!cacheFileRead) {
- readRepositoryConfigurationFile();
- cacheFileRead = true;
- }
- return repositoryConfigurations.get(repositoryUrl);
- }
-
- /**
- * Retrieves the latest repository configuration from the server
- */
- public static RepositoryConfiguration getRepositoryConfiguration(TaskRepository repository, boolean forceRefresh,
- IProgressMonitor monitor) throws CoreException {
- monitor = Policy.monitorFor(monitor);
- try {
- if (!cacheFileRead) {
- readRepositoryConfigurationFile();
- cacheFileRead = true;
- }
- if (repositoryConfigurations.get(repository.getRepositoryUrl()) == null || forceRefresh) {
- BugzillaClient client = connector.getClientManager().getClient(repository, monitor);
- RepositoryConfiguration config = client.getRepositoryConfiguration(monitor);
- if (config != null) {
- addRepositoryConfiguration(config);
- }
-
- }
- return repositoryConfigurations.get(repository.getRepositoryUrl());
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, 1,
- "Error retrieving task attributes from repository.\n\n" + e.getMessage(), e)); //$NON-NLS-1$
- }
- }
-
- /** public for testing */
- public static void addRepositoryConfiguration(RepositoryConfiguration config) {
- repositoryConfigurations.remove(config.getRepositoryUrl());
- repositoryConfigurations.put(config.getRepositoryUrl(), config);
- }
-
- // /**
- // * Returns the path to the file cacheing the product configuration.
- // */
- // private static IPath getProductConfigurationCachePath() {
- // IPath stateLocation =
- // Platform.getStateLocation(BugzillaPlugin.getDefault().getBundle());
- // IPath configFile = stateLocation.append("repositoryConfigurations");
- // return configFile;
- // }
-
- /** public for testing */
- public static void removeConfiguration(RepositoryConfiguration config) {
- repositoryConfigurations.remove(config.getRepositoryUrl());
- }
-
- /** public for testing */
- public static void readRepositoryConfigurationFile() {
- // IPath configFile = getProductConfigurationCachePath();
- if (repositoryConfigurationFile == null || !repositoryConfigurationFile.exists()) {
- return;
- }
- ObjectInputStream in = null;
- try {
- in = new ObjectInputStream(new FileInputStream(repositoryConfigurationFile));
- int size = in.readInt();
- for (int nX = 0; nX < size; nX++) {
- RepositoryConfiguration item = (RepositoryConfiguration) in.readObject();
- if (item != null) {
- repositoryConfigurations.put(item.getRepositoryUrl(), item);
- }
- }
- } catch (Exception e) {
- log(new Status(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN, ERROR_INCOMPATIBLE_CONFIGURATION));
- try {
- if (in != null) {
- in.close();
- }
- if (repositoryConfigurationFile != null && repositoryConfigurationFile.exists()) {
- if (repositoryConfigurationFile.delete()) {
- // successfully deleted
- } else {
- log(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, 0, ERROR_DELETING_CONFIGURATION, e));
- }
- }
-
- } catch (Exception ex) {
- log(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, 0, ERROR_DELETING_CONFIGURATION, e));
- }
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
- }
-
- /** public for testing */
- public static void writeRepositoryConfigFile() {
- // IPath configFile = getProductConfigurationCachePath();
- if (repositoryConfigurationFile != null) {
- ObjectOutputStream out = null;
- try {
- out = new ObjectOutputStream(new FileOutputStream(repositoryConfigurationFile));
- out.writeInt(repositoryConfigurations.size());
- for (String key : repositoryConfigurations.keySet()) {
- RepositoryConfiguration item = repositoryConfigurations.get(key);
- if (item != null) {
- out.writeObject(item);
- }
- }
- } catch (IOException e) {
- log(e);
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
- }
- }
-
- /**
- * Convenience method for logging statuses to the plugin log
- *
- * @param status
- * the status to log
- */
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
- /**
- * Convenience method for logging exceptions to the plugin log
- *
- * @param e
- * the exception to log
- */
- public static void log(Exception e) {
- String message = e.getMessage();
- if (e.getMessage() == null) {
- message = e.getClass().toString();
- }
- log(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, 0, message, e));
- }
-
- /**
- * Returns the path to the file caching bug reports created while offline.
- */
- protected IPath getCachedBugReportPath() {
- IPath stateLocation = Platform.getStateLocation(BugzillaCorePlugin.getDefault().getBundle());
- IPath bugFile = stateLocation.append("bugReports"); //$NON-NLS-1$
- return bugFile;
- }
-
- public void setPlatformDefaultsOrGuess(TaskRepository repository, TaskData newBugModel) {
-
- String platform = repository.getProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM);
- String os = repository.getProperty(IBugzillaConstants.BUGZILLA_DEF_OS);
-
- // set both or none
- if (null != os && null != platform) {
- TaskAttribute opSysAttribute = newBugModel.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey());
- TaskAttribute platformAttribute = newBugModel.getRoot().getAttribute(
- BugzillaAttribute.REP_PLATFORM.getKey());
-
- // TODO something can still go wrong when the allowed values on the repository change...
- opSysAttribute.setValue(os);
- platformAttribute.setValue(platform);
- return;
- }
- // fall through to old code
- setPlatformOptions(newBugModel);
- }
-
- public void setPlatformOptions(TaskData newBugModel) {
- try {
-
- // Get OS Lookup Map
- // Check that the result is in Values, if it is not, set it to other
- // Defaults to the first of each (sorted) list All, All
- TaskAttribute opSysAttribute = newBugModel.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey());
- TaskAttribute platformAttribute = newBugModel.getRoot().getAttribute(
- BugzillaAttribute.REP_PLATFORM.getKey());
-
- String OS = Platform.getOS();
- String platform = Platform.getOSArch();
-
- String bugzillaOS = null; // Bugzilla String for OS
- String bugzillaPlatform = null; // Bugzilla String for Platform
-/*
- AIX -> AIX
- Linux -> Linux
- HP-UX -> HP-UX
- Solaris -> Solaris
- MacOS X -> Mac OS X
- */
-
- bugzillaOS = System.getProperty("os.name") + " " + System.getProperty("os.version"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // We start with the most specific Value as the Search String.
- // If we didn't find it we remove the last part of the version String or the OS Name from
- // the Search String and continue with the test until we found it or the Search String is empty.
- //
- // The search in casesensitive.
- if (opSysAttribute != null) {
- while (bugzillaOS != null && opSysAttribute.getOption(bugzillaOS) == null) {
- int dotindex = bugzillaOS.lastIndexOf('.');
- if (dotindex > 0) {
- bugzillaOS = bugzillaOS.substring(0, dotindex);
- } else {
- int spaceindex = bugzillaOS.lastIndexOf(' ');
- if (spaceindex > 0) {
- bugzillaOS = bugzillaOS.substring(0, spaceindex);
- } else {
- bugzillaOS = null;
- }
- }
- }
- } else {
- bugzillaOS = null;
- }
-
- if (platform != null && java2buzillaPlatformMap.containsKey(platform)) {
- bugzillaPlatform = java2buzillaPlatformMap.get(platform);
- // Bugzilla knows the following Platforms [All, Macintosh, Other, PC, Power PC, Sun]
- // Platform.getOSArch() returns "x86" on Intel Mac's and "ppc" on Power Mac's
- // so bugzillaPlatform is "Power" or "PC".
- //
- // If the OS is "macosx" we change the Platform to "Macintosh"
- //
- if (bugzillaPlatform != null
- && (bugzillaPlatform.compareTo("Power") == 0 || bugzillaPlatform.compareTo("PC") == 0) //$NON-NLS-1$ //$NON-NLS-2$
- && OS != null && OS.compareTo("macosx") == 0) { //$NON-NLS-1$
- // TODO: this may not even be a legal value in another repository!
- bugzillaPlatform = "Macintosh"; //$NON-NLS-1$
- } else if (platformAttribute != null && platformAttribute.getOption(bugzillaPlatform) == null) {
- // If the platform we found is not int the list of available
- // optinos, set the
- // Bugzilla Platform to null, and juse use "other"
- bugzillaPlatform = null;
- }
- }
- // Set the OS and the Platform in the taskData
- if (bugzillaOS != null && opSysAttribute != null) {
- opSysAttribute.setValue(bugzillaOS);
- } else if (opSysAttribute != null && opSysAttribute.getOption(OPTION_ALL) != null) {
- opSysAttribute.setValue(OPTION_ALL);
- }
-
- if (bugzillaPlatform != null && platformAttribute != null) {
- platformAttribute.setValue(bugzillaPlatform);
- } else if (opSysAttribute != null && platformAttribute != null
- && platformAttribute.getOption(OPTION_ALL) != null) {
- opSysAttribute.setValue(OPTION_ALL);
- }
-
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, "could not set platform options", //$NON-NLS-1$
- e));
- }
- }
-
- public Set<BugzillaLanguageSettings> getLanguageSettings() {
- return BugzillaRepositoryConnector.getLanguageSettings();
- }
-
- public BugzillaLanguageSettings getLanguageSetting(String language) {
- return BugzillaRepositoryConnector.getLanguageSetting(language);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCustomField.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCustomField.java
deleted file mode 100644
index 62f4a2f2d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaCustomField.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Class describing a custom Fields for a given Bugzilla installation.
- *
- * @author Frank Becker
- * @since 2.3
- */
-public class BugzillaCustomField implements Serializable {
-
- // old version private static final long serialVersionUID = 5703683576871326128L;
- private static final long serialVersionUID = 7273310489883205486L;
-
- public static final String CUSTOM_FIELD_PREFIX = "cf_"; //$NON-NLS-1$
-
- private final String name;
-
- private final String description;
-
- private List<String> options = new ArrayList<String>();
-
- final private int type;
-
- final private String typeDesc;
-
- final private boolean enterBug;
-
- public BugzillaCustomField(String description, String name, String type, String typeDesc, String enterBug) {
- this.description = description;
- this.name = name;
-
- this.type = parseInt(type);
- this.typeDesc = typeDesc;
- this.enterBug = "1".equals(enterBug); //$NON-NLS-1$
- }
-
- private int parseInt(String type) {
- try {
- return Integer.parseInt(type);
- } catch (NumberFormatException e) {
- return -1;
- }
- }
-
- public String getName() {
- return name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public List<String> getOptions() {
- return options;
- }
-
- public void setOptions(List<String> options) {
- this.options = options;
- }
-
- public void addOption(String option) {
- this.options.add(option);
- }
-
- /*
- * @since 3.0.2
- */
- public int getType() {
- return type;
- }
-
- /*
- * @since 3.0.2
- */
- public String getTypeDesc() {
- return typeDesc;
- }
-
- /*
- * @since 3.0.2
- */
- public boolean isEnterBug() {
- return enterBug;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlag.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlag.java
deleted file mode 100644
index 0c6a09001..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlag.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaFlag implements Serializable {
-
-// old private static final long serialVersionUID = 4920551884607344418L;
- private static final long serialVersionUID = -3149026741475639885L;
-
- private final String name;
-
- private final String description;
-
- private final String type;
-
- private final boolean requestable;
-
- private final boolean specifically_requestable;
-
- private final boolean multiplicable;
-
- private final int flagId;
-
- private final Map<String, List<String>> used = new HashMap<String, List<String>>();
-
- public BugzillaFlag(String name, String description, String type, String requestable,
- String specifically_requestable, String multiplicable, int flagId) {
- this.description = description;
- this.name = name;
- this.type = type;
- this.flagId = flagId;
-
- if (multiplicable != null && !multiplicable.equals("")) { //$NON-NLS-1$
- this.multiplicable = multiplicable.equals("1"); //$NON-NLS-1$
- } else {
- this.multiplicable = false;
- }
-
- if (requestable != null && !requestable.equals("")) { //$NON-NLS-1$
- this.requestable = requestable.equals("1"); //$NON-NLS-1$
- } else {
- this.requestable = false;
- }
-
- if (specifically_requestable != null && !specifically_requestable.equals("")) { //$NON-NLS-1$
- this.specifically_requestable = specifically_requestable.equals("1"); //$NON-NLS-1$
- } else {
- this.specifically_requestable = false;
- }
- }
-
- public String getName() {
- return name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getType() {
- return type;
- }
-
- public boolean isRequestable() {
- return requestable;
- }
-
- public boolean isSpecifically_requestable() {
- return specifically_requestable;
- }
-
- public boolean isMultiplicable() {
- return multiplicable;
- }
-
- public int getFlagId() {
- return flagId;
- }
-
- public void addUsed(String product, String component) {
- List<String> componentList = used.get(product);
- if (componentList == null) {
- componentList = new ArrayList<String>();
- used.put(product, componentList);
- }
- if (!componentList.contains(component)) {
- componentList.add(component);
- }
- }
-
- public boolean isUsedIn(String product, String component) {
- List<String> componentList = used.get(product);
- if (componentList != null && componentList.contains(component)) {
- return true;
- }
- return false;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlagMapper.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlagMapper.java
deleted file mode 100644
index f50f5db10..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaFlagMapper.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMetaData;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Frank Becker
- * @since 3.1
- */
-public class BugzillaFlagMapper {
-
- private String requestee;
-
- private String setter;
-
- private String state;
-
- private String flagId;
-
- private int number;
-
- public String getRequestee() {
- return requestee;
- }
-
- public void setRequestee(String requestee) {
- this.requestee = requestee;
- }
-
- public String getSetter() {
- return setter;
- }
-
- public void setSetter(String setter) {
- this.setter = setter;
- }
-
- public String getState() {
- return state;
- }
-
- public void setState(String state) {
- this.state = state;
- }
-
- public String getFlagId() {
- return flagId;
- }
-
- public void setFlagId(String flagId) {
- this.flagId = flagId;
- }
-
- public int getNumber() {
- return number;
- }
-
- public void setNumber(int number) {
- this.number = number;
- }
-
- private String description;
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public void applyTo(TaskAttribute taskAttribute) {
- Assert.isNotNull(taskAttribute);
- TaskData taskData = taskAttribute.getTaskData();
- TaskAttributeMapper mapper = taskData.getAttributeMapper();
- TaskAttributeMetaData meta = taskAttribute.getMetaData().defaults();
- meta.setType(IBugzillaConstants.EDITOR_TYPE_FLAG);
- meta.setLabel(description);
- BugzillaVersion bugzillaVersion = null;
- RepositoryConfiguration repositoryConfiguration;
- try {
- repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(mapper.getTaskRepository(), false,
- new NullProgressMonitor());
- bugzillaVersion = repositoryConfiguration.getInstallVersion();
- } catch (CoreException e) {
- bugzillaVersion = BugzillaVersion.MIN_VERSION;
- }
-
- if (bugzillaVersion.compareTo(BugzillaVersion.BUGZILLA_3_2) >= 0) {
- meta.setKind(TaskAttribute.KIND_DEFAULT);
- }
- meta.setReadOnly(false);
-
- if (getNumber() != 0) {
- TaskAttribute child = taskAttribute.createMappedAttribute("number"); //$NON-NLS-1$
- child.getMetaData().defaults().setType(TaskAttribute.TYPE_INTEGER);
- mapper.setIntegerValue(child, getNumber());
- }
- if (getRequestee() != null) {
- TaskAttribute child = taskAttribute.createMappedAttribute("requestee"); //$NON-NLS-1$
- child.getMetaData().defaults().setType(TaskAttribute.TYPE_SHORT_TEXT);
- mapper.setValue(child, getRequestee());
- }
- if (getSetter() != null) {
- TaskAttribute child = taskAttribute.createMappedAttribute("setter"); //$NON-NLS-1$
- child.getMetaData().defaults().setType(TaskAttribute.TYPE_SHORT_TEXT);
- mapper.setValue(child, getSetter());
- }
- if (getState() != null) {
- TaskAttribute child = taskAttribute.createMappedAttribute("state"); //$NON-NLS-1$
- child.getMetaData().defaults().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- child.getMetaData().setLabel(flagId);
- child.getMetaData().setReadOnly(false);
- mapper.setValue(child, getState());
- taskAttribute.getMetaData().putValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID, "state"); //$NON-NLS-1$
-
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaLanguageSettings.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaLanguageSettings.java
deleted file mode 100644
index c0e6cd62d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaLanguageSettings.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core;
-
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Class describing the html response of Bugzilla requests which are used within Mylyn.
- *
- * Strings should be in the language which is the default for an Bugzilla instance.
- *
- * @author Frank Becker
- */
-
-public class BugzillaLanguageSettings {
- private String languageName = "<unknown>"; //$NON-NLS-1$
-
- public static final String COMMAND_ERROR_LOGIN = "error_login"; //$NON-NLS-1$
-
- public static final String COMMAND_ERROR_COLLISION = "error_collision"; //$NON-NLS-1$
-
- public static final String COMMAND_ERROR_COMMENT_REQUIRED = "error_comment_required"; //$NON-NLS-1$
-
- public static final String COMMAND_ERROR_LOGGED_OUT = "error_logged_out"; //$NON-NLS-1$
-
- public static final String COMMAND_BAD_LOGIN = "bad_login"; //$NON-NLS-1$
-
- public static final String COMMAND_PROCESSED = "processed"; //$NON-NLS-1$
-
- public static final String COMMAND_CHANGES_SUBMITTED = "changes_submitted"; //$NON-NLS-1$
-
- public static final String COMMAND_SUSPICIOUS_ACTION = "suspicious_action"; //$NON-NLS-1$
-
- public static final String COMMAND_BUG = "bug"; //$NON-NLS-1$
-
- public static final String COMMAND_SUBMITTED = "submitted"; //$NON-NLS-1$
-
- private final Map<String, List<String>> languageAttributes = new LinkedHashMap<String, List<String>>();
-
- public BugzillaLanguageSettings(String languageName) {
- super();
- this.languageName = languageName;
- }
-
- public String getLanguageName() {
- return languageName;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((languageName == null) ? 0 : languageName.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- BugzillaLanguageSettings other = (BugzillaLanguageSettings) obj;
- if (languageName == null) {
- if (other.languageName != null) {
- return false;
- }
- } else if (!languageName.equals(other.languageName)) {
- return false;
- }
- return true;
- }
-
- public void setLanguageName(String languageName) {
- this.languageName = languageName;
- }
-
- public void addLanguageAttribute(String command, String response) {
- List<String> commandList = languageAttributes.get(command);
- if (commandList == null) {
- commandList = new LinkedList<String>();
- languageAttributes.put(command.toLowerCase(), commandList);
- }
- commandList.add(response);
- }
-
- public List<String> getResponseForCommand(String command) {
- return languageAttributes.get(command);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaOperation.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaOperation.java
deleted file mode 100644
index a3e681d5d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaOperation.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Rob Elves
- * @since 3.0
- */
-public enum BugzillaOperation {
-
- none(Messages.BugzillaOperation_Leave_as_X_X),
-
- accept(Messages.BugzillaOperation_Accept_to_ASSIGNED),
-
- resolve(Messages.BugzillaOperation_Resolve_as, "resolutionInput", TaskAttribute.TYPE_SINGLE_SELECT), //$NON-NLS-1$
-
- duplicate(Messages.BugzillaOperation_Duplicate_of, "dup_id", TaskAttribute.TYPE_TASK_DEPENDENCY), //$NON-NLS-1$
-
- reassign(Messages.BugzillaOperation_Reassign_to, "reassignInput", TaskAttribute.TYPE_PERSON), //$NON-NLS-1$
-
- reassignbycomponent(Messages.BugzillaOperation_Reassign_to_default_assignee),
-
- reopen(Messages.BugzillaOperation_Reopen_bug),
-
- verify(Messages.BugzillaOperation_Mark_as_VERIFIED),
-
- close(Messages.BugzillaOperation_Mark_as_CLOSED);
-
- private final String label;
-
- private final String inputId;
-
- private final String inputType;
-
- BugzillaOperation(String label) {
- this(label, null, TaskAttribute.TYPE_SHORT_TEXT);
- }
-
- BugzillaOperation(String label, String inputId, String type) {
- this.label = label;
- this.inputId = inputId;
- this.inputType = type;
- }
-
- public String getLabel() {
- return label;
- }
-
- public String getInputId() {
- return inputId;
- }
-
- public String getInputType() {
- return inputType;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java
deleted file mode 100644
index 34a7d57ec..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java
+++ /dev/null
@@ -1,569 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.text.MessageFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-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.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskRelation;
-import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class BugzillaRepositoryConnector extends AbstractRepositoryConnector {
-
- private static final String BUG_ID = "&bug_id="; //$NON-NLS-1$
-
- private static final String CHANGED_BUGS_CGI_ENDDATE = "&chfieldto=Now"; //$NON-NLS-1$
-
- private static final String CHANGED_BUGS_CGI_QUERY = "/buglist.cgi?query_format=advanced&chfieldfrom="; //$NON-NLS-1$
-
- private static final String CLIENT_LABEL = Messages.BugzillaRepositoryConnector_BUGZILLA_SUPPORTS_2_18_TO_3_0;
-
- private static final String COMMENT_FORMAT = "yyyy-MM-dd HH:mm"; //$NON-NLS-1$
-
- private static final String DEADLINE_FORMAT = "yyyy-MM-dd"; //$NON-NLS-1$
-
- private final BugzillaTaskAttachmentHandler attachmentHandler = new BugzillaTaskAttachmentHandler(this);
-
- private final BugzillaTaskDataHandler taskDataHandler = new BugzillaTaskDataHandler(this);
-
- protected BugzillaClientManager clientManager;
-
- protected static BugzillaLanguageSettings enSetting;
-
- protected final static Set<BugzillaLanguageSettings> languages = new LinkedHashSet<BugzillaLanguageSettings>();
-
- @Override
- public String getLabel() {
- return CLIENT_LABEL;
- }
-
- @Override
- public AbstractTaskAttachmentHandler getTaskAttachmentHandler() {
- return attachmentHandler;
- }
-
- @Override
- public String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public void updateTaskFromTaskData(TaskRepository repository, ITask task, TaskData taskData) {
- TaskMapper scheme = getTaskMapping(taskData);
- scheme.applyTo(task);
-
- task.setUrl(BugzillaClient.getBugUrlWithoutLogin(repository.getRepositoryUrl(), taskData.getTaskId()));
-
- boolean isComplete = false;
- TaskAttribute attributeStatus = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- if (attributeStatus != null) {
- isComplete = attributeStatus.getValue().equals(IBugzillaConstants.VALUE_STATUS_RESOLVED)
- || attributeStatus.getValue().equals(IBugzillaConstants.VALUE_STATUS_CLOSED)
- || attributeStatus.getValue().equals(IBugzillaConstants.VALUE_STATUS_VERIFIED);
- }
-
- if (taskData.isPartial()) {
- if (isComplete) {
- if (task.getCompletionDate() == null) {
- task.setCompletionDate(new Date(0));
- }
- } else {
- if (task.getCompletionDate() != null) {
- task.setCompletionDate(null);
- }
- }
- } else {
- // Completion Date
- if (isComplete) {
- Date completionDate = null;
-
- List<TaskAttribute> taskComments = taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_COMMENT);
- if (taskComments != null && taskComments.size() > 0) {
- TaskAttribute lastComment = taskComments.get(taskComments.size() - 1);
- if (lastComment != null) {
- TaskAttribute attributeCommentDate = lastComment.getMappedAttribute(TaskAttribute.COMMENT_DATE);
- if (attributeCommentDate != null) {
- try {
- completionDate = new SimpleDateFormat(COMMENT_FORMAT).parse(attributeCommentDate.getValue());
- } catch (ParseException e) {
- // ignore
- }
- }
- }
- }
-
- if (completionDate == null) {
- // Use last modified date
- TaskAttribute attributeLastModified = taskData.getRoot().getMappedAttribute(
- TaskAttribute.DATE_MODIFICATION);
- if (attributeLastModified != null && attributeLastModified.getValue().length() > 0) {
- completionDate = taskData.getAttributeMapper().getDateValue(attributeLastModified);
- }
- }
-
- if (completionDate == null) {
- completionDate = new Date();
- }
-
- task.setCompletionDate(completionDate);
- } else {
- task.setCompletionDate(null);
- }
-
- // Bugzilla Specific Attributes
-
- // Product
- if (scheme.getProduct() != null) {
- task.setAttribute(TaskAttribute.PRODUCT, scheme.getProduct());
- }
-
- // Severity
- TaskAttribute attrSeverity = taskData.getRoot().getMappedAttribute(BugzillaAttribute.BUG_SEVERITY.getKey());
- if (attrSeverity != null && !attrSeverity.getValue().equals("")) { //$NON-NLS-1$
- task.setAttribute(BugzillaAttribute.BUG_SEVERITY.getKey(), attrSeverity.getValue());
- }
-
- // Due Date
- if (taskData.getRoot().getMappedAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()) != null) {
- Date dueDate = null;
- // HACK: if estimated_time field exists, time tracking is
- // enabled
- try {
- TaskAttribute attributeDeadline = taskData.getRoot().getMappedAttribute(
- BugzillaAttribute.DEADLINE.getKey());
- if (attributeDeadline != null) {
- dueDate = new SimpleDateFormat(DEADLINE_FORMAT).parse(attributeDeadline.getValue());
- }
- } catch (Exception e) {
- // ignore
- }
- task.setDueDate(dueDate);
- }
- }
-
- updateExtendedAttributes(task, taskData);
- }
-
- private void updateExtendedAttributes(ITask task, TaskData taskData) {
- // Set meta bugzilla task attribute values
- for (BugzillaAttribute bugzillaReportElement : BugzillaAttribute.EXTENDED_ATTRIBUTES) {
- TaskAttribute taskAttribute = taskData.getRoot().getAttribute(bugzillaReportElement.getKey());
- if (taskAttribute != null) {
- task.setAttribute(bugzillaReportElement.getKey(), taskAttribute.getValue());
- }
- }
- }
-
- @Override
- public void preSynchronization(ISynchronizationSession session, IProgressMonitor monitor) throws CoreException {
- TaskRepository repository = session.getTaskRepository();
- if (session.getTasks().isEmpty()) {
- return;
- }
-
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Messages.BugzillaRepositoryConnector_checking_for_changed_tasks, session.getTasks()
- .size());
-
- if (repository.getSynchronizationTimeStamp() == null) {
- for (ITask task : session.getTasks()) {
- session.markStale(task);
- }
- return;
- }
-
- String dateString = repository.getSynchronizationTimeStamp();
- if (dateString == null) {
- dateString = ""; //$NON-NLS-1$
- }
-
- String urlQueryBase = repository.getRepositoryUrl() + CHANGED_BUGS_CGI_QUERY
- + URLEncoder.encode(dateString, repository.getCharacterEncoding()) + CHANGED_BUGS_CGI_ENDDATE;
-
- String urlQueryString = urlQueryBase + BUG_ID;
-
- Set<ITask> changedTasks = new HashSet<ITask>();
- Iterator<ITask> itr = session.getTasks().iterator();
- int queryCounter = 0;
- Set<ITask> checking = new HashSet<ITask>();
- while (itr.hasNext()) {
- ITask task = itr.next();
- checking.add(task);
- queryCounter++;
- String newurlQueryString = URLEncoder.encode(task.getTaskId() + ",", repository.getCharacterEncoding()); //$NON-NLS-1$
- urlQueryString += newurlQueryString;
- if (queryCounter >= 1000) {
- queryForChanged(repository, changedTasks, urlQueryString, session, new SubProgressMonitor(monitor,
- queryCounter));
-
- queryCounter = 0;
- urlQueryString = urlQueryBase + BUG_ID;
- newurlQueryString = ""; //$NON-NLS-1$
- }
-
- if (!itr.hasNext() && queryCounter != 0) {
- queryForChanged(repository, changedTasks, urlQueryString, session, new SubProgressMonitor(monitor,
- queryCounter));
- }
- }
-
- for (ITask task : session.getTasks()) {
- if (changedTasks.contains(task)) {
- session.markStale(task);
- }
- }
-
- } catch (UnsupportedEncodingException e) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Repository configured with unsupported encoding: " + repository.getCharacterEncoding() //$NON-NLS-1$
- + "\n\n Unable to determine changed tasks.", e)); //$NON-NLS-1$
- } finally {
- monitor.done();
- }
- }
-
- /**
- * TODO: clean up use of BugzillaTaskDataCollector
- */
- private void queryForChanged(final TaskRepository repository, Set<ITask> changedTasks, String urlQueryString,
- ISynchronizationSession context, IProgressMonitor monitor) throws UnsupportedEncodingException,
- CoreException {
-
- HashMap<String, ITask> taskById = new HashMap<String, ITask>();
- for (ITask task : context.getTasks()) {
- taskById.put(task.getTaskId(), task);
- }
- final Set<TaskData> changedTaskData = new HashSet<TaskData>();
- TaskDataCollector collector = new TaskDataCollector() {
-
- @Override
- public void accept(TaskData taskData) {
- changedTaskData.add(taskData);
- }
- };
-
- // TODO: Decouple from internals
- IRepositoryQuery query = new RepositoryQuery(repository.getConnectorKind(), ""); //$NON-NLS-1$
- query.setSummary(Messages.BugzillaRepositoryConnector_Query_for_changed_tasks);
- query.setUrl(urlQueryString);
- performQuery(repository, query, collector, context, monitor);
-
- for (TaskData data : changedTaskData) {
- ITask changedTask = taskById.get(data.getTaskId());
- if (changedTask != null) {
- changedTasks.add(changedTask);
- }
- }
-
- }
-
- @Override
- public boolean canCreateTaskFromKey(TaskRepository repository) {
- return true;
- }
-
- @Override
- public boolean canCreateNewTask(TaskRepository repository) {
- return true;
- }
-
- @Override
- public IStatus performQuery(TaskRepository repository, final IRepositoryQuery query,
- TaskDataCollector resultCollector, ISynchronizationSession event, IProgressMonitor monitor) {
-
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Messages.BugzillaRepositoryConnector_running_query, IProgressMonitor.UNKNOWN);
- BugzillaClient client = getClientManager().getClient(repository, new SubProgressMonitor(monitor, 1));
- TaskAttributeMapper mapper = getTaskDataHandler().getAttributeMapper(repository);
- boolean hitsReceived = client.getSearchHits(query, resultCollector, mapper, monitor);
- if (!hitsReceived) {
- // XXX: HACK in case of ip change bugzilla can return 0 hits
- // due to invalid authorization token, forcing relogin fixes
- client.logout(monitor);
- client.getSearchHits(query, resultCollector, mapper, monitor);
- }
-
- return Status.OK_STATUS;
- } catch (UnrecognizedReponseException e) {
- return new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, IStatus.INFO,
- Messages.BugzillaRepositoryConnector_Unrecognized_response_from_server, e);
- } catch (IOException e) {
- return new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN, IStatus.ERROR, MessageFormat.format(
- Messages.BugzillaRepositoryConnector_Check_repository_configuration, e.getMessage()), e);
- } catch (CoreException e) {
- return e.getStatus();
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public String getRepositoryUrlFromTaskUrl(String url) {
- if (url == null) {
- return null;
- }
- int index = url.indexOf(IBugzillaConstants.URL_GET_SHOW_BUG);
- return index == -1 ? null : url.substring(0, index);
- }
-
- @Override
- public String getTaskIdFromTaskUrl(String url) {
- if (url == null) {
- return null;
- }
- int anchorIndex = url.lastIndexOf("#"); //$NON-NLS-1$
- String bugUrl = url;
- if (anchorIndex != -1) {
- bugUrl = url.substring(0, anchorIndex);
- }
-
- int index = bugUrl.indexOf(IBugzillaConstants.URL_GET_SHOW_BUG);
- return index == -1 ? null : bugUrl.substring(index + IBugzillaConstants.URL_GET_SHOW_BUG.length());
- }
-
- @Override
- public String getTaskUrl(String repositoryUrl, String taskId) {
- try {
- return BugzillaClient.getBugUrlWithoutLogin(repositoryUrl, taskId);
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Error constructing task url for " + repositoryUrl + " id:" + taskId, e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return null;
- }
-
- @Override
- public String getTaskIdPrefix() {
- return "bug"; //$NON-NLS-1$
- }
-
- public BugzillaClientManager getClientManager() {
- if (clientManager == null) {
- clientManager = new BugzillaClientManager();
- // TODO: Move this initialization elsewhere
- BugzillaCorePlugin.setConnector(this);
- enSetting = new BugzillaLanguageSettings(IBugzillaConstants.DEFAULT_LANG);
- enSetting.addLanguageAttribute("error_login", "Login"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("error_login", "log in"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("error_login", "check e-mail"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("error_login", "Invalid Username Or Password"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("error_collision", "Mid-air collision!"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("error_comment_required", "Comment Required"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("error_logged_out", "logged out"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bad_login", "Login"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bad_login", "log in"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bad_login", "check e-mail"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bad_login", "Invalid Username Or Password"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bad_login", "error"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("processed", "processed"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("changes_submitted", "Changes submitted"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("changes_submitted", "added to Bug"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bug", "Bug"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("bug", "Issue"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("submitted", "Submitted"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("submitted", "posted"); //$NON-NLS-1$ //$NON-NLS-2$
- enSetting.addLanguageAttribute("suspicious_action", "Suspicious action"); //$NON-NLS-1$ //$NON-NLS-2$
- languages.add(enSetting);
-
- }
- return clientManager;
- }
-
- @Override
- public void updateRepositoryConfiguration(TaskRepository repository, IProgressMonitor monitor) throws CoreException {
- if (repository != null) {
- BugzillaCorePlugin.getRepositoryConfiguration(repository, true, monitor);
- }
- }
-
- @Override
- public boolean isRepositoryConfigurationStale(TaskRepository repository, IProgressMonitor monitor)
- throws CoreException {
- if (super.isRepositoryConfigurationStale(repository, monitor)) {
- boolean result = true;
- BugzillaClient client = getClientManager().getClient(repository, monitor);
- if (client != null) {
- String timestamp = client.getConfigurationTimestamp(monitor);
- if (timestamp != null) {
- String oldTimestamp = repository.getProperty(IBugzillaConstants.PROPERTY_CONFIGTIMESTAMP);
- if (oldTimestamp != null) {
- result = !timestamp.equals(oldTimestamp);
- }
- repository.setProperty(IBugzillaConstants.PROPERTY_CONFIGTIMESTAMP, timestamp);
- }
- }
- return result;
- }
- return false;
- }
-
- public static void addLanguageSetting(BugzillaLanguageSettings language) {
- if (!languages.contains(language)) {
- BugzillaRepositoryConnector.languages.add(language);
- }
- }
-
- public static Set<BugzillaLanguageSettings> getLanguageSettings() {
- return languages;
- }
-
- /** returns default language if language not found */
- public static BugzillaLanguageSettings getLanguageSetting(String label) {
- for (BugzillaLanguageSettings language : getLanguageSettings()) {
- if (language.getLanguageName().equals(label)) {
- return language;
- }
- }
- return enSetting;
- }
-
- @Override
- public void postSynchronization(ISynchronizationSession event, IProgressMonitor monitor) throws CoreException {
- try {
- monitor.beginTask("", 1); //$NON-NLS-1$
- if (event.isFullSynchronization() && event.getStatus() == null) {
- event.getTaskRepository().setSynchronizationTimeStamp(getSynchronizationTimestamp(event));
- }
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public TaskData getTaskData(TaskRepository repository, String taskId, IProgressMonitor monitor)
- throws CoreException {
- return taskDataHandler.getTaskData(repository, taskId, monitor);
- }
-
- @Override
- public AbstractTaskDataHandler getTaskDataHandler() {
- return taskDataHandler;
- }
-
- @Override
- public boolean hasTaskChanged(TaskRepository taskRepository, ITask task, TaskData taskData) {
- if (taskData.isPartial() && task.getCreationDate() != null) {
- return false;
- }
-
- // Security token
- // Updated on the task upon each open (synch) to keep the most current token available for submission - bug#263318
- TaskAttribute attrSecurityToken = taskData.getRoot().getMappedAttribute(BugzillaAttribute.TOKEN.getKey());
- if (attrSecurityToken != null && !attrSecurityToken.getValue().equals("")) { //$NON-NLS-1$
- task.setAttribute(BugzillaAttribute.TOKEN.getKey(), attrSecurityToken.getValue());
- }
-
- String lastKnownMod = task.getAttribute(BugzillaAttribute.DELTA_TS.getKey());
- if (lastKnownMod != null) {
- TaskAttribute attrModification = taskData.getRoot().getMappedAttribute(TaskAttribute.DATE_MODIFICATION);
- if (attrModification != null) {
- return !lastKnownMod.equals(attrModification.getValue());
- }
-
- }
- return true;
- }
-
- @Override
- public Collection<TaskRelation> getTaskRelations(TaskData taskData) {
- List<TaskRelation> relations = new ArrayList<TaskRelation>();
- TaskAttribute attribute = taskData.getRoot().getAttribute(BugzillaAttribute.DEPENDSON.getKey());
- if (attribute != null && attribute.getValue().length() > 0) {
- for (String taskId : attribute.getValue().split(",")) { //$NON-NLS-1$
- relations.add(TaskRelation.subtask(taskId.trim()));
- }
- }
- return relations;
- }
-
- private String getSynchronizationTimestamp(ISynchronizationSession event) {
- Date mostRecent = new Date(0);
- String mostRecentTimeStamp = event.getTaskRepository().getSynchronizationTimeStamp();
- for (ITask task : event.getChangedTasks()) {
- Date taskModifiedDate = task.getModificationDate();
- if (taskModifiedDate != null && taskModifiedDate.after(mostRecent)) {
- mostRecent = taskModifiedDate;
- mostRecentTimeStamp = task.getAttribute(BugzillaAttribute.DELTA_TS.getKey());
- }
- }
- return mostRecentTimeStamp;
- }
-
- @Override
- public boolean hasRepositoryDueDate(TaskRepository taskRepository, ITask task, TaskData taskData) {
- return taskData.getRoot().getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()) != null;
- }
-
- @Override
- public TaskMapper getTaskMapping(final TaskData taskData) {
- return new TaskMapper(taskData) {
- @Override
- public String getTaskKey() {
- TaskAttribute attribute = getTaskData().getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey());
- if (attribute != null) {
- return attribute.getValue();
- }
- return super.getTaskKey();
- }
-
- @Override
- public String getTaskKind() {
- return taskData.getConnectorKind();
- }
-
- @Override
- public String getTaskUrl() {
- return taskData.getRepositoryUrl();
- }
- };
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaStatus.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaStatus.java
deleted file mode 100644
index 562b2cdba..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaStatus.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaStatus extends Status {
-
- private final String errorMessage;
-
- private String repositoryUrl = ""; //$NON-NLS-1$
-
- public BugzillaStatus(int severity, String pluginId, int code) {
- super(severity, pluginId, code, "MylynStatus", null); //$NON-NLS-1$
- this.errorMessage = null;
- }
-
- public BugzillaStatus(int severity, String pluginId, int code, String errorMessage) {
- super(severity, pluginId, code, "MylynStatus", null); //$NON-NLS-1$
- this.errorMessage = errorMessage;
- }
-
- public BugzillaStatus(int severity, String pluginId, int code, String repositoryUrl, Throwable e) {
- super(severity, pluginId, code, "MylynStatus", e); //$NON-NLS-1$
- this.repositoryUrl = repositoryUrl;
- this.errorMessage = e.getMessage();
- }
-
- public BugzillaStatus(int severity, String pluginId, int code, String repositoryUrl, String errorMessage) {
- super(severity, pluginId, code, "MylynStatus", null); //$NON-NLS-1$
- this.errorMessage = errorMessage;
- this.repositoryUrl = repositoryUrl;
- }
-
- public BugzillaStatus(int severity, String pluginId, int code, String repositoryUrl, String errorMessage,
- Throwable e) {
- super(severity, pluginId, code, "MylynStatus", e); //$NON-NLS-1$
- this.errorMessage = errorMessage;
- this.repositoryUrl = repositoryUrl;
- }
-
- /**
- * Returns the message that is relevant to the code of this status.
- */
- @Override
- public String getMessage() {
-
- switch (getCode()) {
- case RepositoryStatus.ERROR_REPOSITORY_LOGIN:
- return NLS.bind(Messages.BugzillaStatus_repositoryLoginFailure, this.getRepositoryUrl(), this.errorMessage);
- case RepositoryStatus.ERROR_REPOSITORY_NOT_FOUND:
- return NLS.bind(Messages.BugzillaStatus_repositoryNotFound, this.errorMessage);
- case RepositoryStatus.ERROR_REPOSITORY:
- return NLS.bind(Messages.BugzillaStatus_errorRepository, this.getRepositoryUrl(), this.errorMessage);
- case RepositoryStatus.ERROR_IO:
- String string1 = "Unknown IO error occurred"; //$NON-NLS-1$
- String string2 = "No message provided"; //$NON-NLS-1$
- if (getException() != null) {
- string1 = getException().getClass().getSimpleName();
- string2 = getException().getMessage();
- }
- Object[] strings = { getRepositoryUrl(), string1, string2 };
- return NLS.bind(Messages.BugzillaStatus_errorIo, strings);
- case RepositoryStatus.ERROR_INTERNAL:
- return NLS.bind(Messages.BugzillaStatus_errorInternal, this.errorMessage);
- case RepositoryStatus.OPERATION_CANCELLED:
- return NLS.bind(Messages.BugzillaStatus_operationCancelled, this.errorMessage);
- case RepositoryStatus.REPOSITORY_COLLISION:
- return NLS.bind(Messages.BugzillaStatus_repositoryCollision, this.errorMessage);
- case RepositoryStatus.REPOSITORY_COMMENT_REQUIRED:
- if (errorMessage == null) {
- return Messages.BugzillaStatus_repositoryCommentRequired;
- } else {
- return errorMessage;
- }
- }
- if (errorMessage != null) {
- return errorMessage;
- } else if (getException() != null) {
- String message = getException().getMessage();
- if (message != null) {
- return message;
- } else {
- return getException().toString();
- }
- }
- return "Unknown"; //$NON-NLS-1$
- }
-
- public String getRepositoryUrl() {
- return repositoryUrl;
- }
-
- public void setRepositoryUrl(String repositoryUrl) {
- this.repositoryUrl = repositoryUrl;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskAttachmentHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskAttachmentHandler.java
deleted file mode 100644
index 8c18538b2..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskAttachmentHandler.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-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.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Rob Elves
- * @since 3.0
- */
-public class BugzillaTaskAttachmentHandler extends AbstractTaskAttachmentHandler {
-
- private final BugzillaRepositoryConnector connector;
-
- public BugzillaTaskAttachmentHandler(BugzillaRepositoryConnector connector) {
- this.connector = connector;
- }
-
- @Override
- public boolean canGetContent(TaskRepository repository, ITask task) {
- // ignore
- return true;
- }
-
- @Override
- public boolean canPostContent(TaskRepository repository, ITask task) {
- // ignore
- return true;
- }
-
- @Override
- public InputStream getContent(TaskRepository repository, ITask task, TaskAttribute attachmentAttribute,
- IProgressMonitor monitor) throws CoreException {
- try {
- monitor.beginTask(Messages.BugzillaTaskAttachmentHandler_Getting_attachment, IProgressMonitor.UNKNOWN);
- TaskAttachmentMapper attachment = TaskAttachmentMapper.createFrom(attachmentAttribute);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- downloadAttachment(repository, task, attachment.getAttachmentId(), out, monitor);
- return new ByteArrayInputStream(out.toByteArray());
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public void postContent(TaskRepository repository, ITask task, AbstractTaskAttachmentSource source, String comment,
- TaskAttribute attachmentAttribute, IProgressMonitor monitor) throws CoreException {
- try {
- monitor.beginTask(Messages.BugzillaTaskAttachmentHandler_Sending_attachment, IProgressMonitor.UNKNOWN);
- BugzillaClient client = connector.getClientManager().getClient(repository,
- new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
-
- client.postAttachment(task.getTaskId(), comment, source, attachmentAttribute, monitor);
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- Messages.BugzillaTaskAttachmentHandler_unable_to_submit_attachment, e));
- } finally {
- monitor.done();
- }
-
- }
-
- private void downloadAttachment(TaskRepository repository, ITask task, String attachmentId, OutputStream out,
- IProgressMonitor monitor) throws CoreException {
- BugzillaClient client;
- try {
- client = connector.getClientManager().getClient(repository,
- new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
- client.getAttachmentData(attachmentId, out, monitor);
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Unable to retrieve attachment", e)); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java
deleted file mode 100644
index a4369e81a..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java
+++ /dev/null
@@ -1,648 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-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.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class BugzillaTaskDataHandler extends AbstractTaskDataHandler {
-
- private enum TaskDataVersion {
-
- VERSION_0(0f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- // ignore
- }
- },
-
- VERSION_1_0(1.0f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- // 1: the value was stored in the attribute rather than the key
- for (TaskAttribute attribute : new ArrayList<TaskAttribute>(data.getRoot().getAttributes().values())) {
- if (attribute.getId().equals(BugzillaAttribute.DESC.getKey())) {
- TaskAttribute attrLongDesc = createAttribute(data, BugzillaAttribute.LONG_DESC);
- attrLongDesc.setValue(attribute.getValue());
- data.getRoot().removeAttribute(BugzillaAttribute.DESC.getKey());
- }
- }
- // Old actions not saved so recreate them upon migration
- // delete legacy operations:
- Set<TaskAttribute> operationsToRemove = new HashSet<TaskAttribute>();
- for (TaskAttribute attribute : data.getAttributeMapper().getAttributesByType(data,
- TaskAttribute.TYPE_OPERATION)) {
- operationsToRemove.add(attribute);
- }
- for (TaskAttribute taskAttribute : operationsToRemove) {
- data.getRoot().removeAttribute(taskAttribute.getId());
- }
- RepositoryConfiguration configuration = BugzillaCorePlugin.getRepositoryConfiguration(repository.getRepositoryUrl());
- if (configuration != null) {
- configuration.addValidOperations(data);
- }
- }
- },
- VERSION_2_0(2.0f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- updateAttribute(data, BugzillaAttribute.LONG_DESC);
- }
- },
- VERSION_3_0(3.0f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- updateAttribute(data, BugzillaAttribute.NEW_COMMENT);
- }
- },
- VERSION_4_0(4.0f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- updateAttribute(data, BugzillaAttribute.DEADLINE);
- updateAttribute(data, BugzillaAttribute.ACTUAL_TIME);
- }
- },
- VERSION_4_1(4.1f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- updateAttribute(data, BugzillaAttribute.VOTES);
- TaskAttribute attrDeadline = data.getRoot().getMappedAttribute(BugzillaAttribute.VOTES.getKey());
- if (attrDeadline != null) {
- attrDeadline.getMetaData().setType(BugzillaAttribute.VOTES.getType());
- }
- }
- },
- VERSION_4_2(4.2f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- updateAttribute(data, BugzillaAttribute.CC);
- updateAttribute(data, BugzillaAttribute.DEPENDSON);
- updateAttribute(data, BugzillaAttribute.BLOCKED);
- updateAttribute(data, BugzillaAttribute.BUG_FILE_LOC);
- updateAttribute(data, BugzillaAttribute.KEYWORDS);
- updateAttribute(data, BugzillaAttribute.STATUS_WHITEBOARD);
- updateAttribute(data, BugzillaAttribute.QA_CONTACT);
- updateAttribute(data, BugzillaAttribute.NEWCC);
- }
- },
- VERSION_4_3(4.3f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- // migrate custom attributes
- for (TaskAttribute attribute : data.getRoot().getAttributes().values()) {
- if (attribute.getId().startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- attribute.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
- attribute.getMetaData().setReadOnly(false);
- if (attribute.getOptions().size() > 0) {
- attribute.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- } else {
- attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- }
- }
- }
- }
- },
- VERSION_4_4(4.4f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- // summary didn't have spell checking, update to short rich text
- updateAttribute(data, BugzillaAttribute.SHORT_DESC);
- }
- },
- VERSION_4_5(4.5f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- // migrate custom attributes
- RepositoryConfiguration configuration = BugzillaCorePlugin.getRepositoryConfiguration(repository.getRepositoryUrl());
-
- if (configuration == null) {
- return;
- }
-
- for (TaskAttribute attribute : data.getRoot().getAttributes().values()) {
- if (attribute.getId().startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
-
- BugzillaCustomField customField = null;
- String actName = attribute.getId();
- for (BugzillaCustomField bugzillaCustomField : configuration.getCustomFields()) {
- if (actName.equals(bugzillaCustomField.getName())) {
- customField = bugzillaCustomField;
- break;
- }
- }
- if (customField != null) {
- String desc = customField.getDescription();
- attribute.getMetaData().defaults().setLabel(desc).setReadOnly(false);
- attribute.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
- attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- switch (customField.getType()) {
- case 1: // Free Text
- attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- break;
- case 2: // Drop Down
- attribute.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- break;
- case 3: // Multiple-Selection Box
- attribute.getMetaData().setType(TaskAttribute.TYPE_MULTI_SELECT);
- break;
- case 4: // Large Text Box
- attribute.getMetaData().setType(TaskAttribute.TYPE_LONG_TEXT);
- break;
- case 5: // Date/Time
- attribute.getMetaData().setType(TaskAttribute.TYPE_DATETIME);
- break;
-
- default:
- List<String> options = customField.getOptions();
- if (options.size() > 0) {
- attribute.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- } else {
- attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- }
- }
- attribute.getMetaData().setReadOnly(false);
- }
- }
- }
- }
- },
- VERSION_CURRENT(4.6f) {
- @Override
- void migrate(TaskRepository repository, TaskData data) {
- data.setVersion(TaskDataVersion.VERSION_CURRENT.toString());
- }
- };
-
- private float versionNumber = 0;
-
- TaskDataVersion(float verNum) {
- versionNumber = verNum;
- }
-
- public float getVersionNum() {
- return versionNumber;
- }
-
- abstract void migrate(TaskRepository repository, TaskData data);
-
- @Override
- public String toString() {
- return "" + getVersionNum(); //$NON-NLS-1$
- }
-
- private static void updateAttribute(TaskData data, BugzillaAttribute bugAttribute) {
- TaskAttribute attribute = data.getRoot().getMappedAttribute(bugAttribute.getKey());
- if (attribute != null) {
- attribute.getMetaData().setType(bugAttribute.getType());
- attribute.getMetaData().setReadOnly(bugAttribute.isReadOnly());
- attribute.getMetaData().setKind(bugAttribute.getKind());
- }
- }
- }
-
- private final BugzillaRepositoryConnector connector;
-
- public BugzillaTaskDataHandler(BugzillaRepositoryConnector connector) {
- this.connector = connector;
- }
-
- public TaskData getTaskData(TaskRepository repository, String taskId, IProgressMonitor monitor)
- throws CoreException {
-
- Set<String> taskIds = new HashSet<String>();
- taskIds.add(taskId);
- final TaskData[] retrievedData = new TaskData[1];
- TaskDataCollector collector = new TaskDataCollector() {
-
- @Override
- public void accept(TaskData taskData) {
- retrievedData[0] = taskData;
- }
- };
- getMultiTaskData(repository, taskIds, collector, monitor);
-
- if (retrievedData[0] == null) {
- throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- "Task data could not be retrieved. Please re-synchronize task")); //$NON-NLS-1$
- }
- return retrievedData[0];
-
-// monitor = Policy.monitorFor(monitor);
-// try {
-// monitor.beginTask("Receiving task", IProgressMonitor.UNKNOWN);
-// BugzillaClient client = connector.getClientManager().getClient(repository, monitor);
-// int bugId = BugzillaRepositoryConnector.getBugId(taskId);
-// TaskData taskData = client.getTaskData(bugId, getAttributeMapper(repository), monitor);
-// if (taskData == null) {
-// throw new CoreException(new Status(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
-// "Task data could not be retrieved. Please re-synchronize task"));
-// }
-// return taskData;
-// } catch (IOException e) {
-// throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
-// RepositoryStatus.ERROR_IO, repository.getRepositoryUrl(), e));
-// } finally {
-// monitor.done();
-// }
- }
-
- @Override
- public void getMultiTaskData(final TaskRepository repository, Set<String> taskIds,
- final TaskDataCollector collector, IProgressMonitor monitor) throws CoreException {
-
- monitor = Policy.monitorFor(monitor);
-
- try {
- monitor.beginTask(Messages.BugzillaTaskDataHandler_Receiving_tasks, taskIds.size());
- BugzillaClient client = connector.getClientManager().getClient(repository, monitor);
- final CoreException[] collectionException = new CoreException[1];
-
- class CollectorWrapper extends TaskDataCollector {
-
- private final IProgressMonitor monitor2;
-
- private final TaskDataCollector collector;
-
- public CollectorWrapper(TaskDataCollector collector, IProgressMonitor monitor2) {
- this.collector = collector;
- this.monitor2 = monitor2;
- }
-
- @Override
- public void accept(TaskData taskData) {
- try {
- initializeTaskData(repository, taskData, null, new SubProgressMonitor(monitor2, 1));
- } catch (CoreException e) {
- if (collectionException[0] == null) {
- collectionException[0] = e;
- }
- }
- collector.accept(taskData);
- monitor2.worked(1);
- }
- }
-
- TaskDataCollector collector2 = new CollectorWrapper(collector, monitor);
-
- client.getTaskData(taskIds, collector2, getAttributeMapper(repository), monitor);
-
- if (collectionException[0] != null) {
- throw collectionException[0];
- }
- } catch (IOException e) {
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repository.getRepositoryUrl(), e));
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public void migrateTaskData(TaskRepository taskRepository, TaskData taskData) {
-
- float bugzillaTaskDataVersion = 0;
- {
- String taskDataVersion = taskData.getVersion();
- if (taskDataVersion != null) {
- try {
- bugzillaTaskDataVersion = Float.parseFloat(taskDataVersion);
- } catch (NumberFormatException e) {
- bugzillaTaskDataVersion = 0;
- }
- }
- }
-
- for (TaskDataVersion version : TaskDataVersion.values()) {
- if (bugzillaTaskDataVersion <= version.getVersionNum()) {
- version.migrate(taskRepository, taskData);
- }
- }
- }
-
- @Override
- public RepositoryResponse postTaskData(TaskRepository repository, TaskData taskData,
- Set<TaskAttribute> changedAttributes, IProgressMonitor monitor) throws CoreException {
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Messages.BugzillaTaskDataHandler_Submitting_task, IProgressMonitor.UNKNOWN);
- BugzillaClient client = connector.getClientManager().getClient(repository, monitor);
- try {
- return client.postTaskData(taskData, monitor);
- } catch (CoreException e) {
- // TODO: Move retry handling into client
- if (e.getStatus().getCode() == RepositoryStatus.ERROR_REPOSITORY_LOGIN) {
- return client.postTaskData(taskData, monitor);
- } else if (e.getStatus().getCode() == IBugzillaConstants.REPOSITORY_STATUS_SUSPICIOUS_ACTION) {
- taskData.getRoot().removeAttribute(BugzillaAttribute.TOKEN.getKey());
- return client.postTaskData(taskData, monitor);
- } else {
- throw e;
- }
- }
- } catch (IOException e) {
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repository.getRepositoryUrl(), e));
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public boolean initializeTaskData(TaskRepository repository, TaskData taskData, ITaskMapping initializationData,
- IProgressMonitor monitor) throws CoreException {
-
- // Note: setting current version to latest assumes the data arriving here is either for a new task or is
- // fresh from the repository (not locally stored data that may not have been migrated).
- taskData.setVersion(TaskDataVersion.VERSION_CURRENT.toString());
-
- RepositoryConfiguration repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(repository,
- false, monitor);
-
- if (repositoryConfiguration == null) {
- return false;
- }
-
- if (taskData.isNew()) {
- String product = null;
- String component = null;
- if (initializationData == null || initializationData.getProduct() == null) {
- if (repositoryConfiguration.getProducts().size() > 0) {
- product = repositoryConfiguration.getProducts().get(0);
- }
- } else {
- product = initializationData.getProduct();
- }
-
- if (product == null) {
- return false;
- }
-
- if (initializationData != null && initializationData.getComponent() != null
- && initializationData.getComponent().length() > 0) {
- component = initializationData.getComponent();
- }
-
- if (component == null && repositoryConfiguration.getComponents(product).size() > 0) {
- component = repositoryConfiguration.getComponents(product).get(0);
- }
-
- initializeNewTaskDataAttributes(repositoryConfiguration, taskData, product, component, monitor);
- BugzillaCorePlugin.getDefault().setPlatformDefaultsOrGuess(repository, taskData);
- return true;
-
- } else {
- repositoryConfiguration.configureTaskData(taskData);
- }
- return true;
- }
-
- /**
- * Only new, unsubmitted task data or freshly received task data from the repository can be passed in here.
- *
- * @param component
- */
- private boolean initializeNewTaskDataAttributes(RepositoryConfiguration repositoryConfiguration, TaskData taskData,
- String product, String component, IProgressMonitor monitor) {
-
- TaskAttribute productAttribute = createAttribute(taskData, BugzillaAttribute.PRODUCT);
- productAttribute.setValue(product);
-
- List<String> optionValues = repositoryConfiguration.getProducts();
- Collections.sort(optionValues);
- for (String optionValue : optionValues) {
- productAttribute.putOption(optionValue, optionValue);
- }
-
- TaskAttribute attributeStatus = createAttribute(taskData, BugzillaAttribute.BUG_STATUS);
- optionValues = repositoryConfiguration.getStatusValues();
- for (String option : optionValues) {
- attributeStatus.putOption(option, option);
- }
-
- attributeStatus.setValue(IBugzillaConstants.VALUE_STATUS_NEW);
-
- createAttribute(taskData, BugzillaAttribute.SHORT_DESC);
-
- TaskAttribute attributeVersion = createAttribute(taskData, BugzillaAttribute.VERSION);
- optionValues = repositoryConfiguration.getVersions(productAttribute.getValue());
- Collections.sort(optionValues);
- for (String option : optionValues) {
- attributeVersion.putOption(option, option);
- }
- if (optionValues.size() > 0) {
- attributeVersion.setValue(optionValues.get(optionValues.size() - 1));
- }
-
- TaskAttribute attributeComponent = createAttribute(taskData, BugzillaAttribute.COMPONENT);
- optionValues = repositoryConfiguration.getComponents(productAttribute.getValue());
- Collections.sort(optionValues);
- for (String option : optionValues) {
- attributeComponent.putOption(option, option);
- }
- if (optionValues.size() == 1) {
- attributeComponent.setValue(optionValues.get(0));
- }
- if (component != null && optionValues.contains(component)) {
- attributeComponent.setValue(component);
- }
-
- optionValues = repositoryConfiguration.getTargetMilestones(productAttribute.getValue());
- if (optionValues.size() > 0) {
- TaskAttribute attributeTargetMilestone = createAttribute(taskData, BugzillaAttribute.TARGET_MILESTONE);
- Collections.sort(optionValues);
- for (String option : optionValues) {
- attributeTargetMilestone.putOption(option, option);
- }
- attributeTargetMilestone.setValue(optionValues.get(0));
- }
-
- TaskAttribute attributePlatform = createAttribute(taskData, BugzillaAttribute.REP_PLATFORM);
- optionValues = repositoryConfiguration.getPlatforms();
- for (String option : optionValues) {
- attributePlatform.putOption(option, option);
- }
- if (optionValues.size() > 0) {
- // bug 159397 choose first platform: All
- attributePlatform.setValue(optionValues.get(0));
- }
-
- TaskAttribute attributeOPSYS = createAttribute(taskData, BugzillaAttribute.OP_SYS);
- optionValues = repositoryConfiguration.getOSs();
- for (String option : optionValues) {
- attributeOPSYS.putOption(option, option);
- }
- if (optionValues.size() > 0) {
- // bug 159397 change to choose first op_sys All
- attributeOPSYS.setValue(optionValues.get(0));
- }
-
- TaskAttribute attributePriority = createAttribute(taskData, BugzillaAttribute.PRIORITY);
- optionValues = repositoryConfiguration.getPriorities();
- for (String option : optionValues) {
- attributePriority.putOption(option, option);
- }
- if (optionValues.size() > 0) {
- // choose middle priority
- attributePriority.setValue(optionValues.get((optionValues.size() / 2)));
- }
-
- TaskAttribute attributeSeverity = createAttribute(taskData, BugzillaAttribute.BUG_SEVERITY);
- optionValues = repositoryConfiguration.getSeverities();
- for (String option : optionValues) {
- attributeSeverity.putOption(option, option);
- }
- if (optionValues.size() > 0) {
- // choose middle severity
- attributeSeverity.setValue(optionValues.get((optionValues.size() / 2)));
- }
-
- TaskAttribute attributeAssignedTo = createAttribute(taskData, BugzillaAttribute.ASSIGNED_TO);
- attributeAssignedTo.setValue(""); //$NON-NLS-1$
-
- TaskAttribute attributeQAContact = createAttribute(taskData, BugzillaAttribute.QA_CONTACT);
- attributeQAContact.setValue(""); //$NON-NLS-1$
-
- TaskAttribute attributeBugFileLoc = createAttribute(taskData, BugzillaAttribute.BUG_FILE_LOC);
- attributeBugFileLoc.setValue("http://"); //$NON-NLS-1$
-
- createAttribute(taskData, BugzillaAttribute.DEPENDSON);
- createAttribute(taskData, BugzillaAttribute.BLOCKED);
- createAttribute(taskData, BugzillaAttribute.NEWCC);
- createAttribute(taskData, BugzillaAttribute.LONG_DESC);
-
- List<String> keywords = repositoryConfiguration.getKeywords();
- if (keywords.size() > 0) {
- createAttribute(taskData, BugzillaAttribute.KEYWORDS);
- }
-
- TaskAttribute attrDescription = taskData.getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION);
- if (attrDescription != null) {
- attrDescription.getMetaData().setReadOnly(false);
- }
- TaskAttribute attrOwner = taskData.getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED);
- if (attrOwner != null) {
- attrOwner.getMetaData().setReadOnly(false);
- }
- TaskAttribute attrAddSelfToCc = taskData.getRoot().getMappedAttribute(TaskAttribute.ADD_SELF_CC);
- if (attrAddSelfToCc != null) {
- attrAddSelfToCc.getMetaData().setKind(null);
- }
-
- return true;
- }
-
- @Override
- public boolean canGetMultiTaskData(TaskRepository taskRepository) {
- return true;
- }
-
- @Override
- public boolean canInitializeSubTaskData(TaskRepository taskRepository, ITask task) {
- return true;
- }
-
- @Override
- public boolean initializeSubTaskData(TaskRepository repository, TaskData subTaskData, TaskData parentTaskData,
- IProgressMonitor monitor) throws CoreException {
- TaskMapper mapper = new TaskMapper(parentTaskData);
- initializeTaskData(repository, subTaskData, mapper, monitor);
- new TaskMapper(subTaskData).merge(mapper);
- subTaskData.getRoot().getMappedAttribute(BugzillaAttribute.DEPENDSON.getKey()).setValue(""); //$NON-NLS-1$
- subTaskData.getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION).setValue(""); //$NON-NLS-1$
- subTaskData.getRoot().getMappedAttribute(TaskAttribute.SUMMARY).setValue(""); //$NON-NLS-1$
- subTaskData.getRoot().getMappedAttribute(TaskAttribute.KEYWORDS).setValue(""); //$NON-NLS-1$
- subTaskData.getRoot().getAttribute(BugzillaAttribute.BLOCKED.getKey()).setValue(parentTaskData.getTaskId());
- TaskAttribute parentAttributeAssigned = parentTaskData.getRoot()
- .getMappedAttribute(TaskAttribute.USER_ASSIGNED);
- subTaskData.getRoot().getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey()).setValue(
- parentAttributeAssigned.getValue());
- return true;
- }
-
- @Override
- public TaskAttributeMapper getAttributeMapper(TaskRepository taskRepository) {
- return new BugzillaAttributeMapper(taskRepository);
- }
-
- public static TaskAttribute createAttribute(TaskData data, BugzillaAttribute key) {
- return createAttribute(data.getRoot(), key);
- }
-
- public static TaskAttribute createAttribute(TaskAttribute parent, BugzillaAttribute key) {
- TaskAttribute attribute = parent.createAttribute(key.getKey());
- attribute.getMetaData()
- .defaults()
- .setReadOnly(key.isReadOnly())
- .setKind(key.getKind())
- .setLabel(key.toString())
- .setType(key.getType());
- return attribute;
- }
-
- public void postUpdateAttachment(TaskRepository repository, TaskAttribute taskAttribute, String action,
- IProgressMonitor monitor) throws CoreException {
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Messages.BugzillaTaskDataHandler_updating_attachment, IProgressMonitor.UNKNOWN);
- BugzillaClient client = connector.getClientManager().getClient(repository, monitor);
- try {
- client.postUpdateAttachment(taskAttribute, action, monitor);
- } catch (CoreException e) {
- // TODO: Move retry handling into client
- if (e.getStatus().getCode() == RepositoryStatus.ERROR_REPOSITORY_LOGIN) {
- AuthenticationCredentials creds = repository.getCredentials(AuthenticationType.REPOSITORY);
- if (creds != null && creds.getUserName() != null && creds.getUserName().length() > 0) {
- client.postUpdateAttachment(taskAttribute, action, monitor);
- } else {
- throw e;
- }
- } else {
- throw e;
- }
- }
- } catch (IOException e) {
- throw new CoreException(new BugzillaStatus(IStatus.ERROR, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, repository.getRepositoryUrl(), e));
- } finally {
- monitor.done();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaVersion.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaVersion.java
deleted file mode 100644
index dc0bd27aa..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaVersion.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.Serializable;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaVersion implements Comparable<BugzillaVersion>, Serializable {
-
- private static final long serialVersionUID = 2027987556171301044L;
-
- public final static BugzillaVersion MIN_VERSION = new BugzillaVersion("2.18"); //$NON-NLS-1$
-
- public final static BugzillaVersion BUGZILLA_2_18 = new BugzillaVersion("2.18"); //$NON-NLS-1$
-
- public final static BugzillaVersion BUGZILLA_3_0 = new BugzillaVersion("3.0"); //$NON-NLS-1$
-
- public final static BugzillaVersion BUGZILLA_3_2 = new BugzillaVersion("3.2"); //$NON-NLS-1$
-
- public final static BugzillaVersion MAX_VERSION = new BugzillaVersion("3.2"); //$NON-NLS-1$
-
- private final int major;
-
- private final int minor;
-
- private int micro;
-
- private final boolean rc;
-
- public BugzillaVersion(String version) {
- String[] segments;
- if (version == null) {
- segments = new String[0];
- rc = false;
- } else {
- rc = version.contains("RC"); //$NON-NLS-1$
- segments = rc ? version.split("(\\.|([R][C]))") : version.split("\\."); //$NON-NLS-1$ //$NON-NLS-2$
- }
- major = segments.length > 0 ? parse(segments[0]) : 0;
- minor = segments.length > 1 ? parse(segments[1]) : 0;
- micro = segments.length > 2 ? parse(segments[2]) : 0;
- if (rc) {
- micro -= 100;
- }
- }
-
- private int parse(String segment) {
- try {
- return segment.length() == 0 ? 0 : Integer.parseInt(getVersion(segment));
- } catch (NumberFormatException ex) {
- return 0;
- }
- }
-
- private String getVersion(String segment) {
- int n = segment.indexOf('-');
- return n == -1 ? segment : segment.substring(0, n);
- }
-
- public boolean isSmallerOrEquals(BugzillaVersion v) {
- return compareTo(v) <= 0;
- }
-
- public int compareTo(BugzillaVersion v) {
- if (major < v.major) {
- return -1;
- } else if (major > v.major) {
- return 1;
- }
-
- if (minor < v.minor) {
- return -1;
- } else if (minor > v.minor) {
- return 1;
- }
-
- if (micro < v.micro) {
- return -1;
- } else if (micro > v.micro) {
- return 1;
- }
-
- return 0;
- }
-
- public int compareMajorMinorOnly(BugzillaVersion v) {
- if (major < v.major) {
- return -1;
- } else if (major > v.major) {
- return 1;
- }
-
- if (minor < v.minor) {
- return -1;
- } else if (minor > v.minor) {
- return 1;
- }
- return 0;
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(Integer.toString(major));
- sb.append(".").append(Integer.toString(minor)); //$NON-NLS-1$
- if (micro > 0) {
- sb.append(".").append(Integer.toString(micro)); //$NON-NLS-1$
- } else if (micro < 0) {
- sb.append("RC").append(Integer.toString(micro + 100)); //$NON-NLS-1$
- }
- return sb.toString();
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipGetMethod.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipGetMethod.java
deleted file mode 100644
index e96f3803c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipGetMethod.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Maarten Meijer 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:
- * Maarten Meijer - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core;
-
-import java.io.IOException;
-
-import org.apache.commons.httpclient.HttpConnection;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpState;
-import org.apache.commons.httpclient.methods.GetMethod;
-
-/**
- * Use <code>GzipGetMethod</code> instead of {@link GetMethod} to make Mylyn well-behaved when accessing repositories
- * that can supply gzipped responses.<br />
- * <br>
- * References:
- * <ul>
- * <li><a href="http://www.schroepl.net/projekte/mod_gzip/index.htm">Gzip home</a></li>
- * <li><a href="http://www.oreilly.com/catalog/9780596529307/chapter/ch04.pdf">Gzip site comparison</a></li>
- * </ul>
- *
- * @see GzipPostMethod, GetMethod
- *
- * @author Maarten Meijer
- */
-public class GzipGetMethod extends GetMethod {
- private final boolean gzipWanted;
-
- /**
- * @param requestPath
- * the URI to request
- * @param gzipWanted
- * is compression desired (for debugging or optionalizing)
- */
- public GzipGetMethod(String requestPath, boolean gzipWanted) {
- super(requestPath);
- this.gzipWanted = gzipWanted;
- }
-
- @Override
- public int execute(HttpState state, HttpConnection conn) throws HttpException, IOException {
- // Insert accept-encoding header
- if (gzipWanted) {
- this.setRequestHeader("Accept-encoding", IBugzillaConstants.CONTENT_ENCODING_GZIP); //$NON-NLS-1$
- }
- int result = super.execute(state, conn);
- return result;
- }
-
- /**
- * getResponseBodyNoop is meant for clearing the response body in case of error. The result is never used so no need
- * to unzip it first.
- *
- * @throws IOException
- */
- public void getResponseBodyNoop() throws IOException {
- // result is ignored
- super.getResponseBody();
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipPostMethod.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipPostMethod.java
deleted file mode 100644
index cf43553f7..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/GzipPostMethod.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Maarten Meijer 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:
- * Maarten Meijer - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core;
-
-import java.io.IOException;
-
-import org.apache.commons.httpclient.HttpConnection;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpState;
-import org.apache.commons.httpclient.methods.PostMethod;
-
-/**
- * Use <code>GzipPostMethod</code> instead of {@link PostMethod} to make Mylyn well-behaved when accessing repositories
- * that can supply gzipped responses.<br />
- * <br>
- * References:
- * <ul>
- * <li><a href="http://www.schroepl.net/projekte/mod_gzip/index.htm">Gzip home</a></li>
- * <li><a href="http://www.oreilly.com/catalog/9780596529307/chapter/ch04.pdf">Gzip site comparison</a></li>
- * </ul>
- *
- * @see GzipGetMethod, PostMethod
- *
- * @author Maarten Meijer
- */
-public class GzipPostMethod extends PostMethod {
- private final boolean gzipWanted;
-
- /**
- * @param requestPath
- * the URI to request
- * @param gzipWanted
- * is compression desired (for debugging or optionalizing)
- */
- public GzipPostMethod(String requestPath, boolean gzipWanted) {
- super(requestPath);
- this.gzipWanted = gzipWanted;
- }
-
- @Override
- public int execute(HttpState state, HttpConnection conn) throws HttpException, IOException {
- // Insert accept-encoding header
- if (gzipWanted) {
- this.setRequestHeader("Accept-encoding", IBugzillaConstants.CONTENT_ENCODING_GZIP); //$NON-NLS-1$
- }
- int result = super.execute(state, conn);
- return result;
- }
-
- /**
- * getResponseBodyNoop is meant for clearing the response body in case of error. The result is never used so no need
- * to unzip it first.
- *
- * @throws IOException
- */
- public void getResponseBodyNoop() throws IOException {
- // result is ignored
- super.getResponseBody();
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
deleted file mode 100644
index ca6b005ed..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/IBugzillaConstants.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-/**
- * @author Mik Kersten
- */
-public interface IBugzillaConstants {
-
- //public static final String POST_ARGS_PASSWORD = "&Bugzilla_password=";
- //public static final String POST_ARGS_LOGIN = "GoAheadAndLogIn=1&Bugzilla_login=";
-
- public static final String PROPERTY_CONFIGTIMESTAMP = "org.eclipse.mylyn.tasklist.repositories.config.timestamp"; //$NON-NLS-1$
-
- static final String ERROR_MIDAIR_COLLISION = "collision"; //$NON-NLS-1$
-
- static final String ERROR_MSG_MIDAIR_COLLISION = "A mid-air collision has occurred. Please synchronize by selecting Synchronize in the task's context menu."; //$NON-NLS-1$
-
- static final String ERROR_COMMENT_REQUIRED = "comment required"; //$NON-NLS-1$
-
- static final String ERROR_MSG_COMMENT_REQUIRED = "You have to specify a new comment when making this change. Please comment on the reason for this change."; //$NON-NLS-1$
-
- static final String ERROR_INVALID_USERNAME_OR_PASSWORD = "Invalid Username or Password"; //$NON-NLS-1$
-
- static final String LOGGED_OUT = "logged out"; //$NON-NLS-1$
-
- static final String MOST_RECENT_QUERY = "org.eclipse.mylyn.bugzilla.query.last"; //$NON-NLS-1$
-
- static final String SERVER_VERSION = "org.eclipse.mylyn.bugzilla.server.version"; //$NON-NLS-1$
-
- public static final int RETURN_ALL_HITS = -1;
-
- public static final String CONTENT_TYPE_RDF = "&ctype=rdf"; //$NON-NLS-1$
-
- public static final String POST_INPUT_BUGZILLA_PASSWORD = "Bugzilla_password"; //$NON-NLS-1$
-
- public static final String POST_INPUT_BUGZILLA_LOGIN = "Bugzilla_login"; //$NON-NLS-1$
-
- public static final String POST_INPUT_BUGID = "bugid"; //$NON-NLS-1$
-
- public static final String POST_INPUT_ACTION = "action"; //$NON-NLS-1$
-
- public static final String POST_INPUT_COMMENT = "comment"; //$NON-NLS-1$
-
- public static final String POST_INPUT_DESCRIPTION = "description"; //$NON-NLS-1$
-
- public static final String POST_INPUT_DATA = "data"; //$NON-NLS-1$
-
- public static final String URL_POST_LOGIN = "/index.cgi"; //$NON-NLS-1$
-
- public static final String URL_POST_ATTACHMENT_UPLOAD = "/attachment.cgi"; //$NON-NLS-1$
-
- public static final String URL_BUGLIST = "/buglist.cgi"; //$NON-NLS-1$
-
- public static final String URL_GET_ATTACHMENT_DOWNLOAD = "/attachment.cgi?id="; //$NON-NLS-1$
-
- public static final String URL_GET_ATTACHMENT_SUFFIX = "/attachment.cgi?id="; //$NON-NLS-1$
-
- public static final String URL_BUG_ACTIVITY = "/show_activity.cgi?id="; //$NON-NLS-1$
-
- public static final String URL_SHOW_VOTES = "/votes.cgi?action=show_bug&bug_id="; //$NON-NLS-1$
-
- public static final String URL_VOTE = "/votes.cgi?action=show_user&bug_id="; //$NON-NLS-1$
-
- public static final String URL_DEPENDENCY_TREE = "/showdependencytree.cgi?id="; //$NON-NLS-1$
-
- public static final String URL_DEPENDENCY_GRAPH = "/showdependencygraph.cgi?id="; //$NON-NLS-1$
-
- public static final String URL_GET_SHOW_BUG = "/show_bug.cgi?id="; //$NON-NLS-1$
-
- public static final String URL_GET_CONFIG_RDF = "/config.cgi?ctype=rdf"; //$NON-NLS-1$
-
- //For including fields in the xml (XML Summary mode as they like to call it)
- //use &field=fieldname for example to only reveal the product information append &field=product
- //to exclude from the xml use excludefield=fieldname. See bugzilla QuckSearch for a list of
- //fields that can be used (repositoryurl/quicksearchhack.html).
- //If somebody knows where this is officially documented I'd appreciate it if they would post a link here
- // and on bug#161321. Thanks -relves
- // (see also: https://bugzilla.mozilla.org/show_bug.cgi?id=136603https://bugzilla.mozilla.org/show_bug.cgi?id=136603)
- public static final String URL_GET_SHOW_BUG_XML = "/show_bug.cgi?ctype=xml&excludefield=attachmentdata&id="; //$NON-NLS-1$
-
- public static final String URL_GET_SHOW_BUG_XML_NOID = "/show_bug.cgi?ctype=xml&excludefield=attachmentdata"; //$NON-NLS-1$
-
- public static final String URL_POST_SHOW_BUG = "/show_bug.cgi"; //$NON-NLS-1$
-
- public static final String XML_ERROR_INVALIDBUGID = "invalidbugid"; //$NON-NLS-1$
-
- public static final String XML_ERROR_NOTFOUND = "notfound"; //$NON-NLS-1$
-
- public static final String XML_ERROR_NOTPERMITTED = "notpermitted"; //$NON-NLS-1$
-
- public static final String ENCODING_UTF_8 = "UTF-8"; //$NON-NLS-1$
-
- public static final int REPOSITORY_STATUS_SUSPICIOUS_ACTION = 99;
-
- /** Supported bugzilla repository versions */
- static public enum BugzillaServerVersion {
- SERVER_218, SERVER_220, SERVER_222, SERVER_30;
-
- @Override
- public String toString() {
- switch (this) {
- case SERVER_30:
- return "3.0"; //$NON-NLS-1$
- case SERVER_222:
- return "2.22"; //$NON-NLS-1$
- case SERVER_220:
- return "2.20"; //$NON-NLS-1$
- case SERVER_218:
- return "2.18"; //$NON-NLS-1$
- default:
- return "null"; //$NON-NLS-1$
- }
- }
-
- /** returns null if version string unknown* */
- static public BugzillaServerVersion fromString(String version) {
- if (version.equals(SERVER_30.toString())) {
- return SERVER_30;
- }
- if (version.equals(SERVER_222.toString())) {
- return SERVER_222;
- }
- if (version.equals(SERVER_220.toString())) {
- return SERVER_220;
- }
- if (version.equals(SERVER_218.toString())) {
- return SERVER_218;
- }
- return null;
- }
- }
-
- /**
- * Current Stable Major Release
- */
- public static final BugzillaServerVersion SERVER_VERSION_DEFAULT = BugzillaServerVersion.SERVER_30;
-
- static final String REFRESH_QUERY = "org.eclipse.mylyn.bugzilla.query.refresh"; //$NON-NLS-1$
-
- static final String MAX_RESULTS = "org.eclipse.mylyn.bugzilla.search.results.max"; //$NON-NLS-1$
-
- // names for the resources used to hold the different attributes of a bug
- static final String VALUES_STATUS = "org.eclipse.mylyn.bugzilla.values.status"; //$NON-NLS-1$
-
- static final String VALUES_RESOLUTION = "org.eclipse.mylyn.bugzilla.values.resolution"; //$NON-NLS-1$
-
- static final String VALUES_COMPONENT = "org.eclipse.mylyn.bugzilla.values.component"; //$NON-NLS-1$
-
- static final String VALUES_VERSION = "org.eclipse.mylyn.bugzilla.values.version"; //$NON-NLS-1$
-
- static final String VALUES_TARGET = "org.eclipse.mylyn.bugzilla.values.target"; //$NON-NLS-1$
-
- static final String ECLIPSE_BUGZILLA_URL = "https://bugs.eclipse.org/bugs"; //$NON-NLS-1$
-
- // Default values for keys
-
- static final String[] DEFAULT_STATUS_VALUES = { "Unconfirmed", "New", "Assigned", "Reopened", "Resolved", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$
- "Verified", "Closed" }; //$NON-NLS-1$//$NON-NLS-2$
-
- static final String[] DEFAULT_PRESELECTED_STATUS_VALUES = { "New", "Assigned", "Reopened" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // static final String[] DEFAULT_RESOLUTION_VALUES = { "Fixed", "Invalid",
- // "Wontfix", "Later", "Remind", "Duplicate",
- // "Worksforme", "Moved" };
-
- static final String[] DEFAULT_SEVERITY_VALUES = { "blocker", "critical", "major", "normal", "minor", "trivial", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "enhancement" }; //$NON-NLS-1$
-
- static final String[] DEFAULT_PRIORITY_VALUES = { "P1", "P2", "P3", "P4", "P5" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
- static final String[] DEFAULT_HARDWARE_VALUES = { "All", "Macintosh", "PC", "Power PC", "Sun", "Other" }; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-
- static final String[] DEFAULT_OS_VALUES = { "All", "AIX Motif", "Windows 95", "Windows 98", "Windows CE", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$
- "Windows ME", "Windows 2000", "Windows NT", "Windows XP", "Windows All", "MacOS X", "Linux", "Linux-GTK", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "Linux-Motif", "HP-UX", "Neutrino", "QNX-Photon", "Solaris", "Unix All", "other" }; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$//$NON-NLS-6$//$NON-NLS-7$
-
- static final String[] DEFAULT_PRODUCT_VALUES = {};
-
- static final String[] DEFAULT_COMPONENT_VALUES = {};
-
- static final String[] DEFAULT_VERSION_VALUES = {};
-
- static final String[] DEFAULT_TARGET_VALUES = {};
-
- public static final String TITLE_MESSAGE_DIALOG = Messages.IBugzillaConstants_Mylyn_Bugzilla_Connector;
-
- public static final String TITLE_NEW_BUG = Messages.IBugzillaConstants_New_Bugzilla_Report;
-
- public static final String MESSAGE_LOGIN_FAILURE = Messages.IBugzillaConstants_Bugzilla_login_information_or_repository_version_incorrect;
-
- public static final String INVALID_2201_ATTRIBUTE_IGNORED = "EclipsebugsBugzilla2.20.1"; //$NON-NLS-1$
-
- public static final String VALUE_STATUS_RESOLVED = "RESOLVED"; //$NON-NLS-1$
-
- public static final String VALUE_STATUS_NEW = "NEW"; //$NON-NLS-1$
-
- public static final String VALUE_STATUS_CLOSED = "CLOSED"; //$NON-NLS-1$
-
- public static final String VALUE_STATUS_ASSIGNED = "ASSIGNED"; //$NON-NLS-1$
-
- public static final String VALUE_STATUS_VERIFIED = "VERIFIED"; //$NON-NLS-1$
-
- public static final String VALUE_RESOLUTION_LATER = "LATER"; //$NON-NLS-1$
-
- public static enum BUGZILLA_REPORT_STATUS {
- UNCONFIRMED, NEW, ASSIGNED, REOPENED, RESOLVED, VERIFIED, CLOSED, SCHEDULED;
- }
-
- public static enum BUGZILLA_RESOLUTION_2_0 {
- FIXED, INVALID, WONTFIX, LATER, REMIND, WORKSFORME;
- }
-
- public static enum BUGZILLA_RESOLUTION_3_0 {
- FIXED, INVALID, WONTFIX, WORKSFORME;
- }
-
- public static final String ERROR_MSG_OP_NOT_PERMITTED = Messages.IBugzillaConstants_requested_operation_not_permitted;
-
- public static final String ERROR_MSG_INVALID_BUG_ID = Messages.IBugzillaConstants_invalid_bug_id_requested_bug_id_does_not_exist;
-
- public static final String INVALID_CREDENTIALS = Messages.IBugzillaConstants_invalid_repository_credentials;
-
- public static final String SHOW_ACTIVITY = "/show_activity.cgi?id="; //$NON-NLS-1$
-
- public static final String REPOSITORY_SETTING_SHORT_LOGIN = "bugzilla.shortLoginEnabled"; //$NON-NLS-1$
-
- public static final String BUGZILLA_TASK_KIND = "Bug"; //$NON-NLS-1$
-
- static final int MAX_URL_LENGTH = 2000;
-
- public static final String TIMESTAMP_NOT_AVAILABLE = "n/a"; //$NON-NLS-1$
-
- public static final String BUGZILLA_DEF_OS = "bugzilla.default.os"; //$NON-NLS-1$
-
- public static final String BUGZILLA_DEF_PLATFORM = "bugzilla.default.platform"; //$NON-NLS-1$
-
- public static final String BUGZILLA_LANGUAGE_SETTING = "bugzilla.languageSetting"; //$NON-NLS-1$
-
- public static final String DEFAULT_LANG = "en (default)"; //$NON-NLS-1$
-
- // Bugzilla Task Attribute Editor Types
-
- public static final String EDITOR_TYPE_KEYWORDS = "bugzilla.editor.keywords"; //$NON-NLS-1$
-
- public static final String EDITOR_TYPE_REMOVECC = "bugzilla.editor.removecc"; //$NON-NLS-1$
-
- public static final String EDITOR_TYPE_VOTES = "bugzilla.editor.votes"; //$NON-NLS-1$
-
- public static final String EDITOR_TYPE_FLAG = "bugzilla.editor.flag"; //$NON-NLS-1$
-
- public static final String ATTRIBUTE_BUGZILLA_QUERY_CUSTOM = "bugzilla.query.custom"; //$NON-NLS-1$
-
- // Old Tags used for migration
- public static final String TAG_BUGZILLA_QUERY = "BugzillaQuery"; //$NON-NLS-1$
-
- public static final String TAG_BUGZILLA_CUSTOM_QUERY = "BugzillaCustomQuery"; //$NON-NLS-1$
-
- public static final String CONTENT_ENCODING_GZIP = "gzip"; //$NON-NLS-1$
-
- public static final String LAST_PRODUCT_SELECTION = "last.selection.product"; //$NON-NLS-1$
-
- public static final String LAST_COMPONENT_SELECTION = "last.selection.component"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/KeywordParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/KeywordParser.java
deleted file mode 100644
index ee88d4c4e..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/KeywordParser.java
+++ /dev/null
@@ -1,7 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 Mylyn project committers 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
- *******************************************************************************/
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
deleted file mode 100644
index 9c0b197f0..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/Messages.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.core.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String BugzillaAttribute_Add;
-
- public static String BugzillaAttribute_Add_CC;
-
- public static String BugzillaAttribute_Add_self_to_CC;
-
- public static String BugzillaAttribute_Additional_Comments;
-
- public static String BugzillaAttribute_Assigned_to;
-
- public static String BugzillaAttribute_Assigned_to_NAME;
-
- public static String BugzillaAttribute_ATTACH_ID;
-
- public static String BugzillaAttribute_attachment;
-
- public static String BugzillaAttribute_Blocks;
-
- public static String BugzillaAttribute_bug;
-
- public static String BugzillaAttribute_Bug_ID;
-
- public static String BugzillaAttribute_bug_when;
-
- public static String BugzillaAttribute_bugzilla;
-
- public static String BugzillaAttribute_CC;
-
- public static String BugzillaAttribute_CC_List;
-
- public static String BugzillaAttribute_Classification;
-
- public static String BugzillaAttribute_Classification_ID;
-
- public static String BugzillaAttribute_Component;
-
- public static String BugzillaAttribute_Content_Type;
-
- public static String BugzillaAttribute_data;
-
- public static String BugzillaAttribute_Date;
-
- public static String BugzillaAttribute_Depends_on__Subtasks_;
-
- public static String BugzillaAttribute_desc;
-
- public static String BugzillaAttribute_Description;
-
- public static String BugzillaAttribute_Due;
-
- public static String BugzillaAttribute_Estimated_Time;
-
- public static String BugzillaAttribute_everconfirmed;
-
- public static String BugzillaAttribute_filename;
-
- public static String BugzillaAttribute_flag;
-
- public static String BugzillaAttribute_Group;
-
- public static String BugzillaAttribute_Keywords;
-
- public static String BugzillaAttribute_Modified;
-
- public static String BugzillaAttribute_new_comment;
-
- public static String BugzillaAttribute_Number_of_comments;
-
- public static String BugzillaAttribute_Obsolete;
-
- public static String BugzillaAttribute_open_status_values;
-
- public static String BugzillaAttribute_Opened;
-
- public static String BugzillaAttribute_OS;
-
- public static String BugzillaAttribute_Patch;
-
- public static String BugzillaAttribute_Platform;
-
- public static String BugzillaAttribute_Priority;
-
- public static String BugzillaAttribute_Product;
-
- public static String BugzillaAttribute_QA_Contact;
-
- public static String BugzillaAttribute_QA_Contact_NAME;
-
- public static String BugzillaAttribute_Reassign_to_default_assignee;
-
- public static String BugzillaAttribute_Remaining;
-
- public static String BugzillaAttribute_Remove_CC;
-
- public static String BugzillaAttribute_REPORT_ACCESSIBLE;
-
- public static String BugzillaAttribute_REPORT_NAME;
-
- public static String BugzillaAttribute_Reporter;
-
- public static String BugzillaAttribute_Resolution;
-
- public static String BugzillaAttribute_Severity;
-
- public static String BugzillaAttribute_Size;
-
- public static String BugzillaAttribute_Status;
-
- public static String BugzillaAttribute_Status_Whiteboard;
-
- public static String BugzillaAttribute_Summary;
-
- public static String BugzillaAttribute_Target_milestone;
-
- public static String BugzillaAttribute_thetext;
-
- public static String BugzillaAttribute_type;
-
- public static String BugzillaAttribute_UNKNOWN;
-
- public static String BugzillaAttribute_URL;
-
- public static String BugzillaAttribute_used_by_search_engine_bugs;
-
- public static String BugzillaAttribute_used_by_search_engine_desc;
-
- public static String BugzillaAttribute_used_by_search_engine_id;
-
- public static String BugzillaAttribute_used_by_search_engine_installation;
-
- public static String BugzillaAttribute_used_by_search_engine_li;
-
- public static String BugzillaAttribute_used_by_search_engine_rdf;
-
- public static String BugzillaAttribute_used_by_search_engine_result;
-
- public static String BugzillaAttribute_used_by_search_engine_seq;
-
- public static String BugzillaAttribute_Version;
-
- public static String BugzillaAttribute_version_of_bugzilla_installed;
-
- public static String BugzillaAttribute_Votes;
-
- public static String BugzillaAttribute_who;
-
- public static String BugzillaAttribute_who_name;
-
- public static String BugzillaAttribute_Worked;
-
- public static String BugzillaClient_could_not_post_form_null_returned;
-
- public static String BugzillaClient_description_required_when_submitting_attachments;
-
- public static String BugzillaOperation_Accept_to_ASSIGNED;
-
- public static String BugzillaOperation_Duplicate_of;
-
- public static String BugzillaOperation_Leave_as_X_X;
-
- public static String BugzillaOperation_Mark_as_CLOSED;
-
- public static String BugzillaOperation_Mark_as_VERIFIED;
-
- public static String BugzillaOperation_Reassign_to;
-
- public static String BugzillaOperation_Reopen_bug;
-
- public static String BugzillaOperation_Resolve_as;
-
- public static String BugzillaOperation_Reassign_to_default_assignee;
-
- public static String BugzillaRepositoryConnector_BUGZILLA_SUPPORTS_2_18_TO_3_0;
-
- public static String BugzillaRepositoryConnector_Check_repository_configuration;
-
- public static String BugzillaRepositoryConnector_checking_for_changed_tasks;
-
- public static String BugzillaRepositoryConnector_Query_for_changed_tasks;
-
- public static String BugzillaRepositoryConnector_running_query;
-
- public static String BugzillaRepositoryConnector_Unrecognized_response_from_server;
-
- public static String BugzillaTaskAttachmentHandler_Getting_attachment;
-
- public static String BugzillaTaskAttachmentHandler_Sending_attachment;
-
- public static String BugzillaTaskAttachmentHandler_unable_to_submit_attachment;
-
- public static String BugzillaTaskDataHandler_Receiving_tasks;
-
- public static String BugzillaTaskDataHandler_Submitting_task;
-
- public static String BugzillaTaskDataHandler_updating_attachment;
-
- public static String IBugzillaConstants_Bugzilla_login_information_or_repository_version_incorrect;
-
- public static String IBugzillaConstants_invalid_bug_id_requested_bug_id_does_not_exist;
-
- public static String IBugzillaConstants_invalid_repository_credentials;
-
- public static String IBugzillaConstants_Mylyn_Bugzilla_Connector;
-
- public static String IBugzillaConstants_New_Bugzilla_Report;
-
- public static String IBugzillaConstants_requested_operation_not_permitted;
-
- public static String SaxMultiBugReportContentHandler_Bug_id_from_server_did_not_match_requested_id;
-
- public static String SaxMultiBugReportContentHandler_id_not_found;
-
- public static String BugzillaStatus_repositoryLoginFailure;
-
- public static String BugzillaStatus_repositoryNotFound;
-
- public static String BugzillaStatus_repositoryCommentRequired;
-
- public static String BugzillaStatus_repositoryCollision;
-
- public static String BugzillaStatus_operationCancelled;
-
- public static String BugzillaStatus_errorIo;
-
- public static String BugzillaStatus_errorInternal;
-
- public static String BugzillaStatus_errorRepository;
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/MultiBugReportFactory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/MultiBugReportFactory.java
deleted file mode 100644
index 604d54f53..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/MultiBugReportFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-
-/**
- * Reads bug reports from repository.
- *
- * @author Rob Elves
- */
-public class MultiBugReportFactory extends AbstractReportFactory {
-
- public MultiBugReportFactory(InputStream inStream, String encoding) {
- super(inStream, encoding);
- }
-
- public void populateReport(Map<String, TaskData> bugMap, TaskDataCollector collector, TaskAttributeMapper mapper,
- List<BugzillaCustomField> customFields) throws IOException, CoreException {
-
- SaxMultiBugReportContentHandler contentHandler = new SaxMultiBugReportContentHandler(mapper, collector, bugMap,
- customFields);
- collectResults(contentHandler, false);
-
- if (contentHandler.errorOccurred()) {
- String errorResponse = contentHandler.getErrorMessage().toLowerCase(Locale.ENGLISH);
- if (errorResponse.equals(IBugzillaConstants.XML_ERROR_NOTFOUND)
- || errorResponse.equals(IBugzillaConstants.XML_ERROR_INVALIDBUGID)) {
- throw new CoreException(new BugzillaStatus(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY, "", IBugzillaConstants.ERROR_MSG_INVALID_BUG_ID)); //$NON-NLS-1$
- } else if (errorResponse.equals(IBugzillaConstants.XML_ERROR_NOTPERMITTED)) {
- BugzillaStatus status = new BugzillaStatus(IStatus.INFO, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY_LOGIN, mapper.getTaskRepository().getRepositoryUrl(),
- IBugzillaConstants.ERROR_MSG_OP_NOT_PERMITTED);
- throw new CoreException(status);
- } else {
- throw new CoreException(new BugzillaStatus(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY, "", "Unexpected error occurred: " + errorResponse)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfiguration.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfiguration.java
deleted file mode 100644
index d525f88ff..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfiguration.java
+++ /dev/null
@@ -1,700 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants.BUGZILLA_REPORT_STATUS;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskOperation;
-
-/**
- * Class describing the configuration of products and components for a given Bugzilla installation.
- *
- * @author Rob Elves
- */
-public class RepositoryConfiguration implements Serializable {
-
- private static final long serialVersionUID = -3600257926613730005L;
-
- private String repositoryUrl = "<unknown>"; //$NON-NLS-1$
-
- private final Map<String, ProductEntry> products = new HashMap<String, ProductEntry>();
-
- private final List<String> platforms = new ArrayList<String>();
-
- private final List<String> operatingSystems = new ArrayList<String>();
-
- private final List<String> priorities = new ArrayList<String>();
-
- private final List<String> severities = new ArrayList<String>();
-
- private final List<String> bugStatus = new ArrayList<String>();
-
- private final List<String> openStatusValues = new ArrayList<String>();
-
- private final List<String> resolutionValues = new ArrayList<String>();
-
- private final List<String> keywords = new ArrayList<String>();
-
- // master lists
-
- private final List<String> versions = new ArrayList<String>();
-
- private final List<String> components = new ArrayList<String>();
-
- private final List<String> milestones = new ArrayList<String>();
-
- private final List<BugzillaCustomField> customFields = new ArrayList<BugzillaCustomField>();
-
- private final List<BugzillaFlag> flags = new ArrayList<BugzillaFlag>();
-
- private BugzillaVersion version = BugzillaVersion.MIN_VERSION;
-
- public RepositoryConfiguration() {
- super();
- }
-
- public void addStatus(String status) {
- bugStatus.add(status);
- }
-
- public List<String> getStatusValues() {
- return bugStatus;
- }
-
- public void addResolution(String res) {
- resolutionValues.add(res);
- }
-
- public List<String> getResolutions() {
- return resolutionValues;
- }
-
- /**
- * Adds a product to the configuration.
- */
- public void addProduct(String name) {
- if (!products.containsKey(name)) {
- ProductEntry product = new ProductEntry(name);
- products.put(name, product);
- }
- }
-
- /**
- * Returns an array of names of current products.
- */
- public List<String> getProducts() {
- ArrayList<String> productList = new ArrayList<String>(products.keySet());
- Collections.sort(productList);
- return productList;
- }
-
- /**
- * Returns an array of names of component that exist for a given product or <code>null</code> if the product does
- * not exist.
- */
- public List<String> getComponents(String product) {
- ProductEntry entry = products.get(product);
- if (entry != null) {
- return entry.getComponents();
- } else {
- return Collections.emptyList();
- }
- }
-
- /**
- * Returns an array of names of versions that exist for a given product or <code>null</code> if the product does not
- * exist.
- */
- public List<String> getVersions(String product) {
- ProductEntry entry = products.get(product);
- if (entry != null) {
- return entry.getVersions();
- } else {
- return Collections.emptyList();
- }
- }
-
- /**
- * Returns an array of names of valid severity values.
- */
- public List<String> getSeverities() {
- return severities;
- }
-
- /**
- * Returns an array of names of valid OS values.
- */
- public List<String> getOSs() {
- return operatingSystems;
- }
-
- public void addOS(String os) {
- operatingSystems.add(os);
- }
-
- /**
- * Returns an array of names of valid platform values.
- */
- public List<String> getPlatforms() {
- return platforms;
- }
-
- /**
- * Returns an array of names of valid platform values.
- */
- public List<String> getPriorities() {
- return priorities;
- }
-
- /**
- * Adds a component to the given product.
- */
- public void addComponent(String product, String component) {
- if (!components.contains(component)) {
- components.add(component);
- }
- ProductEntry entry = products.get(product);
- if (entry == null) {
- entry = new ProductEntry(product);
- products.put(product, entry);
- }
- entry.addComponent(component);
- }
-
- public void addVersion(String product, String version) {
- if (!versions.contains(version)) {
- versions.add(version);
- }
- ProductEntry entry = products.get(product);
- if (entry == null) {
- entry = new ProductEntry(product);
- products.put(product, entry);
- }
- entry.addVersion(version);
- }
-
- public void addKeyword(String keyword) {
- keywords.add(keyword);
- }
-
- public List<String> getKeywords() {
- return keywords;
- }
-
- public void addPlatform(String platform) {
- platforms.add(platform);
- }
-
- public void addPriority(String priority) {
- priorities.add(priority);
- }
-
- public void addSeverity(String severity) {
- severities.add(severity);
-
- }
-
- public void setInstallVersion(String version) {
- this.version = new BugzillaVersion(version);
- }
-
- public BugzillaVersion getInstallVersion() {
- return version;
- }
-
- public void addTargetMilestone(String product, String target) {
- if (!milestones.contains(target)) {
- milestones.add(target);
- }
- ProductEntry entry = products.get(product);
- if (entry == null) {
- entry = new ProductEntry(product);
- products.put(product, entry);
- }
-
- entry.addTargetMilestone(target);
-
- }
-
- public List<String> getTargetMilestones(String product) {
- ProductEntry entry = products.get(product);
- if (entry != null) {
- return entry.getTargetMilestones();
- } else {
- return Collections.emptyList();
- }
- }
-
- /**
- * Container for product information: name, components.
- */
- private static class ProductEntry implements Serializable {
-
- private static final long serialVersionUID = 4120139521246741120L;
-
- @SuppressWarnings("unused")
- String productName;
-
- List<String> components = new ArrayList<String>();
-
- List<String> versions = new ArrayList<String>();
-
- List<String> milestones = new ArrayList<String>();
-
- ProductEntry(String name) {
- this.productName = name;
- }
-
- List<String> getComponents() {
- return components;
- }
-
- void addComponent(String componentName) {
- if (!components.contains(componentName)) {
- components.add(componentName);
- }
- }
-
- List<String> getVersions() {
- return versions;
- }
-
- void addVersion(String name) {
- if (!versions.contains(name)) {
- versions.add(name);
- }
- }
-
- List<String> getTargetMilestones() {
- return milestones;
- }
-
- void addTargetMilestone(String target) {
- milestones.add(target);
- }
- }
-
- public List<String> getOpenStatusValues() {
- return openStatusValues;
- }
-
- public void addOpenStatusValue(String value) {
- openStatusValues.add(value);
- }
-
- public List<String> getComponents() {
- return components;
- }
-
- public List<String> getTargetMilestones() {
- return milestones;
- }
-
- public List<String> getVersions() {
- return versions;
- }
-
- public String getRepositoryUrl() {
- return repositoryUrl;
- }
-
- public void setRepositoryUrl(String repositoryUrl) {
- this.repositoryUrl = repositoryUrl;
- }
-
- /*
- * Intermediate step until configuration is made generic.
- */
- public List<String> getOptionValues(BugzillaAttribute element, String product) {
- switch (element) {
- case PRODUCT:
- return getProducts();
- case TARGET_MILESTONE:
- return getTargetMilestones(product);
- case BUG_STATUS:
- return getStatusValues();
- case VERSION:
- return getVersions(product);
- case COMPONENT:
- return getComponents(product);
- case REP_PLATFORM:
- return getPlatforms();
- case OP_SYS:
- return getOSs();
- case PRIORITY:
- return getPriorities();
- case BUG_SEVERITY:
- return getSeverities();
- case KEYWORDS:
- return getKeywords();
- case RESOLUTION:
- return getResolutions();
- default:
- return Collections.emptyList();
- }
- }
-
- /**
- * Adds a field to the configuration.
- */
- public void addCustomField(BugzillaCustomField newField) {
- customFields.add(newField);
- }
-
- public List<BugzillaCustomField> getCustomFields() {
- return customFields;
- }
-
- public void configureTaskData(TaskData taskData) {
- if (taskData != null) {
- addMissingFlags(taskData);
- updateAttributeOptions(taskData);
- addValidOperations(taskData);
- }
- }
-
- private void addMissingFlags(TaskData taskData) {
- List<String> existingFlags = new ArrayList<String>();
- List<BugzillaFlag> flags = getFlags();
- for (TaskAttribute attribute : new HashSet<TaskAttribute>(taskData.getRoot().getAttributes().values())) {
- if (attribute.getId().startsWith("task.common.kind.flag")) { //$NON-NLS-1$
- TaskAttribute state = attribute.getAttribute("state"); //$NON-NLS-1$
- if (state != null) {
- String nameValue = state.getMetaData().getLabel();
- if (!existingFlags.contains(nameValue)) {
- existingFlags.add(nameValue);
- }
- String desc = attribute.getMetaData().getLabel();
- if (desc == null || desc.equals("")) { //$NON-NLS-1$
- for (BugzillaFlag bugzillaFlag : flags) {
- if (bugzillaFlag.getType().equals("attachment")) { //$NON-NLS-1$
- continue;
- }
- if (bugzillaFlag.getName().equals(nameValue)) {
- attribute.getMetaData().setLabel(bugzillaFlag.getDescription());
- }
- }
- }
- }
- }
- }
- TaskAttribute productAttribute = taskData.getRoot().getMappedAttribute(BugzillaAttribute.PRODUCT.getKey());
- TaskAttribute componentAttribute = taskData.getRoot().getMappedAttribute(BugzillaAttribute.COMPONENT.getKey());
- for (BugzillaFlag bugzillaFlag : flags) {
- if (bugzillaFlag.getType().equals("attachment")) { //$NON-NLS-1$
- continue;
- }
- if (!bugzillaFlag.isUsedIn(productAttribute.getValue(), componentAttribute.getValue())) {
- continue;
- }
- if (existingFlags.contains(bugzillaFlag.getName()) && !bugzillaFlag.isMultiplicable()) {
- continue;
- }
- BugzillaFlagMapper mapper = new BugzillaFlagMapper();
- mapper.setRequestee(""); //$NON-NLS-1$
- mapper.setSetter(""); //$NON-NLS-1$
- mapper.setState(" "); //$NON-NLS-1$
- mapper.setFlagId(bugzillaFlag.getName());
- mapper.setNumber(0);
- mapper.setDescription(bugzillaFlag.getDescription());
- TaskAttribute attribute = taskData.getRoot().createAttribute(
- "task.common.kind.flag_type" + bugzillaFlag.getFlagId()); //$NON-NLS-1$
- mapper.applyTo(attribute);
- }
- setFlagsRequestee(taskData);
- }
-
- private void setFlagsRequestee(TaskData taskData) {
- for (TaskAttribute attribute : new HashSet<TaskAttribute>(taskData.getRoot().getAttributes().values())) {
- if (attribute.getId().startsWith("task.common.kind.flag")) { //$NON-NLS-1$
- TaskAttribute state = attribute.getAttribute("state"); //$NON-NLS-1$
- if (state != null) {
- String nameValue = state.getMetaData().getLabel();
- for (BugzillaFlag bugzillaFlag : flags) {
- if (nameValue.equals(bugzillaFlag.getName())) {
- TaskAttribute requestee = attribute.getAttribute("requestee"); //$NON-NLS-1$
- if (requestee == null) {
- requestee = attribute.createMappedAttribute("requestee"); //$NON-NLS-1$
- requestee.getMetaData().defaults().setType(TaskAttribute.TYPE_SHORT_TEXT);
- requestee.setValue(""); //$NON-NLS-1$
- }
- requestee.getMetaData().setReadOnly(!bugzillaFlag.isSpecifically_requestable());
- }
- }
- }
- }
- }
- }
-
- public void updateAttributeOptions(TaskData existingReport) {
- TaskAttribute attributeProduct = existingReport.getRoot()
- .getMappedAttribute(BugzillaAttribute.PRODUCT.getKey());
- if (attributeProduct == null) {
- return;
- }
- String product = attributeProduct.getValue();
- for (TaskAttribute attribute : new HashSet<TaskAttribute>(existingReport.getRoot().getAttributes().values())) {
-
- List<String> optionValues = getAttributeOptions(product, attribute);
-
- if (attribute.getId().equals(BugzillaAttribute.TARGET_MILESTONE.getKey()) && optionValues.isEmpty()) {
- existingReport.getRoot().removeAttribute(BugzillaAttribute.TARGET_MILESTONE.getKey());
- continue;
- }
-
- if (attribute.getId().startsWith("task.common.kind.flag")) { //$NON-NLS-1$
- attribute = attribute.getAttribute("state"); //$NON-NLS-1$
- }
-
- attribute.clearOptions();
- for (String option : optionValues) {
- attribute.putOption(option, option);
- }
- }
-
- }
-
- public List<String> getAttributeOptions(String product, TaskAttribute attribute) {
- List<String> options = new ArrayList<String>();
-
- if (attribute.getId().startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- for (BugzillaCustomField bugzillaCustomField : customFields) {
- if (bugzillaCustomField.getName().equals(attribute.getId())) {
- options = bugzillaCustomField.getOptions();
- break;
- }
- }
-
- } else if (attribute.getId().startsWith("task.common.kind.flag")) { //$NON-NLS-1$
-
- TaskAttribute state = attribute.getAttribute("state"); //$NON-NLS-1$
- if (state != null) {
- String nameValue = state.getMetaData().getLabel();
- options.add(""); //$NON-NLS-1$
- for (BugzillaFlag bugzillaFlag : flags) {
- if (nameValue.equals(bugzillaFlag.getName())) {
- if (nameValue.equals(bugzillaFlag.getName())) {
- if (bugzillaFlag.isRequestable()) {
- options.add("?"); //$NON-NLS-1$
- }
- break;
- }
- }
- }
- options.add("+"); //$NON-NLS-1$
- options.add("-"); //$NON-NLS-1$
- }
- }
-
- else {
- String type = attribute.getMetaData().getType();
-
- if (type != null && type.equals(IBugzillaConstants.EDITOR_TYPE_FLAG)) {
- options.add(""); //$NON-NLS-1$
- options.add("?"); //$NON-NLS-1$
- options.add("+"); //$NON-NLS-1$
- options.add("-"); //$NON-NLS-1$
- } else {
-
- BugzillaAttribute element;
- try {
- element = BugzillaAttribute.valueOf(attribute.getId().trim().toUpperCase(Locale.ENGLISH));
- } catch (RuntimeException e) {
- if (e instanceof IllegalArgumentException) {
- // ignore unrecognized tags
- return options;
- }
- throw e;
- }
-
- options = getOptionValues(element, product);
-
- if (element != BugzillaAttribute.RESOLUTION && element != BugzillaAttribute.OP_SYS
- && element != BugzillaAttribute.BUG_SEVERITY && element != BugzillaAttribute.PRIORITY
- && element != BugzillaAttribute.BUG_STATUS) {
- Collections.sort(options);
- }
- }
- }
- return options;
- }
-
- public void addValidOperations(TaskData bugReport) {
- TaskAttribute attributeStatus = bugReport.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- BUGZILLA_REPORT_STATUS status = BUGZILLA_REPORT_STATUS.NEW;
- if (attributeStatus != null) {
- try {
- status = BUGZILLA_REPORT_STATUS.valueOf(attributeStatus.getValue());
- } catch (RuntimeException e) {
-// StatusHandler.log(new Status(IStatus.INFO, BugzillaCorePlugin.PLUGIN_ID, "Unrecognized status: "
-// + attributeStatus.getValue(), e));
- status = BUGZILLA_REPORT_STATUS.NEW;
- }
- }
- BugzillaVersion bugzillaVersion = getInstallVersion();
- if (bugzillaVersion == null) {
- bugzillaVersion = BugzillaVersion.MIN_VERSION;
- }
- switch (status) {
- case UNCONFIRMED:
- case REOPENED:
- case NEW:
- addOperation(bugReport, BugzillaOperation.none);
- addOperation(bugReport, BugzillaOperation.accept);
- addOperation(bugReport, BugzillaOperation.resolve);
- addOperation(bugReport, BugzillaOperation.duplicate);
- break;
- case ASSIGNED:
- addOperation(bugReport, BugzillaOperation.none);
- addOperation(bugReport, BugzillaOperation.resolve);
- addOperation(bugReport, BugzillaOperation.duplicate);
- break;
- case RESOLVED:
- addOperation(bugReport, BugzillaOperation.none);
- addOperation(bugReport, BugzillaOperation.reopen);
- addOperation(bugReport, BugzillaOperation.verify);
- addOperation(bugReport, BugzillaOperation.close);
- if (bugzillaVersion.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_3_0) >= 0) {
- addOperation(bugReport, BugzillaOperation.duplicate);
- addOperation(bugReport, BugzillaOperation.resolve);
- }
- break;
- case CLOSED:
- addOperation(bugReport, BugzillaOperation.none);
- addOperation(bugReport, BugzillaOperation.reopen);
- if (bugzillaVersion.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_3_0) >= 0) {
- addOperation(bugReport, BugzillaOperation.duplicate);
- addOperation(bugReport, BugzillaOperation.resolve);
- }
- break;
- case VERIFIED:
- addOperation(bugReport, BugzillaOperation.none);
- addOperation(bugReport, BugzillaOperation.reopen);
- addOperation(bugReport, BugzillaOperation.close);
- if (bugzillaVersion.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_3_0) >= 0) {
- addOperation(bugReport, BugzillaOperation.duplicate);
- addOperation(bugReport, BugzillaOperation.resolve);
- }
- }
-
- if (bugzillaVersion.compareTo(BugzillaVersion.BUGZILLA_3_0) < 0) {
- // Product change is only supported for Versions >= 3.0 without verify html page
- TaskAttribute productAttribute = bugReport.getRoot().getMappedAttribute(BugzillaAttribute.PRODUCT.getKey());
- productAttribute.getMetaData().setReadOnly(true);
- }
-
- if (status == BUGZILLA_REPORT_STATUS.NEW || status == BUGZILLA_REPORT_STATUS.ASSIGNED
- || status == BUGZILLA_REPORT_STATUS.REOPENED || status == BUGZILLA_REPORT_STATUS.UNCONFIRMED) {
- if (bugzillaVersion.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_3_0) <= 0) {
- // old bugzilla workflow is used
- addOperation(bugReport, BugzillaOperation.reassign);
- addOperation(bugReport, BugzillaOperation.reassignbycomponent);
- } else {
- BugzillaAttribute key = BugzillaAttribute.SET_DEFAULT_ASSIGNEE;
- TaskAttribute operationAttribute = bugReport.getRoot().getAttribute(key.getKey());
- if (operationAttribute == null) {
- operationAttribute = bugReport.getRoot().createAttribute(key.getKey());
- operationAttribute.getMetaData()
- .defaults()
- .setReadOnly(key.isReadOnly())
- .setKind(key.getKind())
- .setLabel(key.toString())
- .setType(key.getType());
- operationAttribute.setValue("0"); //$NON-NLS-1$
- }
- operationAttribute = bugReport.getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED);
- if (operationAttribute != null) {
- operationAttribute.getMetaData().setReadOnly(false);
- }
- }
- }
- }
-
- public void addOperation(TaskData bugReport, BugzillaOperation opcode) {
- TaskAttribute attribute;
- TaskAttribute operationAttribute = bugReport.getRoot().getAttribute(TaskAttribute.OPERATION);
- if (operationAttribute == null) {
- operationAttribute = bugReport.getRoot().createAttribute(TaskAttribute.OPERATION);
- }
-
- switch (opcode) {
- case none:
- attribute = bugReport.getRoot().createAttribute(TaskAttribute.PREFIX_OPERATION + opcode.toString());
- String label = "Leave"; //$NON-NLS-1$
- TaskAttribute attributeStatus = bugReport.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- TaskAttribute attributeResolution = bugReport.getRoot().getMappedAttribute(TaskAttribute.RESOLUTION);
- if (attributeStatus != null && attributeResolution != null) {
- label = String.format(opcode.getLabel(), attributeStatus.getValue(), attributeResolution.getValue());
- }
-
- TaskOperation.applyTo(attribute, opcode.toString(), label);
- // set as default
- TaskOperation.applyTo(operationAttribute, opcode.toString(), label);
- break;
- case resolve:
- attribute = bugReport.getRoot().createAttribute(TaskAttribute.PREFIX_OPERATION + opcode.toString());
- TaskOperation.applyTo(attribute, opcode.toString(), opcode.getLabel());
- TaskAttribute attrResolvedInput = attribute.getTaskData().getRoot().createAttribute(opcode.getInputId());
- attrResolvedInput.getMetaData().setType(opcode.getInputType());
- attribute.getMetaData().putValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID, opcode.getInputId());
- for (String resolution : getResolutions()) {
- // DUPLICATE and MOVED have special meanings so do not show as resolution
- if (resolution.compareTo("DUPLICATE") != 0 && resolution.compareTo("MOVED") != 0) { //$NON-NLS-1$ //$NON-NLS-2$
- attrResolvedInput.putOption(resolution, resolution);
- }
- }
- if (getResolutions().size() > 0) {
- attrResolvedInput.setValue(getResolutions().get(0));
- }
- break;
- default:
- attribute = bugReport.getRoot().createAttribute(TaskAttribute.PREFIX_OPERATION + opcode.toString());
- TaskOperation.applyTo(attribute, opcode.toString(), opcode.getLabel());
- if (opcode.getInputId() != null) {
- TaskAttribute attrInput = bugReport.getRoot().createAttribute(opcode.getInputId());
- attrInput.getMetaData().defaults().setReadOnly(false).setType(opcode.getInputType());
- attribute.getMetaData().putValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID, opcode.getInputId());
- }
- break;
- }
- }
-
- /**
- * Adds a flag to the configuration.
- */
- public void addFlag(BugzillaFlag newFlag) {
- flags.add(newFlag);
- }
-
- public List<BugzillaFlag> getFlags() {
- return flags;
- }
-
- public BugzillaFlag getFlagWithId(Integer id) {
- for (BugzillaFlag bugzillaFlag : flags) {
- if (bugzillaFlag.getFlagId() == id) {
- return bugzillaFlag;
- }
- }
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfigurationFactory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfigurationFactory.java
deleted file mode 100644
index ae8b26db3..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryConfigurationFactory.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.CoreException;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * Reads bugzilla product configuration from config.cgi on server in RDF format.
- *
- * @author Rob Elves
- */
-public class RepositoryConfigurationFactory extends AbstractReportFactory {
-
- public RepositoryConfigurationFactory(InputStream inStream, String encoding) {
- super(inStream, encoding);
- }
-
- public RepositoryConfiguration getConfiguration() throws IOException, CoreException {
- SaxConfigurationContentHandler contentHandler = new SaxConfigurationContentHandler();
- collectResults(contentHandler, true);
- RepositoryConfiguration config = contentHandler.getConfiguration();
- return config;
- }
-
- class SaxErrorHandler implements ErrorHandler {
-
- public void error(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void fatalError(SAXParseException exception) throws SAXException {
- throw exception;
-
- }
-
- public void warning(SAXParseException exception) throws SAXException {
- // ignore
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryQueryResultsFactory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryQueryResultsFactory.java
deleted file mode 100644
index 2d901598e..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/RepositoryQueryResultsFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.GeneralSecurityException;
-
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-
-/**
- * @author Rob Elves
- */
-public class RepositoryQueryResultsFactory extends AbstractReportFactory {
-
- public RepositoryQueryResultsFactory(InputStream inStream, String encoding) {
- super(inStream, encoding);
- }
-
- /**
- * expects rdf returned from repository (ctype=rdf in url)
- *
- * @throws GeneralSecurityException
- */
- public int performQuery(String repositoryUrl, TaskDataCollector collector, TaskAttributeMapper mapper, int maxHits)
- throws IOException {
- SaxBugzillaQueryContentHandler contentHandler = new SaxBugzillaQueryContentHandler(repositoryUrl, collector,
- mapper);
- collectResults(contentHandler, false);
- return contentHandler.getResultCount();
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxBugzillaQueryContentHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxBugzillaQueryContentHandler.java
deleted file mode 100644
index ccb40a220..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxBugzillaQueryContentHandler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.util.Locale;
-
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parser for RDF bugzilla query results.
- *
- * @author Rob Elves
- */
-public class SaxBugzillaQueryContentHandler extends DefaultHandler {
-
- private StringBuffer characters;
-
- private final TaskDataCollector collector;
-
- private final String repositoryUrl;
-
- private int resultCount;
-
- private final TaskAttributeMapper mapper;
-
- private TaskData taskData;
-
- public SaxBugzillaQueryContentHandler(String repositoryUrl, TaskDataCollector collector, TaskAttributeMapper mapper) {
- this.repositoryUrl = repositoryUrl;
- this.collector = collector;
- this.mapper = mapper;
- }
-
- @Override
- public void characters(char[] ch, int start, int length) throws SAXException {
- characters.append(ch, start, length);
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- characters = new StringBuffer();
- }
-
- @Override
- public void endElement(String uri, String localName, String qName) throws SAXException {
-
- String parsedText = characters.toString();
- BugzillaAttribute tag = BugzillaAttribute.UNKNOWN;
- try {
- tag = BugzillaAttribute.valueOf(localName.trim().toUpperCase(Locale.ENGLISH));
- switch (tag) {
- case ID:
- taskData = new TaskData(mapper, getConnectorKind(), repositoryUrl, parsedText);
- taskData.setPartial(true);
- break;
- case SHORT_SHORT_DESC:
- if (taskData != null) {
- BugzillaTaskDataHandler.createAttribute(taskData, BugzillaAttribute.SHORT_DESC)
- .setValue(parsedText);
- }
- break;
- case LI:
- if (taskData != null) {
- collector.accept(taskData);
- }
- resultCount++;
- break;
- default:
- if (taskData != null) {
- BugzillaTaskDataHandler.createAttribute(taskData, tag).setValue(parsedText);
- }
- break;
- }
- } catch (RuntimeException e) {
- if (e instanceof IllegalArgumentException) {
- // ignore unrecognized tags
- return;
- }
- throw e;
- }
-
- }
-
- protected String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
- public int getResultCount() {
- return resultCount;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxConfigurationContentHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxConfigurationContentHandler.java
deleted file mode 100644
index 8e1d7910c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxConfigurationContentHandler.java
+++ /dev/null
@@ -1,584 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Quick config rdf parser.
- *
- * <pre>
- * config.cgi?ctype=rdf
- * </pre>
- *
- * Populates a <link>ProductConfiguration</link> data structure.
- *
- * @author Rob Elves
- */
-public class SaxConfigurationContentHandler extends DefaultHandler {
-
- private static final String ELEMENT_RESOLUTION = "resolution"; //$NON-NLS-1$
-
- private static final String ELEMENT_STATUS_OPEN = "status_open"; //$NON-NLS-1$
-
- private static final String ELEMENT_TARGET_MILESTONE = "target_milestone"; //$NON-NLS-1$
-
- private static final String ELEMENT_TARGET_MILESTONES = "target_milestones"; //$NON-NLS-1$
-
- private static final String ELEMENT_INSTALL_VERSION = "install_version"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_RDF_ABOUT = "rdf:about"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_RESOURCE = "resource"; //$NON-NLS-1$
-
- private static final String ELEMENT_VERSION = "version"; //$NON-NLS-1$
-
- private static final String ELEMENT_VERSIONS = "versions"; //$NON-NLS-1$
-
- private static final String ELEMENT_COMPONENT = "component"; //$NON-NLS-1$
-
- private static final String ELEMENT_COMPONENTS = "components"; //$NON-NLS-1$
-
- private static final String ELEMENT_NAME = "name"; //$NON-NLS-1$
-
- private static final String ELEMENT_PRODUCTS = "products"; //$NON-NLS-1$
-
- private static final String ELEMENT_DESCRIPTION = "description"; //$NON-NLS-1$
-
- private static final String ELEMENT_FIELDS = "fields"; //$NON-NLS-1$
-
- private static final String ELEMENT_FIELD = "field"; //$NON-NLS-1$
-
- private static final String ELEMENT_FLAG_TYPES = "flag_types"; //$NON-NLS-1$
-
- private static final String ELEMENT_FLAG_TYPE = "flag_type"; //$NON-NLS-1$
-
- private static final String ELEMENT_SEVERITY = "severity"; //$NON-NLS-1$
-
- private static final String ELEMENT_PRIORITY = "priority"; //$NON-NLS-1$
-
- private static final String ELEMENT_KEYWORD = "keyword"; //$NON-NLS-1$
-
- private static final String ELEMENT_OP_SYS = "op_sys"; //$NON-NLS-1$
-
- private static final String ELEMENT_PLATFORM = "platform"; //$NON-NLS-1$
-
- private static final String ELEMENT_LI = "li"; //$NON-NLS-1$
-
- private static final String ELEMENT_STATUS = "status"; //$NON-NLS-1$
-
- private static final String ELEMENT_TYPE = "type"; //$NON-NLS-1$
-
- private static final String ELEMENT_TYPE_DESC = "type_desc"; //$NON-NLS-1$
-
- private static final String ELEMENT_ENTER_BUG = "enter_bug"; //$NON-NLS-1$
-
- private static final String ELEMENT_REQUESTABLE = "requestable"; //$NON-NLS-1$
-
- private static final String ELEMENT_SPECIFICALLY_REQUESTABLE = "specifically_requestable"; //$NON-NLS-1$
-
- private static final String ELEMENT_ID = "id"; //$NON-NLS-1$
-
- private static final String ELEMENT_MULTIPLICABLE = "multiplicable"; //$NON-NLS-1$
-
- private static final int EXPECTING_ROOT = 0;
-
- private static final int IN_INSTALL_VERSION = 1 << 1;
-
- private static final int IN_STATUS = 1 << 2;
-
- private static final int IN_PLATFORM = 1 << 3;
-
- private static final int IN_OP_SYS = 1 << 4;
-
- private static final int IN_PRIORITY = 1 << 5;
-
- private static final int IN_SEVERITY = 1 << 6;
-
- private static final int IN_PRODUCTS = 1 << 7;
-
- private static final int IN_COMPONENTS = 1 << 8;
-
- private static final int IN_VERSIONS = 1 << 9;
-
- private static final int IN_LI = 1 << 10;
-
- private static final int IN_LI_LI = 1 << 11;
-
- private static final int IN_NAME = 1 << 12;
-
- private static final int IN_COMPONENT = 1 << 13;
-
- private static final int IN_VERSION = 1 << 14;
-
- private static final int IN_TARGET_MILESTONES = 1 << 15;
-
- private static final int IN_TARGET_MILESTONE = 1 << 16;
-
- private static final int IN_STATUS_OPEN = 1 << 17;
-
- private static final int IN_RESOLUTION = 1 << 18;
-
- private static final int IN_KEYWORD = 1 << 19;
-
- private static final int IN_STATUS_CLOSED = 1 << 20;
-
- private static final int IN_FIELDS = 1 << 21;
-
- private static final int IN_FIELD = 1 << 22;
-
- private static final int IN_CUSTOM_OPTION = 1 << 23;
-
- private static final int IN_FLAG_TYPES = 1 << 24;
-
- private static final int IN_FLAG_TYPE = 1 << 25;
-
- private int state = EXPECTING_ROOT;
-
- private String currentProduct = ""; //$NON-NLS-1$
-
- private String currentName = ""; //$NON-NLS-1$
-
- private String currentDescription = ""; //$NON-NLS-1$
-
- private String currentType;
-
- private String currentRequestable;
-
- private String currentSpecifically_requestable;
-
- private String currentMultiplicable;
-
- private int currentId;
-
- private String currentTypeDesc = ""; //$NON-NLS-1$
-
- private String currentEnterBug = ""; //$NON-NLS-1$
-
- private StringBuffer characters = new StringBuffer();
-
- private String about;
-
- private final RepositoryConfiguration configuration = new RepositoryConfiguration();
-
- private final Map<String, List<String>> components = new HashMap<String, List<String>>();
-
- private final Map<String, List<String>> versions = new HashMap<String, List<String>>();
-
- private final Map<String, List<String>> milestones = new HashMap<String, List<String>>();
-
- private final Map<String, String> componentNames = new HashMap<String, String>();
-
- private final Map<String, String> versionNames = new HashMap<String, String>();
-
- private final Map<String, String> milestoneNames = new HashMap<String, String>();
-
- private final Map<String, List<String>> customOption = new HashMap<String, List<String>>();
-
- private final Map<String, Map<String, List<String>>> flagsInComponent = new HashMap<String, Map<String, List<String>>>();
-
- private final Map<String, Integer> flagIds = new HashMap<String, Integer>();
-
- private String currentComponent = ""; //$NON-NLS-1$
-
- private String currentCustomOptionName = ""; //$NON-NLS-1$
-
- public RepositoryConfiguration getConfiguration() {
- return configuration;
- }
-
- @Override
- public void characters(char[] ch, int start, int length) throws SAXException {
- characters.append(ch, start, length);
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- characters = new StringBuffer();
- if (localName.equals(ELEMENT_STATUS)) {
- state = state | IN_STATUS;
- } else if (localName.equals(ELEMENT_LI) && ((state & IN_LI) == IN_LI)) {
- state = state | IN_LI_LI;
- parseResource(attributes);
- } else if (localName.equals(ELEMENT_LI) && ((state & IN_LI) != IN_LI)) {
- state = state | IN_LI;
- } else if (localName.equals(ELEMENT_PLATFORM)) {
- state = state | IN_PLATFORM;
- } else if (localName.equals(ELEMENT_OP_SYS)) {
- state = state | IN_OP_SYS;
- } else if (localName.equals(ELEMENT_PRIORITY)) {
- state = state | IN_PRIORITY;
- } else if (localName.equals(ELEMENT_SEVERITY)) {
- state = state | IN_SEVERITY;
- } else if (localName.equals(ELEMENT_PRODUCTS)) {
- state = state | IN_PRODUCTS;
- } else if (localName.equals(ELEMENT_OP_SYS)) {
- state = state | IN_OP_SYS;
- } else if (localName.equals(ELEMENT_NAME)) {
- state = state | IN_NAME;
- } else if (localName.equals(ELEMENT_COMPONENTS)) {
- state = state | IN_COMPONENTS;
- } else if (localName.equals(ELEMENT_COMPONENT)) {
- state = state | IN_COMPONENT;
- parseResource(attributes);
- } else if (localName.equals(ELEMENT_VERSIONS)) {
- state = state | IN_VERSIONS;
- } else if (localName.equals(ELEMENT_VERSION)) {
- state = state | IN_VERSION;
- parseResource(attributes);
- } else if (localName.equals(ELEMENT_INSTALL_VERSION)) {
- state = state | IN_INSTALL_VERSION;
- } else if (localName.equals(ELEMENT_TARGET_MILESTONES)) {
- state = state | IN_TARGET_MILESTONES;
- } else if (localName.equals(ELEMENT_TARGET_MILESTONE)) {
- state = state | IN_TARGET_MILESTONE;
- parseResource(attributes);
- } else if (localName.equals(ELEMENT_STATUS_OPEN)) {
- state = state | IN_STATUS_OPEN;
- } else if (localName.equals(ELEMENT_RESOLUTION)) {
- state = state | IN_RESOLUTION;
- } else if (localName.equals(ELEMENT_KEYWORD)) {
- state = state | IN_KEYWORD;
- } else if (localName.equals(ELEMENT_FIELDS)) {
- state = state | IN_FIELDS;
- } else if (localName.equals(ELEMENT_FIELD)) {
- state = state | IN_FIELD;
- parseResource(attributes);
- currentName = ""; //$NON-NLS-1$
- currentDescription = ""; //$NON-NLS-1$
- currentType = ""; //$NON-NLS-1$
- currentTypeDesc = ""; //$NON-NLS-1$
- currentEnterBug = ""; //$NON-NLS-1$
- currentId = -1;
- } else if (localName.equals(ELEMENT_FLAG_TYPES)) {
- state = state | IN_FLAG_TYPES;
- } else if (localName.equals(ELEMENT_FLAG_TYPE)) {
- state = state | IN_FLAG_TYPE;
- parseResource(attributes);
- } else if (localName.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- state = state | IN_CUSTOM_OPTION;
- currentCustomOptionName = localName;
- }
- }
-
- @Override
- public void endElement(String uri, String localName, String qName) throws SAXException {
-
- // KEEP: && ((state & IN_LI) == IN_LI)
-
- if (localName.equals(ELEMENT_STATUS)) {
- state = state & ~IN_STATUS;
- } else if (localName.equals(ELEMENT_LI) && ((state & IN_LI_LI) == IN_LI_LI)) {
- state = state & ~IN_LI_LI;
- } else if (localName.equals(ELEMENT_LI) && ((state & IN_LI_LI) != IN_LI_LI)) {
- state = state & ~IN_LI;
- if (characters.length() == 0) {
- return;
- }
- if (state == (IN_STATUS)) {
- configuration.addStatus(characters.toString());
- } else if (state == (IN_STATUS_OPEN)) {
- configuration.addOpenStatusValue(characters.toString());
- } else if (state == (IN_STATUS_CLOSED)) {
- // TODO: Add closed status values to configuration
- } else if (state == (IN_RESOLUTION)) {
- configuration.addResolution(characters.toString());
- } else if (state == (IN_KEYWORD)) {
- configuration.addKeyword(characters.toString());
- } else if (state == (IN_PLATFORM)) {
- configuration.addPlatform(characters.toString());
- } else if (state == (IN_OP_SYS)) {
- configuration.addOS(characters.toString());
- } else if (state == (IN_PRIORITY)) {
- configuration.addPriority(characters.toString());
- } else if (state == (IN_SEVERITY)) {
- configuration.addSeverity(characters.toString());
- } else if (state == (IN_CUSTOM_OPTION)) {
- // Option for CutstomFields
- if (currentCustomOptionName != null) {
- if (characters.length() > 0) {
- List<String> customOptionList = customOption.get(currentCustomOptionName);
- if (customOptionList == null) {
- customOptionList = new ArrayList<String>();
- customOption.put(currentCustomOptionName, customOptionList);
- }
- customOptionList.add(characters.toString());
- }
- }
- }
- } else if (localName.equals(ELEMENT_PLATFORM)) {
- state = state & ~IN_PLATFORM;
- } else if (localName.equals(ELEMENT_OP_SYS)) {
- state = state & ~IN_OP_SYS;
- } else if (localName.equals(ELEMENT_PRIORITY)) {
- state = state & ~IN_PRIORITY;
- } else if (localName.equals(ELEMENT_SEVERITY)) {
- state = state & ~IN_SEVERITY;
- } else if (localName.equals(ELEMENT_PRODUCTS)) {
- state = state & ~IN_PRODUCTS;
- } else if (localName.equals(ELEMENT_OP_SYS)) {
- state = state & ~IN_OP_SYS;
- } else if (localName.equals(ELEMENT_NAME)) {
- state = state & ~IN_NAME;
- if (state == (IN_PRODUCTS | IN_LI)) {
- // PRODUCT NAME
- currentProduct = characters.toString();
- configuration.addProduct(currentProduct);
- } else if (state == (IN_VERSIONS | IN_LI | IN_VERSION)) {
- // VERSION NAME
- if (about != null && !versionNames.containsValue(about)) {
- if (characters.length() > 0) {
- versionNames.put(about, characters.toString());
- }
- }
- } else if (state == (IN_COMPONENTS | IN_LI | IN_COMPONENT)) {
- // COMPONENT NAME
- currentComponent = characters.toString();
- if (about != null && !componentNames.containsValue(about)) {
- if (currentComponent.length() > 0) {
- componentNames.put(about, currentComponent);
- }
- }
- } else if (state == (IN_TARGET_MILESTONES | IN_LI | IN_TARGET_MILESTONE)) {
- // MILESTONE NAME
- if (about != null && !milestoneNames.containsValue(about)) {
- if (characters.length() > 0) {
- milestoneNames.put(about, characters.toString());
- }
- }
- } else if (state == (IN_FIELDS | IN_LI | IN_FIELD) || state == (IN_FLAG_TYPES | IN_LI | IN_FLAG_TYPE)) {
- // FIELDS NAME
- currentName = characters.toString();
- }
- } else if (localName.equals(ELEMENT_COMPONENTS)) {
- state = state & ~IN_COMPONENTS;
- } else if (localName.equals(ELEMENT_COMPONENT)) {
- state = state & ~IN_COMPONENT;
- } else if (localName.equals(ELEMENT_VERSION)) {
- state = state & ~IN_VERSION;
- } else if (localName.equals(ELEMENT_VERSIONS)) {
- state = state & ~IN_VERSIONS;
- } else if (localName.equals(ELEMENT_INSTALL_VERSION)) {
- state = state & ~IN_INSTALL_VERSION;
- configuration.setInstallVersion(characters.toString());
- } else if (localName.equals(ELEMENT_TARGET_MILESTONE)) {
- state = state & ~IN_TARGET_MILESTONE;
- } else if (localName.equals(ELEMENT_TARGET_MILESTONES)) {
- state = state & ~IN_TARGET_MILESTONES;
- } else if (localName.equals(ELEMENT_STATUS_OPEN)) {
- state = state & ~IN_STATUS_OPEN;
- } else if (localName.equals(ELEMENT_RESOLUTION)) {
- state = state & ~IN_RESOLUTION;
- } else if (localName.equals(ELEMENT_KEYWORD)) {
- state = state & ~IN_KEYWORD;
- } else if (localName.equals(ELEMENT_FIELDS)) {
- state = state & ~IN_FIELDS;
- } else if (localName.equals(ELEMENT_FIELD)) {
- if (currentName.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- BugzillaCustomField newField = new BugzillaCustomField(currentDescription, currentName, currentType,
- currentTypeDesc, currentEnterBug);
- List<String> customOptionList = customOption.get(currentName);
- if (customOptionList != null && !customOptionList.isEmpty()) {
- newField.setOptions(customOptionList);
- }
- configuration.addCustomField(newField);
- }
- state = state & ~IN_FIELD;
- } else if (localName.equals(ELEMENT_DESCRIPTION)) {
- currentDescription = characters.toString();
- } else if (localName.equals(ELEMENT_TYPE)) {
- currentType = characters.toString();
- } else if (localName.equals(ELEMENT_ID)) {
- currentId = Integer.parseInt(characters.toString());
- } else if (localName.equals(ELEMENT_TYPE_DESC)) {
- currentTypeDesc = characters.toString();
- } else if (localName.equals(ELEMENT_ENTER_BUG)) {
- currentEnterBug = characters.toString();
- } else if (localName.equals(ELEMENT_REQUESTABLE)) {
- currentRequestable = characters.toString();
- } else if (localName.equals(ELEMENT_SPECIFICALLY_REQUESTABLE)) {
- currentSpecifically_requestable = characters.toString();
- } else if (localName.equals(ELEMENT_MULTIPLICABLE)) {
- currentMultiplicable = characters.toString();
- } else if (localName.equals(ELEMENT_FLAG_TYPES)) {
- state = state & ~IN_FLAG_TYPES;
- } else if (localName.equals(ELEMENT_FLAG_TYPE)) {
- if (currentId != -1) {
- if (about != null && !flagIds.containsValue(about)) {
- flagIds.put(about, currentId);
- }
- BugzillaFlag newFlag = new BugzillaFlag(currentName, currentDescription, currentType,
- currentRequestable, currentSpecifically_requestable, currentMultiplicable, currentId);
- configuration.addFlag(newFlag);
- }
- state = state & ~IN_FLAG_TYPE;
- } else if (localName.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- state = state & ~IN_CUSTOM_OPTION;
- currentCustomOptionName = ""; //$NON-NLS-1$
- }
- }
-
- private void parseResource(Attributes attributes) {
-
- switch (state) {
- case IN_PRODUCTS | IN_LI | IN_COMPONENTS | IN_LI_LI:
- if (attributes != null) {
- String compURI = attributes.getValue(ATTRIBUTE_RESOURCE);
- if (compURI != null && currentProduct.length() > 0) {
- List<String> compURIs = components.get(currentProduct);
- if (compURIs == null) {
- compURIs = new ArrayList<String>();
- components.put(currentProduct, compURIs);
- }
- compURIs.add(compURI);
- }
- }
- break;
- case IN_PRODUCTS | IN_LI | IN_VERSIONS | IN_LI_LI:
- if (attributes != null) {
- String resourceURI = attributes.getValue(ATTRIBUTE_RESOURCE);
- if (resourceURI != null && currentProduct.length() > 0) {
- List<String> versionUris = versions.get(currentProduct);
- if (versionUris == null) {
- versionUris = new ArrayList<String>();
- versions.put(currentProduct, versionUris);
- }
- versionUris.add(resourceURI);
- }
- }
- break;
- case IN_PRODUCTS | IN_LI | IN_TARGET_MILESTONES | IN_LI_LI:
- if (attributes != null) {
- String resourceURI = attributes.getValue(ATTRIBUTE_RESOURCE);
- if (resourceURI != null) {
- List<String> milestoneUris = milestones.get(currentProduct);
- if (milestoneUris == null) {
- milestoneUris = new ArrayList<String>();
- milestones.put(currentProduct, milestoneUris);
- }
- milestoneUris.add(resourceURI);
- }
- }
- break;
- case IN_COMPONENTS | IN_LI | IN_COMPONENT | IN_FLAG_TYPES | IN_LI_LI:
- if (attributes != null) {
- String compURI = attributes.getValue(ATTRIBUTE_RESOURCE);
- if (compURI != null && currentComponent.length() > 0 && currentProduct.length() > 0
- && compURI.length() > 0) {
-
- Map<String, List<String>> flagComponentList = flagsInComponent.get(currentProduct);
- if (flagComponentList == null) {
- flagComponentList = new HashMap<String, List<String>>();
- flagsInComponent.put(currentProduct, flagComponentList);
- }
- List<String> flagsForComponent = flagComponentList.get(currentComponent);
- if (flagsForComponent == null) {
- flagsForComponent = new ArrayList<String>();
- flagComponentList.put(currentComponent, flagsForComponent);
- }
- flagsForComponent.add(compURI.replace("flags.cgi?id=", "flag.cgi?id=")); //$NON-NLS-1$ //$NON-NLS-2$
- int i = 0;
- i++;
- }
- }
- break;
- case IN_COMPONENTS | IN_LI | IN_COMPONENT:
- if (attributes != null) {
- about = attributes.getValue(ATTRIBUTE_RDF_ABOUT);
- int idx = about.indexOf("&product="); //$NON-NLS-1$
- if (idx != -1) {
- currentProduct = about.substring(idx + 9);
- }
- }
- break;
- case IN_VERSIONS | IN_LI | IN_VERSION:
- if (attributes != null) {
- about = attributes.getValue(ATTRIBUTE_RDF_ABOUT);
- }
- break;
-
- case IN_TARGET_MILESTONES | IN_LI | IN_TARGET_MILESTONE:
- if (attributes != null) {
- about = attributes.getValue(ATTRIBUTE_RDF_ABOUT);
- }
- break;
- case IN_FIELDS | IN_LI | IN_FIELD:
- if (attributes != null) {
- about = attributes.getValue(ATTRIBUTE_RDF_ABOUT);
- }
- break;
- case IN_FLAG_TYPES | IN_LI | IN_FLAG_TYPE:
- if (attributes != null) {
- about = attributes.getValue(ATTRIBUTE_RDF_ABOUT);
- }
- break;
-
- }
- }
-
- @Override
- public void endDocument() throws SAXException {
-
- for (String product : components.keySet()) {
- List<String> componentURIs = components.get(product);
- for (String uri : componentURIs) {
- String realName = componentNames.get(uri);
- if (realName != null) {
- configuration.addComponent(product, realName);
- }
- }
- }
-
- for (String product : versions.keySet()) {
- List<String> versionURIs = versions.get(product);
- for (String uri : versionURIs) {
- String realName = versionNames.get(uri);
- if (realName != null) {
- configuration.addVersion(product, realName);
- }
- }
-
- }
-
- for (String product : milestones.keySet()) {
- List<String> milestoneURIs = milestones.get(product);
- for (String uri : milestoneURIs) {
- String realName = milestoneNames.get(uri);
- if (realName != null) {
- configuration.addTargetMilestone(product, realName);
- }
- }
-
- }
-
- for (String flagProduct : flagsInComponent.keySet()) {
- Map<String, List<String>> flagComponentUsage = flagsInComponent.get(flagProduct);
- for (String flagusageList : flagComponentUsage.keySet()) {
- List<String> flagList = flagComponentUsage.get(flagusageList);
- for (String flagAbout : flagList) {
- Integer flagId = flagIds.get(flagAbout);
- BugzillaFlag flag = configuration.getFlagWithId(flagId);
- flag.addUsed(flagProduct, flagusageList);
- }
- }
- }
-
- super.endDocument();
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java
deleted file mode 100644
index 1146ee89b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parser for xml bugzilla reports.
- *
- * @author Rob Elves
- * @author Hiroyuki Inaba (internationalization)
- */
-public class SaxMultiBugReportContentHandler extends DefaultHandler {
-
- private static final String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$
-
- private static final String ID_STRING_BEGIN = " (id="; //$NON-NLS-1$
-
- private static final String ID_STRING_END = ")"; //$NON-NLS-1$
-
- private StringBuffer characters;
-
- private TaskComment taskComment;
-
- private Map<String, TaskCommentMapper> attachIdToComment = new HashMap<String, TaskCommentMapper>();
-
- private int commentNum = 0;
-
- private TaskAttachmentMapper attachment;
-
- private final Map<String, TaskData> taskDataMap;
-
- private TaskData repositoryTaskData;
-
- private List<TaskComment> longDescs;
-
- private String errorMessage = null;
-
- private final List<BugzillaCustomField> customFields;
-
- private final TaskDataCollector collector;
-
- private boolean isDeprecated = false;
-
- private boolean isPatch = false;
-
- private TaskAttribute attachmentAttribute;
-
- public SaxMultiBugReportContentHandler(TaskAttributeMapper mapper, TaskDataCollector collector,
- Map<String, TaskData> taskDataMap, List<BugzillaCustomField> customFields) {
- this.taskDataMap = taskDataMap;
- this.customFields = customFields;
- this.collector = collector;
- }
-
- public boolean errorOccurred() {
- return errorMessage != null;
- }
-
- public String getErrorMessage() {
- return errorMessage;
- }
-
- @Override
- public void characters(char[] ch, int start, int length) throws SAXException {
- characters.append(ch, start, length);
- //System.err.println(String.copyValueOf(ch, start, length));
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- characters = new StringBuffer();
- BugzillaAttribute tag = BugzillaAttribute.UNKNOWN;
- if (localName.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- return;
- }
- try {
- tag = BugzillaAttribute.valueOf(localName.trim().toUpperCase(Locale.ENGLISH));
- } catch (RuntimeException e) {
- if (e instanceof IllegalArgumentException) {
- // ignore unrecognized tags
- return;
- }
- throw e;
- }
- switch (tag) {
- case BUGZILLA:
- // Note: here we can get the bugzilla version if necessary
- break;
- case BUG:
- if (attributes != null && (attributes.getValue("error") != null)) { //$NON-NLS-1$
- errorMessage = attributes.getValue("error"); //$NON-NLS-1$
- }
- attachIdToComment = new HashMap<String, TaskCommentMapper>();
- commentNum = 0;
- taskComment = null;
- longDescs = new ArrayList<TaskComment>();
- break;
- case LONG_DESC:
- taskComment = new TaskComment(commentNum++);
- break;
- case WHO:
- if (taskComment != null) {
- if (attributes != null && attributes.getLength() > 0) {
- String name = attributes.getValue(ATTRIBUTE_NAME);
- if (name != null) {
- taskComment.authorName = name;
- }
- }
- }
- break;
- case REPORTER:
- if (attributes != null && attributes.getLength() > 0) {
- String name = attributes.getValue(ATTRIBUTE_NAME);
- if (name != null) {
- BugzillaTaskDataHandler.createAttribute(repositoryTaskData, BugzillaAttribute.REPORTER_NAME)
- .setValue(name);
- }
- }
- break;
- case QA_CONTACT:
- if (attributes != null && attributes.getLength() > 0) {
- String name = attributes.getValue(ATTRIBUTE_NAME);
- if (name != null) {
- BugzillaTaskDataHandler.createAttribute(repositoryTaskData, BugzillaAttribute.QA_CONTACT_NAME)
- .setValue(name);
- }
- }
- break;
- case ASSIGNED_TO:
- if (attributes != null && attributes.getLength() > 0) {
- String name = attributes.getValue(ATTRIBUTE_NAME);
- if (name != null) {
- BugzillaTaskDataHandler.createAttribute(repositoryTaskData, BugzillaAttribute.ASSIGNED_TO_NAME)
- .setValue(name);
- }
- }
- break;
- case ATTACHMENT:
- if (attributes != null) {
- isDeprecated = "1".equals(attributes.getValue(BugzillaAttribute.IS_OBSOLETE.getKey())); //$NON-NLS-1$
- isPatch = "1".equals(attributes.getValue(BugzillaAttribute.IS_PATCH.getKey())); //$NON-NLS-1$
- }
- break;
- case FLAG:
- if (attributes != null && attributes.getLength() > 0) {
- String name = attributes.getValue(ATTRIBUTE_NAME);
- if (name != null) {
- BugzillaFlagMapper mapper = new BugzillaFlagMapper();
- String requestee = attributes.getValue("requestee"); //$NON-NLS-1$
- mapper.setRequestee(requestee);
- String setter = attributes.getValue("setter"); //$NON-NLS-1$
- mapper.setSetter(setter);
- String status = attributes.getValue("status"); //$NON-NLS-1$
- mapper.setState(status);
- mapper.setFlagId(name);
- String id = attributes.getValue("id"); //$NON-NLS-1$
- if (id != null && !id.equals("")) { //$NON-NLS-1$
- /*
- * for version 3.2rc1 and 3.2.rc2 the id was not defined so we ignore
- * the definition
- */
- try {
- mapper.setNumber(Integer.valueOf(id));
- TaskAttribute attribute;
- if (attachmentAttribute != null) {
- attribute = attachmentAttribute.createAttribute("task.common.kind.flag" + id); //$NON-NLS-1$
- } else {
- attribute = repositoryTaskData.getRoot().createAttribute("task.common.kind.flag" + id); //$NON-NLS-1$
- }
- mapper.applyTo(attribute);
- } catch (NumberFormatException e) {
- // ignore
- }
- }
- }
- }
- break;
- }
-
- }
-
- @Override
- public void endElement(String uri, String localName, String qName) throws SAXException {
-
- //remove whitespaces from the end of the parsed Text
- while (characters.length() > 0 && Character.isWhitespace(characters.charAt(characters.length() - 1))) {
- characters.setLength(characters.length() - 1);
- }
-
- String parsedText = characters.toString();
-
- if (localName.startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- TaskAttribute endAttribute = repositoryTaskData.getRoot().getAttribute(localName);
- if (endAttribute == null) {
- String desc = "???"; //$NON-NLS-1$
- BugzillaCustomField customField = null;
- for (BugzillaCustomField bugzillaCustomField : customFields) {
- if (localName.equals(bugzillaCustomField.getName())) {
- customField = bugzillaCustomField;
- break;
- }
- }
- if (customField != null) {
- TaskAttribute atr = repositoryTaskData.getRoot().createAttribute(localName);
- desc = customField.getDescription();
- atr.getMetaData().defaults().setLabel(desc).setReadOnly(false);
- atr.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
- atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- switch (customField.getType()) {
- case 1: // Free Text
- atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- break;
- case 2: // Drop Down
- atr.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- break;
- case 3: // Multiple-Selection Box
- atr.getMetaData().setType(TaskAttribute.TYPE_MULTI_SELECT);
- break;
- case 4: // Large Text Box
- atr.getMetaData().setType(TaskAttribute.TYPE_LONG_TEXT);
- break;
- case 5: // Date/Time
- atr.getMetaData().setType(TaskAttribute.TYPE_DATETIME);
- break;
-
- default:
- List<String> options = customField.getOptions();
- if (options.size() > 0) {
- atr.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- } else {
- atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- }
- }
- atr.getMetaData().setReadOnly(false);
- atr.setValue(parsedText);
- }
- } else {
- endAttribute.addValue(parsedText);
- }
- }
-
- BugzillaAttribute tag = BugzillaAttribute.UNKNOWN;
- try {
- tag = BugzillaAttribute.valueOf(localName.trim().toUpperCase(Locale.ENGLISH));
- } catch (RuntimeException e) {
- if (e instanceof IllegalArgumentException) {
- // ignore unrecognized tags
- return;
- }
- throw e;
- }
- switch (tag) {
- case BUG_ID: {
- try {
- repositoryTaskData = taskDataMap.get(parsedText.trim());
- if (repositoryTaskData == null) {
- errorMessage = parsedText + Messages.SaxMultiBugReportContentHandler_id_not_found;
- }
- } catch (Exception e) {
- errorMessage = Messages.SaxMultiBugReportContentHandler_Bug_id_from_server_did_not_match_requested_id;
- }
-
- TaskAttribute attr = repositoryTaskData.getRoot().getMappedAttribute(tag.getKey());
- if (attr == null) {
- attr = BugzillaTaskDataHandler.createAttribute(repositoryTaskData, tag);
- }
- attr.setValue(parsedText);
-
- break;
- }
-
- // Comment attributes
- case WHO:
- if (taskComment != null) {
- taskComment.author = parsedText;
- }
- break;
- case BUG_WHEN:
- if (taskComment != null) {
- taskComment.createdTimeStamp = parsedText;
- }
- break;
- case WORK_TIME:
- if (taskComment != null) {
- taskComment.timeWorked = parsedText;
- }
- break;
- case THETEXT:
- if (taskComment != null) {
- taskComment.commentText = parsedText;
- }
- break;
- case LONG_DESC:
- if (taskComment != null) {
- longDescs.add(taskComment);
- }
- break;
-
- // Attachment attributes
- case ATTACHID:
- attachmentAttribute = repositoryTaskData.getRoot().createAttribute(
- TaskAttribute.PREFIX_ATTACHMENT + parsedText);
- attachment = TaskAttachmentMapper.createFrom(attachmentAttribute);
- attachment.setLength(new Long(-1));
- attachment.setAttachmentId(parsedText);
- attachment.setPatch(isPatch);
- attachment.setDeprecated(isDeprecated);
- break;
- case DATE:
- // ignore
- break;
- case DESC:
- if (attachment != null) {
- attachment.setDescription(parsedText);
- }
- break;
- case FILENAME:
- if (attachment != null) {
- attachment.setFileName(parsedText);
- }
- break;
- case CTYPE:
- case TYPE:
- if (attachment != null) {
- attachment.setContentType(parsedText);
- }
- break;
- case SIZE:
- if (attachment != null) {
- try {
- if (parsedText != null) {
- attachment.setLength(Long.parseLong(parsedText));
- }
- } catch (NumberFormatException e) {
- // ignore
- }
- }
- break;
- case ATTACHMENT:
- if (attachment != null) {
- attachment.applyTo(attachmentAttribute);
- }
- isPatch = false;
- isDeprecated = false;
- attachment = null;
- attachmentAttribute = null;
- break;
- case DATA:
- // ignored
- break;
- case BUGZILLA:
- // ignored
- break;
- case BUG:
- // Reached end of bug.
-
- addDescriptionAndComments();
-
- // Need to set LONGDESCLENGTH to number of comments + 1 for description
- TaskAttribute numCommentsAttribute = repositoryTaskData.getRoot().getMappedAttribute(
- BugzillaAttribute.LONGDESCLENGTH.getKey());
- if (numCommentsAttribute == null) {
- numCommentsAttribute = BugzillaTaskDataHandler.createAttribute(repositoryTaskData,
- BugzillaAttribute.LONGDESCLENGTH);
- }
-
- numCommentsAttribute.setValue("" + commentNum); //$NON-NLS-1$
-
- updateAttachmentMetaData();
- TaskAttribute attrCreation = repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.CREATION_TS.getKey());
-
- updateCustomFields(repositoryTaskData);
-
- // Guard against empty data sets
- if (attrCreation != null && !attrCreation.equals("")) { //$NON-NLS-1$
- collector.accept(repositoryTaskData);
- }
- break;
- case BLOCKED:
- // handled similarly to DEPENDSON
- case DEPENDSON:
- TaskAttribute blockOrDepends = repositoryTaskData.getRoot().getMappedAttribute(tag.getKey());
- if (blockOrDepends == null) {
- BugzillaTaskDataHandler.createAttribute(repositoryTaskData, tag).setValue(parsedText);
- } else {
- if (blockOrDepends.getValue().equals("")) { //$NON-NLS-1$
- blockOrDepends.setValue(parsedText);
- } else {
- blockOrDepends.setValue(blockOrDepends.getValue() + ", " + parsedText); //$NON-NLS-1$
- }
- }
- break;
- case UNKNOWN:
- //ignore
- break;
- case FLAG:
- //ignore
- break;
- default:
- TaskAttribute defaultAttribute = repositoryTaskData.getRoot().getMappedAttribute(tag.getKey());
- if (defaultAttribute == null) {
- defaultAttribute = BugzillaTaskDataHandler.createAttribute(repositoryTaskData, tag);
- defaultAttribute.setValue(parsedText);
- } else {
- defaultAttribute.addValue(parsedText);
- }
- break;
- }
-
- }
-
- private void updateCustomFields(TaskData taskData) {
- RepositoryConfiguration config = BugzillaCorePlugin.getRepositoryConfiguration(repositoryTaskData.getRepositoryUrl());
- if (config != null) {
- for (BugzillaCustomField bugzillaCustomField : config.getCustomFields()) {
-
- TaskAttribute atr = taskData.getRoot().getAttribute(bugzillaCustomField.getName());
- if (atr == null) {
- atr = taskData.getRoot().createAttribute(bugzillaCustomField.getName());
- }
-
- if (atr != null) {
- atr.getMetaData().defaults().setLabel(bugzillaCustomField.getDescription());
- atr.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
-
- switch (bugzillaCustomField.getType()) {
- case 1: // Free Text
- atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- break;
- case 2: // Drop Down
- atr.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- break;
- case 3: // Multiple-Selection Box
- atr.getMetaData().setType(TaskAttribute.TYPE_MULTI_SELECT);
- break;
- case 4: // Large Text Box
- atr.getMetaData().setType(TaskAttribute.TYPE_LONG_TEXT);
- break;
- case 5: // Date/Time
- atr.getMetaData().setType(TaskAttribute.TYPE_DATETIME);
- break;
-
- default:
- List<String> options = bugzillaCustomField.getOptions();
- if (options.size() > 0) {
- atr.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
- } else {
- atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
- }
- }
- atr.getMetaData().setReadOnly(false);
- }
- }
- }
-
- }
-
- private void updateAttachmentMetaData() {
- List<TaskAttribute> taskAttachments = repositoryTaskData.getAttributeMapper().getAttributesByType(
- repositoryTaskData, TaskAttribute.TYPE_ATTACHMENT);
- for (TaskAttribute attachment : taskAttachments) {
- TaskAttachmentMapper attachmentMapper = TaskAttachmentMapper.createFrom(attachment);
- TaskCommentMapper taskComment = attachIdToComment.get(attachmentMapper.getAttachmentId());
- if (taskComment != null) {
- attachmentMapper.setAuthor(taskComment.getAuthor());
- attachmentMapper.setCreationDate(taskComment.getCreationDate());
- }
- attachmentMapper.setUrl(repositoryTaskData.getRepositoryUrl()
- + IBugzillaConstants.URL_GET_ATTACHMENT_SUFFIX + attachmentMapper.getAttachmentId());
- attachmentMapper.applyTo(attachment);
- }
- }
-
- private void addDescriptionAndComments() {
- int longDescsSize = longDescs.size() - 1;
- commentNum = 1;
- if (longDescsSize == 0) {
- addDescription(longDescs.get(0).commentText);
- } else if (longDescsSize == 1) {
- if (longDescs.get(0).createdTimeStamp.compareTo(longDescs.get(1).createdTimeStamp) <= 0) {
- // if created_0 is equal to created_1 we assume that longDescs at index 0 is the description.
- addDescription(longDescs.get(0).commentText);
- addComment(longDescs.get(1));
- } else {
- addDescription(longDescs.get(1).commentText);
- addComment(longDescs.get(0));
- }
- } else if (longDescsSize > 1) {
- String created_0 = longDescs.get(0).createdTimeStamp;
- String created_1 = longDescs.get(1).createdTimeStamp;
- String created_n = longDescs.get(longDescsSize).createdTimeStamp;
- if (created_0.compareTo(created_1) <= 0 && created_0.compareTo(created_n) < 0) {
- // if created_0 is equal to created_1 we assume that longDescs at index 0 is the description.
- addDescription(longDescs.get(0).commentText);
-
- if (created_1.compareTo(created_n) < 0) {
- for (int i = 1; i <= longDescsSize; i++) {
- addComment(longDescs.get(i));
- }
- } else {
- for (int i = longDescsSize; i > 0; i--) {
- addComment(longDescs.get(i));
- }
- }
- } else {
- addDescription(longDescs.get(longDescsSize).commentText);
- if (created_0.compareTo(created_1) < 0) {
- for (int i = 0; i < longDescsSize; i++) {
- addComment(longDescs.get(i));
- }
- } else {
- for (int i = longDescsSize - 1; i >= 0; i--) {
- addComment(longDescs.get(i));
- }
- }
- }
- }
- }
-
- private void addDescription(String commentText) {
- TaskAttribute attrDescription = BugzillaTaskDataHandler.createAttribute(repositoryTaskData,
- BugzillaAttribute.LONG_DESC);
- attrDescription.setValue(commentText);
- }
-
- private void addComment(TaskComment comment) {
- TaskAttribute attribute = repositoryTaskData.getRoot().createAttribute(
- TaskAttribute.PREFIX_COMMENT + commentNum);
- TaskCommentMapper taskComment = TaskCommentMapper.createFrom(attribute);
- taskComment.setCommentId(commentNum + ""); //$NON-NLS-1$
- taskComment.setNumber(commentNum);
- IRepositoryPerson author = repositoryTaskData.getAttributeMapper().getTaskRepository().createPerson(
- comment.author);
- author.setName(comment.authorName);
- taskComment.setAuthor(author);
- TaskAttribute attrTimestamp = attribute.createAttribute(BugzillaAttribute.BUG_WHEN.getKey());
- attrTimestamp.setValue(comment.createdTimeStamp);
- taskComment.setCreationDate(repositoryTaskData.getAttributeMapper().getDateValue(attrTimestamp));
- if (comment.commentText != null) {
- String commentText = comment.commentText.trim();
- taskComment.setText(commentText);
-
- }
- taskComment.applyTo(attribute);
- commentNum++;
-
- if (comment.timeWorked != null) {
- TaskAttribute workTime = BugzillaTaskDataHandler.createAttribute(attribute, BugzillaAttribute.WORK_TIME);
- workTime.setValue(comment.timeWorked);
- }
-
- parseAttachment(taskComment);
-
- }
-
- /** determines attachment id from comment */
- private void parseAttachment(TaskCommentMapper comment) {
- String attachmentID = ""; //$NON-NLS-1$
- String commentText = comment.getText();
- int firstDelimiter = commentText.indexOf("\n"); //$NON-NLS-1$
- if (firstDelimiter < 0) {
- firstDelimiter = commentText.length();
- }
- int startIndex = commentText.indexOf(ID_STRING_BEGIN);
- if (startIndex > 0 && startIndex < firstDelimiter) {
- int endIndex = commentText.indexOf(ID_STRING_END, startIndex);
- if (endIndex > 0 && endIndex < firstDelimiter) {
- startIndex += ID_STRING_BEGIN.length();
- int p = startIndex;
- while (p < endIndex) {
- char c = commentText.charAt(p);
- if (c < '0' || c > '9') {
- break;
- }
- p++;
- }
- if (p == endIndex) {
- attachmentID = commentText.substring(startIndex, endIndex);
- if (!attachmentID.equals("")) { //$NON-NLS-1$
- attachIdToComment.put(attachmentID, comment);
- }
- }
- }
- }
- }
-
- private static class TaskComment {
-
- public int number;
-
- public String author;
-
- public String authorName;
-
- public String createdTimeStamp;
-
- public String commentText;
-
- public String timeWorked;
-
- public boolean hasAttachment;
-
- public String attachmentId;
-
- public TaskComment(int num) {
- this.number = num;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/UnrecognizedReponseException.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/UnrecognizedReponseException.java
deleted file mode 100644
index 089eaeb49..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/UnrecognizedReponseException.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.IOException;
-
-/**
- * @author Rob Elves
- */
-public class UnrecognizedReponseException extends IOException {
-
- private static final long serialVersionUID = 3937060773477757464L;
-
- public UnrecognizedReponseException(String message) {
- super(message);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java
deleted file mode 100644
index e68d290f2..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Reader;
-import java.text.ParseException;
-
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer;
-import org.eclipse.mylyn.commons.net.HtmlTag;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer.Token;
-
-/**
- * This is in place to escape & characters within the resource and rdf:about attributes. Currently the values are not
- * escaped which causes sax parser errors. This bug has been filed and can be found here:
- * https://bugzilla.mozilla.org/show_bug.cgi?id=264785
- *
- * @author Rob Elves
- */
-public class XmlCleaner {
-
- public static BufferedReader clean(Reader in, File tempFile) {
-
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(in, null);
- try {
- BufferedWriter content = new BufferedWriter(new FileWriter(tempFile));
- // Hack since HtmlStreamTokenizer not familiar with xml tag.
- content.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
-
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getAttribute("resource") != null) { //$NON-NLS-1$
- String resourceID = tag.getAttribute("resource"); //$NON-NLS-1$
- tag.setAttribute("resource", resourceID.replace("&", "&amp;")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- if (tag.getAttribute("rdf:about") != null) { //$NON-NLS-1$
- String resourceID = tag.getAttribute("rdf:about"); //$NON-NLS-1$
- tag.setAttribute("rdf:about", resourceID.replace("&", "&amp;")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- }
- if (!token.toString().startsWith("<?xml")) { //$NON-NLS-1$
- content.append(token.toString());
- }
- }
- content.flush();
- content.close();
- return new BufferedReader(new FileReader(tempFile));
- } catch (IOException e) {
-
- } catch (ParseException e) {
-
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AssignmentEvent.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AssignmentEvent.java
deleted file mode 100644
index cd4ea3d32..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AssignmentEvent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-/**
- * @author John Anvik
- */
-public class AssignmentEvent extends TaskRevision {
-
- private static final long serialVersionUID = 3258693199936631348L;
-
- private final String assigned;
-
- public AssignmentEvent(String change) {
- this.what = TaskRevision.ASSIGNMENT;
- this.assigned = change;
- this.added = change;
- }
-
- public String getAssigned() {
- return this.assigned;
- }
-
- @Override
- public String toString() {
- return this.getName() + " | " + this.getDate() + " | " + this.getWhat() + " | " + this.getRemoved() + " | " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + this.getAssigned();
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentEvent.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentEvent.java
deleted file mode 100644
index 39c790872..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentEvent.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * @author John Anvik
- */
-public class AttachmentEvent extends TaskRevision {
-
- private static final long serialVersionUID = 3258693199936631348L;
-
- private static final Pattern id = Pattern.compile("\\d+"); //$NON-NLS-1$
-
- private final int attachmentId;
-
- private final List<AttachmentFlag> flags;
-
- public AttachmentEvent(int id, List<AttachmentFlag> flags) {
- this.what = TaskRevision.ATTACHMENT;
- this.attachmentId = id;
- this.flags = flags;
- }
-
- public String getFlagsString() {
- String flagString = ""; //$NON-NLS-1$
- for (AttachmentFlag flag : this.flags) {
- flagString += flag + " "; //$NON-NLS-1$
- }
- return flagString;
- }
-
- public static int parseId(String attachment) {
- Matcher matcher = AttachmentEvent.id.matcher(attachment);
- if (matcher.find()) {
- return Integer.parseInt(matcher.group());
- }
-
- // Error situation
- System.err.println("WARNING: Cannot find attachment id in " + attachment); //$NON-NLS-1$
- return -1;
- }
-
- public static List<AttachmentFlag> parseFlags(String attachmentFlags) {
- List<AttachmentFlag> flags = new ArrayList<AttachmentFlag>();
- AttachmentFlagStatus flagStatus = AttachmentFlagStatus.UNKNOWN;
- AttachmentFlagState flagState = AttachmentFlagState.UNKNOWN;
-
- String[] flagToken = attachmentFlags.split(", "); //$NON-NLS-1$
- for (String token : flagToken) {
- if (token.indexOf("(") != -1) { //$NON-NLS-1$
- int end = token.indexOf("("); //$NON-NLS-1$
- String substr = token.substring(0, end);
- token = substr;
- }
-
- /* Handle the case of the obsolete status 'needs-work' */
- if (token.startsWith("needs-work")) { //$NON-NLS-1$
- /*
- * Since we don't know if 'needs-work' applies to 'review' or
- * 'superreview', deny both
- */
- flags.add(new AttachmentFlag(AttachmentFlagStatus.REVIEW, AttachmentFlagState.DENIED));
- flags.add(new AttachmentFlag(AttachmentFlagStatus.SUPERREVIEW, AttachmentFlagState.DENIED));
- } else {
- boolean startsWithReview = token.toLowerCase().startsWith(
- AttachmentFlagStatus.REVIEW.name().toLowerCase());
- boolean firstOrSecondReview = token.toLowerCase().contains(
- AttachmentFlagStatus.REVIEW.name().toLowerCase())
- && (token.toLowerCase().startsWith("first-") || token.toLowerCase().startsWith("second-")); //$NON-NLS-1$ //$NON-NLS-2$
- /*
- * if(firstOrSecondReview){ System.err.println("First/second
- * activated"); }
- */
- if (startsWithReview || firstOrSecondReview) {
- flagStatus = AttachmentFlagStatus.REVIEW;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.SUPERREVIEW.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.SUPERREVIEW;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.APPROVAL.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.APPROVAL;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.UI.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.UI;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.BRANCH.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.BRANCH;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.COMMITTED.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.COMMITTED;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.ACCEPTED.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.ACCEPTED;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.COMMENTED.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.COMMENTED;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.NONE.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.NONE;
- } else if (token.toLowerCase().startsWith(AttachmentFlagStatus.REJECTED.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.REJECTED;
- } else if (token.equals("1") //$NON-NLS-1$
- || token.toLowerCase().startsWith(AttachmentFlagStatus.OBSOLETE.name().toLowerCase())) {
- flagStatus = AttachmentFlagStatus.OBSOLETE;
- }
-
- // Assure that flag was set to something meaningful
- if (flagStatus.equals(AttachmentFlagStatus.UNKNOWN) && token.equals("") == false) { //$NON-NLS-1$
- System.err.println("WARNING: Attachment flag status unknown: " + token); //$NON-NLS-1$
- }
-
- if (token.length() > 0) {
- if (token.charAt(token.length() - 1) == '?') {
- flagState = AttachmentFlagState.REQUESTED;
- } else if (token.charAt(token.length() - 1) == '+') {
- flagState = AttachmentFlagState.GRANTED;
- } else if (token.charAt(token.length() - 1) == '-') {
- flagState = AttachmentFlagState.DENIED;
- } else if (flagStatus.equals(AttachmentFlagStatus.OBSOLETE)
- || flagStatus.equals(AttachmentFlagStatus.COMMITTED)
- || flagStatus.equals(AttachmentFlagStatus.ACCEPTED)
- || flagStatus.equals(AttachmentFlagStatus.COMMENTED)
- || flagStatus.equals(AttachmentFlagStatus.NONE)
- || flagStatus.equals(AttachmentFlagStatus.REJECTED)
- || flagStatus.equals(AttachmentFlagStatus.REVIEW)) {
- flagState = AttachmentFlagState.OFF;
- }
- }
- // Assure that flag state was set to something meaningful
- if (flagState.equals(AttachmentFlagState.UNKNOWN) && token.equals("") == false) { //$NON-NLS-1$
- System.err.println("WARNING: Attachment flag state unknown: " + token); //$NON-NLS-1$
- }
-
- flags.add(new AttachmentFlag(flagStatus, flagState));
- }
- }
- return flags;
- }
-
- @Override
- public String toString() {
- return this.getName() + " | " + this.getDate() + " | " + this.getWhat() + " | " + this.attachmentId + " | " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + this.getFlagsString();
- }
-
- public List<AttachmentFlag> getFlags() {
- return this.flags;
- }
-
- public int getAttachmentId() {
- return this.attachmentId;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlag.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlag.java
deleted file mode 100644
index 65a5fa52a..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlag.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-import java.io.Serializable;
-
-/**
- * @author John Anvik
- */
-public class AttachmentFlag implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- private final AttachmentFlagStatus status;
-
- private final AttachmentFlagState state;
-
- public AttachmentFlag(AttachmentFlagStatus status, AttachmentFlagState state) {
- this.status = status;
- this.state = state;
- }
-
- public AttachmentFlagState getState() {
- return this.state;
- }
-
- public AttachmentFlagStatus getStatus() {
- return this.status;
- }
-
- @Override
- public String toString() {
- return this.status.name() + "[" + (this.state.equals(AttachmentFlagState.UNKNOWN) ? "" : this.state.name()) //$NON-NLS-1$ //$NON-NLS-2$
- + "]"; //$NON-NLS-1$
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagState.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagState.java
deleted file mode 100644
index 74dc75ebb..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagState.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-/**
- * @author John Anvik
- */
-public enum AttachmentFlagState {
- OFF, GRANTED, DENIED, REQUESTED, UNKNOWN;
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagStatus.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagStatus.java
deleted file mode 100644
index 7364d4c7f..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/AttachmentFlagStatus.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-/**
- * @author John Anvik
- */
-public enum AttachmentFlagStatus {
- REVIEW /* Firefox */, SUPERREVIEW /* Firefox */, APPROVAL /* Firefox */, UI /* Firefox */, BRANCH /* Firefox */, OBSOLETE, UNKNOWN, COMMITTED /* Gnome */, ACCEPTED /* Gnome accepted-committ_now*/, COMMENTED /* Gnome */, NONE /* Gnome */, REJECTED/* Gnome */;
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/BugzillaTaskHistoryParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/BugzillaTaskHistoryParser.java
deleted file mode 100644
index 6c6e44c3c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/BugzillaTaskHistoryParser.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-/**
- * @author John Anvik
- */
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.text.ParseException;
-import java.util.Iterator;
-import java.util.Locale;
-
-import javax.security.auth.login.LoginException;
-import javax.swing.text.html.HTML.Tag;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer;
-import org.eclipse.mylyn.commons.net.HtmlTag;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer.Token;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaLanguageSettings;
-
-/**
- * Parses Bugzilla bug activity page to fill in a BugActivity object
- *
- * @author John Anvik
- */
-
-public class BugzillaTaskHistoryParser {
-
- private final InputStream inStream;
-
- private final String characterEncoding;
-
- public BugzillaTaskHistoryParser(InputStream inStream, String characterEncoding) {
- this.inStream = inStream;
- this.characterEncoding = characterEncoding;
- }
-
- /**
- * Parse the activity page for events
- *
- * @return A BugActivity object containing the activity history
- */
- public TaskHistory retrieveHistory(BugzillaLanguageSettings bugzillaLanguageSettings) throws IOException,
- ParseException, LoginException {
- TaskHistory activity = new TaskHistory();
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(new BufferedReader(new InputStreamReader(inStream,
- characterEncoding)), null);
-
- boolean isTitle = false;
- boolean possibleBadLogin = false;
- String title = ""; //$NON-NLS-1$
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- // make sure that bugzilla doesn't want us to login
- if (token.getType() == Token.TAG && ((HtmlTag) (token.getValue())).getTagType() == Tag.TITLE
- && !((HtmlTag) (token.getValue())).isEndTag()) {
- isTitle = true;
- continue;
- }
-
- if (isTitle) {
- // get all of the data from inside of the title tag
- if (token.getType() != Token.TAG) {
- title += ((StringBuffer) token.getValue()).toString().toLowerCase() + " "; //$NON-NLS-1$
- continue;
- } else if (token.getType() == Token.TAG && ((HtmlTag) token.getValue()).getTagType() == Tag.TITLE
- && ((HtmlTag) token.getValue()).isEndTag()) {
- // check if we may have a problem with login by looking
- // at
- // the title of the page
- boolean found = false;
- for (Iterator<String> iterator = bugzillaLanguageSettings.getResponseForCommand(
- BugzillaLanguageSettings.COMMAND_BAD_LOGIN).iterator(); iterator.hasNext() && !found;) {
- String value = iterator.next().toLowerCase(Locale.ENGLISH);
- found = found || title.indexOf(value) != -1;
- }
- if (found) {
- possibleBadLogin = true;
- }
- isTitle = false;
- title = ""; //$NON-NLS-1$
- }
- continue;
- }
-
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- // Skip till find <br> - "there can be only one"
- if (tag.getTagType() == Tag.BR && !tag.isEndTag()) {
- // skip tags until start of real data
- while (true) {
- token = tokenizer.nextToken();
- if (token.getType() == Token.TAG) {
- tag = (HtmlTag) token.getValue();
- if ((tag.isEndTag() && tag.getTagType() == Tag.TR) || tag.getTagType() == Tag.P) {
- break;
- }
- }
- }
- parseActivity(tokenizer, activity);
- }
- }
- }
-
- // if we don't have any keywords and suspect that there was a login
- // problem, assume we had a login problem
- if (activity.size() == 0 && possibleBadLogin) {
- throw new LoginException("Bugzilla login information incorrect"); //$NON-NLS-1$
- }
- return activity;
- }
-
- /**
- * Parse the events that have happened to the bug
- *
- * @param tokenizer
- * the token stream
- * @param activity
- * the activity object to store the events in
- * @return
- */
- private void parseActivity(HtmlStreamTokenizer tokenizer, TaskHistory activity) throws IOException, ParseException {
- HtmlTag tag;
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- tag = (HtmlTag) token.getValue();
-
- // End of events
- if (tag.getTagType() == Tag.TABLE && tag.isEndTag()) {
- break;
- }
-
- // Get event entry
- this.parseEvent(tokenizer, activity);
- }
- }
- }
-
- /**
- * Parse an activity entry
- *
- * @param tokenizer
- * the stream of tokens
- * @param activity
- * the activity object to store events in
- */
- private void parseEvent(HtmlStreamTokenizer tokenizer, TaskHistory activity) {
-
- HtmlTag tag;
- int numChanges = 0;
-
- try {
- // Discover how many changes for this entry
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.TD && tag.hasAttribute("rowspan")) { //$NON-NLS-1$
- numChanges = tag.getIntAttribute("rowspan"); //$NON-NLS-1$
- break;
- }
- }
- }
- } catch (NumberFormatException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ParseException e) {
- e.printStackTrace();
- }
-
- String name = getData(tokenizer);
- String date = getData(tokenizer);
-
- String what, removed, added;
- TaskRevision event;
- for (int change = 0; change < numChanges; change++) {
- what = getData(tokenizer);
- removed = getData(tokenizer);
- added = getData(tokenizer);
-
- event = TaskRevision.createEvent(what, added);
- event.setName(name);
- event.setDate(date);
- event.setRemoved(removed);
-
- activity.addEvent(event);
- }
- }
-
- private String getData(HtmlStreamTokenizer tokenizer) {
-
- Token token;
- HtmlTag tag;
- StringBuffer sb = new StringBuffer();
-
- try {
- for (token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.TD && tag.isEndTag()) {
- String data = StringEscapeUtils.unescapeHtml(sb.toString());
- if (data.startsWith("\n") && (data.contains("Attachment") == false)) { //$NON-NLS-1$ //$NON-NLS-2$
- data = ""; // empty field //$NON-NLS-1$
- }
- return data;
- }
- }
- if (token.getType() == Token.TEXT) {
- sb.append(token.toString());
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ParseException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/Messages.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/Messages.java
deleted file mode 100644
index ba94cbc5d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.core.history;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.core.history.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String ResolutionType_Unknown_resolution_type_X;
-
- public static String StatusType_Unknown_status_type_X;
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionEvent.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionEvent.java
deleted file mode 100644
index bc21d146a..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionEvent.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-/**
- * @author John Anvik
- */
-public class ResolutionEvent extends TaskRevision {
-
- private static final long serialVersionUID = 6609447743555687524L;
-
- private final ResolutionType type;
-
- public ResolutionEvent(ResolutionType type) {
- this.what = TaskRevision.RESOLUTION;
- this.type = type;
- }
-
- public ResolutionType getType() {
- return this.type;
- }
-
- public String getResolvedBy() {
- return this.getName();
- }
-
- @Override
- public String toString() {
- return this.getName() + " | " + this.getDate() + " | " + this.getWhat() + " | " + this.getRemoved() + " | " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + (this.getType().equals(ResolutionType.UNKNOWN) ? "" : this.getType()); //$NON-NLS-1$
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionType.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionType.java
deleted file mode 100644
index 33ff708ad..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/ResolutionType.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-import java.text.MessageFormat;
-
-/**
- * @author John Anvik
- */
-public enum ResolutionType {
-
- FIXED, DUPLICATE, WONTFIX, INVALID, WORKSFORME, REOPENED, LATER, REMIND, MOVED, UNKNOWN, NOTABUG, NOTGNOME, INCOMPLETE, OBSOLETE, EXPIRED, NOTXIMIAN, NEXTRELEASE, ERRATA, RAWHIDE, UPSTREAM, CANTFIX, CURRENTRELEASE, INSUFFICIENT_DATA, DEFERRED;
-
- public static ResolutionType convert(String change) {
- if (change.equals("FIXED")) { //$NON-NLS-1$
- return ResolutionType.FIXED;
- }
- if (change.contains("DUPLICATE")) { //$NON-NLS-1$
- return ResolutionType.DUPLICATE;
- }
- if (change.equals("INVALID")) { //$NON-NLS-1$
- return ResolutionType.INVALID;
- }
- if (change.equals("LATER")) { //$NON-NLS-1$
- return ResolutionType.LATER;
- }
- if (change.equals("WORKSFORME")) { //$NON-NLS-1$
- return ResolutionType.WORKSFORME;
- }
- if (change.equals("REOPENED")) { //$NON-NLS-1$
- return ResolutionType.REOPENED;
- }
- if (change.equals("WONTFIX")) { //$NON-NLS-1$
- return ResolutionType.WONTFIX;
- }
- if (change.equals("REMIND")) { //$NON-NLS-1$
- return ResolutionType.REMIND;
- }
- if (change.equals("MOVED")) { //$NON-NLS-1$
- return ResolutionType.MOVED;
- }
- if (change.equals("EXPIRED")) { //$NON-NLS-1$
- return ResolutionType.EXPIRED;
- }
- if (change.equals("NOTABUG")) { // Gnome //$NON-NLS-1$
- return ResolutionType.NOTABUG;
- }
- if (change.equals("NOTGNOME")) { // Gnome //$NON-NLS-1$
- return ResolutionType.NOTGNOME;
- }
- if (change.equals("INCOMPLETE")) { // Gnome //$NON-NLS-1$
- return ResolutionType.INCOMPLETE;
- }
- if (change.equals("OBSOLETE")) { // Gnome //$NON-NLS-1$
- return ResolutionType.OBSOLETE;
- }
- if (change.equals("NOTXIMIAN")) { // Gnome //$NON-NLS-1$
- return ResolutionType.NOTXIMIAN;
- }
- if (change.equals("NEXTRELEASE")) { // Redhat //$NON-NLS-1$
- return ResolutionType.NEXTRELEASE;
- }
- if (change.equals("ERRATA")) {// Redhat //$NON-NLS-1$
- return ResolutionType.ERRATA;
- }
- if (change.equals("RAWHIDE")) {// Redhat //$NON-NLS-1$
- return ResolutionType.RAWHIDE;
- }
- if (change.equals("UPSTREAM")) {// Redhat //$NON-NLS-1$
- return ResolutionType.UPSTREAM;
- }
- if (change.equals("CANTFIX")) {// Redhat //$NON-NLS-1$
- return ResolutionType.CANTFIX;
- }
- if (change.equals("CURRENTRELEASE")) {// Redhat //$NON-NLS-1$
- return ResolutionType.CURRENTRELEASE;
- }
- if (change.equals("INSUFFICIENT_DATA")) {// Redhat //$NON-NLS-1$
- return ResolutionType.INSUFFICIENT_DATA;
- }
- if (change.equals("DEFERRED")) {// Redhat //$NON-NLS-1$
- return ResolutionType.DEFERRED;
- }
- if (change.equals("") == false) { //$NON-NLS-1$
- System.err.println(MessageFormat.format(Messages.ResolutionType_Unknown_resolution_type_X, change));
- }
- return ResolutionType.UNKNOWN;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusEvent.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusEvent.java
deleted file mode 100644
index 42090350a..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusEvent.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-/**
- * @author John Anvik
- */
-public class StatusEvent extends TaskRevision {
-
- private static final long serialVersionUID = 245446279981920435L;
-
- private final StatusType type;
-
- public StatusEvent(StatusType type) {
- this.what = TaskRevision.STATUS;
- this.type = type;
- }
-
- public StatusType getType() {
- return this.type;
- }
-
- @Override
- public String toString() {
- return this.getName() + " | " + this.getDate() + " | " + this.getWhat() + " | " + this.getRemoved() + " | " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + this.getType();
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusType.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusType.java
deleted file mode 100644
index 922e642e2..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/StatusType.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-import java.text.MessageFormat;
-
-/**
- * @author John Anvik
- */
-public enum StatusType {
- VERIFIED, RESOLVED, CLOSED, REOPENED, ASSIGNED, NEW, UNCONFIRMED, NEEDINFO, /* ANT? */
- WAITING, /* GCC */
- SUSPENDED, /* GCC */
- MODIFIED, /* Redhat */
- POST, /* Redhat */
- INVESTIGATE, /* Redhat */
- PASSES_QA, /* Redhat */
- PROD_READY, /* Redhat */
- RELEASE_PENDING, /* Redhat */
- ON_QA, /* Redhat */
- QA_READY, /* Redhat */
- FAILS_QA, /* Redhat */
- SPEC, /* Redhat */
- UNKNOWN;
-
- public static StatusType convert(String change) {
- if (change.equals("RESOLVED")) { //$NON-NLS-1$
- return RESOLVED;
- }
- if (change.equals("ASSIGNED")) { //$NON-NLS-1$
- return ASSIGNED;
- }
- if (change.equals("NEW")) { //$NON-NLS-1$
- return NEW;
- }
- if (change.equals("REOPENED")) { //$NON-NLS-1$
- return REOPENED;
- }
- if (change.equals("CLOSED")) { //$NON-NLS-1$
- return CLOSED;
- }
- if (change.equals("VERIFIED")) { //$NON-NLS-1$
- return VERIFIED;
- }
- if (change.equals("UNCONFIRMED")) { //$NON-NLS-1$
- return UNCONFIRMED;
- }
- if (change.startsWith("NEEDINFO")) { //$NON-NLS-1$
- return NEEDINFO;
- }
- if (change.equals("WAITING")) { //$NON-NLS-1$
- return WAITING;
- }
- if (change.equals("SUSPENDED")) { //$NON-NLS-1$
- return SUSPENDED;
- }
- if (change.equals("MODIFIED")) { //$NON-NLS-1$
- return MODIFIED;
- }
- if (change.equals("POST")) { //$NON-NLS-1$
- return POST;
- }
- if (change.equals("INVESTIGATE")) { //$NON-NLS-1$
- return INVESTIGATE;
- }
- if (change.equals("PASSES_QA")) { //$NON-NLS-1$
- return PASSES_QA;
- }
- if (change.equals("PROD_READY")) { //$NON-NLS-1$
- return PROD_READY;
- }
- if (change.equals("RELEASE_PENDING")) { //$NON-NLS-1$
- return RELEASE_PENDING;
- }
- if (change.equals("ON_QA")) { //$NON-NLS-1$
- return ON_QA;
- }
- if (change.equals("QA_READY")) { //$NON-NLS-1$
- return QA_READY;
- }
- if (change.equals("FAILS_QA")) { //$NON-NLS-1$
- return FAILS_QA;
- }
- if (change.equals("SPEC")) { //$NON-NLS-1$
- return SPEC;
- }
- if (change.equals("") == false) { //$NON-NLS-1$
- System.err.println(MessageFormat.format(Messages.StatusType_Unknown_status_type_X, change));
- }
- return UNKNOWN;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskHistory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskHistory.java
deleted file mode 100644
index 71edf7e81..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskHistory.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * @author John Anvik
- */
-public class TaskHistory implements Iterable<TaskRevision>, Serializable {
-
- private static final long serialVersionUID = 1724420130243724426L;
-
- private final List<StatusEvent> statusEvents;
-
- private final List<ResolutionEvent> resolutionEvents;
-
- private final List<AssignmentEvent> assignmentEvents;
-
- private final List<TaskRevision> otherEvents;
-
- private final List<AttachmentEvent> attachmentEvents;
-
- public TaskHistory() {
- this.statusEvents = new ArrayList<StatusEvent>();
- this.resolutionEvents = new ArrayList<ResolutionEvent>();
- this.assignmentEvents = new ArrayList<AssignmentEvent>();
- this.attachmentEvents = new ArrayList<AttachmentEvent>();
- this.otherEvents = new ArrayList<TaskRevision>();
- }
-
- public void addEvent(TaskRevision event) {
- if (event instanceof StatusEvent) {
- this.statusEvents.add((StatusEvent) event);
- return;
- }
-
- if (event instanceof ResolutionEvent) {
- this.resolutionEvents.add((ResolutionEvent) event);
- return;
- }
-
- if (event instanceof AssignmentEvent) {
- this.assignmentEvents.add((AssignmentEvent) event);
- return;
- }
-
- if (event instanceof AttachmentEvent) {
- this.attachmentEvents.add((AttachmentEvent) event);
- return;
- }
- this.otherEvents.add(event);
- }
-
- private List<TaskRevision> getEvents() {
- List<TaskRevision> events = new ArrayList<TaskRevision>();
- events.addAll(this.statusEvents);
- events.addAll(this.resolutionEvents);
- events.addAll(this.assignmentEvents);
- events.addAll(this.attachmentEvents);
- events.addAll(this.otherEvents);
- Collections.sort(events);
- return events;
- }
-
- public Iterator<TaskRevision> iterator() {
- return getEvents().iterator();
- }
-
- public int size() {
- return this.otherEvents.size() + this.statusEvents.size() + this.resolutionEvents.size()
- + this.assignmentEvents.size();
- }
-
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- for (Object event : this) {
- sb.append(event);
- sb.append("\n"); //$NON-NLS-1$
- }
- return sb.toString();
- }
-
- public List<StatusEvent> getStatusEvents() {
- return statusEvents;
- }
-
- public List<ResolutionEvent> getResolutionEvents() {
- return resolutionEvents;
- }
-
- public List<TaskRevision> getOtherEvents() {
- return otherEvents;
- }
-
- public List<AttachmentEvent> getAttachmentEvents() {
- return attachmentEvents;
- }
-
- public List<AssignmentEvent> getAssignmentEvents() {
- return assignmentEvents;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskRevision.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskRevision.java
deleted file mode 100644
index 54ab0c4c0..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/TaskRevision.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * John Anvik - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.core.history;
-
-import java.io.Serializable;
-
-/**
- * @author John Anvik
- */
-public class TaskRevision implements Comparable<TaskRevision>, Serializable {
-
- private static final long serialVersionUID = 7739060501945994522L;
-
- protected final static String STATUS = "Status"; //$NON-NLS-1$
-
- protected final static String RESOLUTION = "Resolution"; //$NON-NLS-1$
-
- protected final static String ASSIGNMENT = "AssignedTo"; //$NON-NLS-1$
-
- protected final static String ATTACHMENT = "Attachment"; //$NON-NLS-1$
-
- protected String name;
-
- protected String date;
-
- protected String what;
-
- protected String removed;
-
- protected String added;
-
- protected TaskRevision() {
- this.added = ""; //$NON-NLS-1$
- }
-
- public static TaskRevision createEvent(String type, String change) {
- TaskRevision event = new TaskRevision();
-
- event.setWhat(type);
-
- if (STATUS.equals(type)) {
- event = new StatusEvent(StatusType.convert(change));
- }
-
- if (RESOLUTION.equals(type)) {
- event = new ResolutionEvent(ResolutionType.convert(change));
- }
-
- if (ASSIGNMENT.equals(type)) {
- event = new AssignmentEvent(change);
- }
-
- if (type.contains(ATTACHMENT) && type.contains("Flag")) { //$NON-NLS-1$
- event = new AttachmentEvent(AttachmentEvent.parseId(type), AttachmentEvent.parseFlags(change));
- }
-
- event.setAdded(change);
- return event;
- }
-
- private void setAdded(String added) {
- this.added = added;
- }
-
- public void setRemoved(String removed) {
- this.removed = removed;
- }
-
- private void setWhat(String what) {
- this.what = what;
- }
-
- public void setDate(String date) {
- this.date = date;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getAdded() {
- return this.added;
- }
-
- public String getRemoved() {
- return this.removed;
- }
-
- public String getWhat() {
- return this.what;
- }
-
- public String getDate() {
- return this.date;
- }
-
- public String getName() {
- return this.name;
- }
-
- @Override
- public String toString() {
- return this.name + " | " + this.date + " | " + this.what + " | " + this.removed + " | " + this.added; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
-
- public int compareTo(TaskRevision o) {
- return this.date.compareTo(o.getDate());
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/messages.properties b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/messages.properties
deleted file mode 100644
index 120c88ae9..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/history/messages.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-ResolutionType_Unknown_resolution_type_X=Unknown resolution type: {0}
-StatusType_Unknown_status_type_X=Unknown status type: {0}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
deleted file mode 100644
index d42a9d4de..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
+++ /dev/null
@@ -1,122 +0,0 @@
-BugzillaAttribute_Add=Add:
-BugzillaAttribute_Add_CC=Add CC:
-BugzillaAttribute_Add_self_to_CC=Add self to CC
-BugzillaAttribute_Additional_Comments=Additional Comments:
-BugzillaAttribute_Assigned_to=Assigned to:
-BugzillaAttribute_Assigned_to_NAME=Assigned to:
-BugzillaAttribute_ATTACH_ID=attachid
-BugzillaAttribute_attachment=attachment
-BugzillaAttribute_Blocks=Blocks:
-BugzillaAttribute_bug=bug
-BugzillaAttribute_Bug_ID=Bug:
-BugzillaAttribute_bug_when=bug_when
-BugzillaAttribute_bugzilla=bugzilla
-BugzillaAttribute_CC=CC:
-BugzillaAttribute_CC_List=CC List
-BugzillaAttribute_Classification=Classification:
-BugzillaAttribute_Classification_ID=Classification ID:
-BugzillaAttribute_Component=Component:
-BugzillaAttribute_Content_Type=Content Type
-BugzillaAttribute_data=data
-BugzillaAttribute_Date=Date
-BugzillaAttribute_Depends_on__Subtasks_=Depends on (Subtasks):
-BugzillaAttribute_desc=desc
-BugzillaAttribute_Description=Description:
-BugzillaAttribute_Due=Due:
-BugzillaAttribute_Estimated_Time=Estimated Time:
-BugzillaAttribute_everconfirmed=everconfirmed
-BugzillaAttribute_filename=filename
-BugzillaAttribute_flag=Flag:
-BugzillaAttribute_Group=Group
-BugzillaAttribute_Keywords=Keywords:
-BugzillaAttribute_Modified=Modified:
-BugzillaAttribute_new_comment=new comment
-BugzillaAttribute_Number_of_comments=Number of comments
-BugzillaAttribute_Obsolete=Obsolete
-BugzillaAttribute_open_status_values=open status values
-BugzillaAttribute_Opened=Opened:
-BugzillaAttribute_OS=OS:
-BugzillaAttribute_Patch=Patch
-BugzillaAttribute_Platform=Platform:
-BugzillaAttribute_Priority=Priority:
-BugzillaAttribute_Product=Product:
-BugzillaAttribute_QA_Contact=QA Contact:
-BugzillaAttribute_QA_Contact_NAME=QA Contact
-BugzillaAttribute_Reassign_to_default_assignee=Reassign to default assignee
-BugzillaAttribute_Remaining=Remaining:
-BugzillaAttribute_Remove_CC=Remove CC
-BugzillaAttribute_REPORT_ACCESSIBLE=Reporter
-BugzillaAttribute_REPORT_NAME=Reporter:
-BugzillaAttribute_Reporter=Reporter:
-BugzillaAttribute_Resolution=Resolution:
-BugzillaAttribute_Severity=Severity:
-BugzillaAttribute_Size=Size:
-BugzillaAttribute_Status=Status:
-BugzillaAttribute_Status_Whiteboard=Status Whiteboard:
-BugzillaAttribute_Summary=Summary:
-BugzillaAttribute_Target_milestone=Target milestone:
-BugzillaAttribute_thetext=thetext
-BugzillaAttribute_type=type
-BugzillaAttribute_UNKNOWN=UNKNOWN
-BugzillaAttribute_URL=URL:
-BugzillaAttribute_used_by_search_engine_bugs=used by search engine
-BugzillaAttribute_used_by_search_engine_desc=used by search engine
-BugzillaAttribute_used_by_search_engine_id=used by search engine
-BugzillaAttribute_used_by_search_engine_installation=used by search engine
-BugzillaAttribute_used_by_search_engine_li=used by search engine
-BugzillaAttribute_used_by_search_engine_rdf=used by search engine
-BugzillaAttribute_used_by_search_engine_result=used by search engine
-BugzillaAttribute_used_by_search_engine_seq=used by search engine
-BugzillaAttribute_Version=Version:
-BugzillaAttribute_version_of_bugzilla_installed=version of bugzilla installed
-BugzillaAttribute_Votes=Votes:
-BugzillaAttribute_who=who
-BugzillaAttribute_who_name=who_name
-BugzillaAttribute_Worked=Worked:
-BugzillaClient_could_not_post_form_null_returned=Could not post form, client returned null method.
-BugzillaClient_description_required_when_submitting_attachments=A description is required when submitting attachments.
-
-BugzillaOperation_Accept_to_ASSIGNED=Accept (change status to ASSIGNED)
-BugzillaOperation_Duplicate_of=Duplicate of
-BugzillaOperation_Leave_as_X_X=Leave as %s %s
-BugzillaOperation_Mark_as_CLOSED=Mark as CLOSED
-BugzillaOperation_Mark_as_VERIFIED=Mark as VERIFIED
-BugzillaOperation_Reassign_to=Reassign to
-BugzillaOperation_Reopen_bug=Reopen bug
-BugzillaOperation_Resolve_as=Resolve as
-BugzillaOperation_Reassign_to_default_assignee=Reassign to default assignee
-
-BugzillaRepositoryConnector_BUGZILLA_SUPPORTS_2_18_TO_3_0=Bugzilla (supports uncustomized 2.18-3.2)
-BugzillaRepositoryConnector_Check_repository_configuration=Check repository configuration: {0}
-BugzillaRepositoryConnector_checking_for_changed_tasks=Checking for changed tasks
-BugzillaRepositoryConnector_Query_for_changed_tasks=Query for changed tasks
-BugzillaRepositoryConnector_running_query=Running query
-BugzillaRepositoryConnector_Unrecognized_response_from_server=Unrecognized response from server
-
-BugzillaTaskAttachmentHandler_Getting_attachment=Getting attachment
-BugzillaTaskAttachmentHandler_Sending_attachment=Sending attachment
-BugzillaTaskAttachmentHandler_unable_to_submit_attachment=Unable to submit attachment
-
-BugzillaTaskDataHandler_Receiving_tasks=Receiving tasks
-BugzillaTaskDataHandler_Submitting_task=Submitting task
-BugzillaTaskDataHandler_updating_attachment=Updating Attachment
-
-IBugzillaConstants_Bugzilla_login_information_or_repository_version_incorrect=Bugzilla login information or repository version incorrect
-IBugzillaConstants_invalid_bug_id_requested_bug_id_does_not_exist=Invalid bug id. The requested bug id does not exist.
-IBugzillaConstants_invalid_repository_credentials=Invalid repository credentials.
-IBugzillaConstants_Mylyn_Bugzilla_Connector=Mylyn Bugzilla Connector
-IBugzillaConstants_New_Bugzilla_Report=New Bugzilla Report
-IBugzillaConstants_requested_operation_not_permitted=The requested operation is not permitted.
-
-SaxMultiBugReportContentHandler_Bug_id_from_server_did_not_match_requested_id=Bug id from server did not match requested id.
-SaxMultiBugReportContentHandler_id_not_found=\ id not found.
-
-BugzillaStatus_errorRepository = Repository error from {0}:\n\n{1}
-BugzillaStatus_repositoryLoginFailure = Unable to login to {0}.\n\n{1}\n\nPlease validate credentials via Task Repositories view.
-BugzillaStatus_repositoryNotFound = Repository {0} could not be found.
-BugzillaStatus_repositoryCommentRequired = You have to specify a new comment when making this change. Please comment on the reason for this change.
-BugzillaStatus_repositoryCollision = Mid-air collision occurred while submitting to {0}. Synchronize task and re-submit changes.
-### repositoryUrl, class.simpleName, class.getMessage
-BugzillaStatus_errorIo = I/O Error occurred while communicating with {0}.\n\n{1}: {2}
-BugzillaStatus_errorInternal = An internal error has occurred: {0}
-BugzillaStatus_operationCancelled = {0} was canceled by the user. \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/.classpath b/org.eclipse.mylyn.bugzilla.tests/.classpath
deleted file mode 100644
index c0275fa5b..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <accessrules>
- <accessrule kind="nonaccessible" pattern="com/sun/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.bugzilla.tests/.cvsignore b/org.eclipse.mylyn.bugzilla.tests/.cvsignore
deleted file mode 100644
index 0a2b58025..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-credentials.properties
diff --git a/org.eclipse.mylyn.bugzilla.tests/.project b/org.eclipse.mylyn.bugzilla.tests/.project
deleted file mode 100644
index eb0931c1a..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.bugzilla.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2225bfc68..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:46 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.api.tools.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index f5987fcb4..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,145 +0,0 @@
-#Tue Apr 08 17:49:50 PDT 2008
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_LEAK=Ignore
-API_PROFILE_ELEMENT_TYPE_REMOVED_API_COMPONENT=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_ADDED_FIELD=Error
-ENUM_ELEMENT_TYPE_ADDED_METHOD=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Ignore
-ILLEGAL_IMPLEMENT=Ignore
-ILLEGAL_INSTANTIATE=Ignore
-ILLEGAL_OVERRIDE=Ignore
-ILLEGAL_REFERENCE=Ignore
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 5b4f990dd..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,35 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Bugzilla Connector Tests
-Bundle-SymbolicName: org.eclipse.mylyn.bugzilla.tests
-Bundle-Version: 0.0.0
-Bundle-Activator: org.eclipse.mylyn.bugzilla.tests.BugzillaTestPlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.junit,
- org.eclipse.jface.text,
- org.eclipse.ui.ide,
- org.eclipse.ui.views,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.mylyn.bugzilla.core,
- org.eclipse.mylyn.bugzilla.ui,
- org.eclipse.mylyn.tasks.ui,
- org.eclipse.mylyn.context.tests,
- org.eclipse.mylyn.tasks.tests,
- org.eclipse.mylyn.context.core,
- org.eclipse.mylyn.tasks.core,
- org.eclipse.ui.forms,
- org.eclipse.mylyn,
- org.eclipse.search,
- org.eclipse.mylyn.commons.net,
- org.eclipse.mylyn.bugzilla.ide,
- org.eclipse.mylyn.commons.ui,
- org.eclipse.compare,
- org.eclipse.mylyn.commons.core
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Mylyn
-Bundle-ClassPath: bugzilla-test.jar
-Export-Package: org.eclipse.mylyn.bugzilla.tests;x-internal:=true,
- org.eclipse.mylyn.bugzilla.tests.headless;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.bugzilla.tests/about.html b/org.eclipse.mylyn.bugzilla.tests/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/build.properties b/org.eclipse.mylyn.bugzilla.tests/build.properties
deleted file mode 100644
index 7b9e5cce1..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2008 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
-###############################################################################
-
-bin.includes = bugzilla-test.jar,\
- META-INF/,\
- about.html,\
- testdata/
-jars.compile.order = bugzilla-test.jar
-source.bugzilla-test.jar = src/
-output.bugzilla-test.jar = bin/
-src.includes = about.html
-jre.compilation.profile = J2SE-1.5
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java
deleted file mode 100644
index 553f947f2..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AbstractBugzillaTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJob;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Nathan Hapke
- */
-public abstract class AbstractBugzillaTest extends TestCase {
-
- static final String DEFAULT_KIND = BugzillaCorePlugin.CONNECTOR_KIND;
-
- protected BugzillaRepositoryConnector connector;
-
- protected TaskRepositoryManager manager;
-
- protected TaskRepository repository;
-
- protected TaskList taskList;
-
- public AbstractBugzillaTest() {
- super();
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED, false);
- manager = TasksUiPlugin.getRepositoryManager();
- TaskTestUtil.resetTaskListAndRepositories();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- TaskTestUtil.resetTaskList();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- protected void init323() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_323_URL);
- }
-
- protected void init322() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_322_URL);
- }
-
- protected void init32() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_32_URL);
- }
-
- protected void init31() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_31_URL);
- }
-
- protected void init30() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_30_URL);
- }
-
- protected void init222() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- }
-
- protected void init2201() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_2201_URL);
- }
-
- protected void init220() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_220_URL);
- }
-
- protected void init218() {
- init(IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- }
-
- @SuppressWarnings("deprecation")
- protected void init(String url) {
- repository = new TaskRepository(DEFAULT_KIND, url);
- Credentials credentials = TestUtil.readCredentials();
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
-
- repository.setTimeZoneId("Canada/Eastern");
- assertNotNull(manager);
- manager.addRepository(repository);
-
- taskList = TasksUiPlugin.getTaskList();
-
- AbstractRepositoryConnector abstractRepositoryClient = manager.getRepositoryConnector(DEFAULT_KIND);
-
- assertEquals(abstractRepositoryClient.getConnectorKind(), DEFAULT_KIND);
-
- connector = (BugzillaRepositoryConnector) abstractRepositoryClient;
- }
-
- protected ITask generateLocalTaskAndDownload(String taskNumber) throws CoreException {
- ITask task = TasksUi.getRepositoryModel().createTask(repository, taskNumber);
- // FIXME task.setStale(true);
- TasksUiPlugin.getTaskList().addTask(task);
- TasksUiInternal.synchronizeTask(connector, task, true, null);
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- return task;
- }
-
- protected TaskDataModel createModel(ITask task) throws CoreException {
- ITaskDataWorkingCopy taskDataState = getWorkingCopy(task);
- return new TaskDataModel(repository, task, taskDataState);
- }
-
- protected ITaskDataWorkingCopy getWorkingCopy(ITask task) throws CoreException {
- return TasksUiPlugin.getTaskDataManager().getWorkingCopy(task);
- }
-
- protected void submit(TaskDataModel model) {
- SubmitJob submitJob = TasksUiInternal.getJobFactory().createSubmitTaskJob(connector, model.getTaskRepository(),
- model.getTask(), model.getTaskData(), model.getChangedOldAttributes());
- submitJob.schedule();
- try {
- submitJob.join();
- } catch (InterruptedException e) {
- fail(e.getMessage());
- }
- }
-
- protected RepositoryResponse submit(ITask task, TaskData taskData, Set<TaskAttribute> changedAttributes)
- throws CoreException {
- RepositoryResponse response = connector.getTaskDataHandler().postTaskData(repository, taskData,
- changedAttributes, new NullProgressMonitor());
- ((AbstractTask) task).setSubmitting(true);
- return response;
- }
-
- protected void synchAndAssertState(Set<ITask> tasks, SynchronizationState state) {
- for (ITask task : tasks) {
- TasksUiInternal.synchronizeTask(connector, task, true, null);
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- assertEquals(task.getSynchronizationState(), state);
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaTests.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaTests.java
deleted file mode 100644
index 455c82ebd..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/AllBugzillaTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.mylyn.bugzilla.tests.headless.BugzillaQueryTest;
-import org.eclipse.mylyn.bugzilla.tests.headless.BugzillaTaskHistoryTest;
-
-/**
- * @author Mik Kersten
- */
-public class AllBugzillaTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Tests for org.eclipse.mylyn.bugzilla.tests");
- suite.addTestSuite(RepositoryTaskHandleTest.class);
- suite.addTestSuite(BugzillaTaskCompletionTest.class);
- suite.addTestSuite(BugzillaTaskDataHandlerTest.class);
- suite.addTestSuite(TaskListStandaloneTest.class);
- suite.addTestSuite(BugzillaTaskListTest.class);
- suite.addTestSuite(TaskEditorTest.class);
- suite.addTestSuite(BugzillaQueryTest.class);
- suite.addTestSuite(RepositoryEditorWizardTest.class);
- suite.addTestSuite(RepositoryReportFactoryTest.class);
- suite.addTestSuite(BugzillaConfigurationTest.class);
- suite.addTestSuite(BugzillaTaskHyperlinkDetectorTest.class);
- suite.addTestSuite(BugzillaSearchTest.class);
- suite.addTestSuite(BugzillaRepositoryConnectorTest.class);
- suite.addTestSuite(EncodingTest.class);
- suite.addTestSuite(BugzillaProductParserTest.class);
- suite.addTestSuite(BugzillaSearchDialogTest.class);
- suite.addTestSuite(BugzillaTaskHistoryTest.class);
- suite.addTestSuite(BugzillaRepository32Test.class);
- suite.addTestSuite(BugzillaVersionTest.class);
- return suite;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java
deleted file mode 100644
index 3a8574ff9..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClientManager;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.internal.bugzilla.core.SaxConfigurationContentHandler;
-import org.eclipse.mylyn.internal.bugzilla.core.XmlCleaner;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-public class BugzillaConfigurationTest extends TestCase {
-
- BugzillaClientManager bugzillaClientManager = new BugzillaClientManager();
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- private BugzillaClient createClient(String hostUrl, String username, String password, String htAuthUser,
- String htAuthPass, String encoding) throws MalformedURLException, CoreException {
- TaskRepository taskRepository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, hostUrl);
-
- AuthenticationCredentials credentials = new AuthenticationCredentials(username, password);
- taskRepository.setCredentials(AuthenticationType.REPOSITORY, credentials, false);
-
- AuthenticationCredentials webCredentials = new AuthenticationCredentials(htAuthUser, htAuthPass);
- taskRepository.setCredentials(AuthenticationType.HTTP, webCredentials, false);
- taskRepository.setCharacterEncoding(encoding);
- return bugzillaClientManager.getClient(taskRepository, null);
- }
-
- public void test222RDFProductConfig() throws Exception {
-
- BugzillaClient client = createClient(IBugzillaTestConstants.TEST_BUGZILLA_222_URL, "", "", "", "", "UTF-8");
- RepositoryConfiguration config = client.getRepositoryConfiguration();
- assertNotNull(config);
- assertEquals("2.22.1", config.getInstallVersion().toString());
- assertEquals(7, config.getStatusValues().size());
- assertEquals(8, config.getResolutions().size());
- assertEquals(4, config.getPlatforms().size());
- assertEquals(6, config.getOSs().size());
- assertEquals(5, config.getPriorities().size());
- assertEquals(7, config.getSeverities().size());
- assertEquals(3, config.getProducts().size());
- assertEquals(4, config.getOpenStatusValues().size());
- assertEquals(1, config.getComponents("TestProduct").size());
- assertEquals(1, config.getVersions("TestProduct").size());
- assertEquals(0, config.getTargetMilestones("TestProduct").size());
- }
-
- public void test2201RDFProductConfig() throws Exception {
- BugzillaClient client = createClient(IBugzillaTestConstants.TEST_BUGZILLA_2201_URL, "", "", "", "", "UTF-8");
- RepositoryConfiguration config = client.getRepositoryConfiguration();
- assertNotNull(config);
- assertEquals("2.20.1", config.getInstallVersion().toString().toString());
- assertEquals(7, config.getStatusValues().size());
- assertEquals(8, config.getResolutions().size());
- assertEquals(4, config.getPlatforms().size());
- assertEquals(5, config.getOSs().size());
- assertEquals(5, config.getPriorities().size());
- assertEquals(7, config.getSeverities().size());
- assertEquals(1, config.getProducts().size());
- assertEquals(4, config.getOpenStatusValues().size());
- assertEquals(2, config.getComponents("TestProduct").size());
- assertEquals(1, config.getVersions("TestProduct").size());
- // assertEquals(1, config.getTargetMilestones("TestProduct").size());
- }
-
- public void test220RDFProductConfig() throws Exception {
- BugzillaClient client = createClient(IBugzillaTestConstants.TEST_BUGZILLA_220_URL, "", "", "", "", "UTF-8");
- RepositoryConfiguration config = client.getRepositoryConfiguration();
- assertNotNull(config);
- assertEquals("2.20.3", config.getInstallVersion().toString());
- assertEquals(7, config.getStatusValues().size());
- assertEquals(8, config.getResolutions().size());
- assertEquals(4, config.getPlatforms().size());
- assertEquals(5, config.getOSs().size());
- assertEquals(5, config.getPriorities().size());
- assertEquals(7, config.getSeverities().size());
- assertEquals(2, config.getProducts().size());
- assertEquals(4, config.getOpenStatusValues().size());
- assertEquals(2, config.getComponents("TestProduct").size());
- assertEquals(1, config.getVersions("TestProduct").size());
- // assertEquals(1, config.getTargetMilestones("TestProduct").size());
- }
-
- public void test218RDFProductConfig() throws Exception {
- BugzillaClient client = createClient(IBugzillaTestConstants.TEST_BUGZILLA_218_URL, "", "", "", "", "UTF-8");
- RepositoryConfiguration config = client.getRepositoryConfiguration();
- assertNotNull(config);
- assertEquals("2.18.6", config.getInstallVersion().toString());
- assertEquals(7, config.getStatusValues().size());
- assertEquals(8, config.getResolutions().size());
- assertEquals(8, config.getPlatforms().size());
- assertEquals(36, config.getOSs().size());
- assertEquals(5, config.getPriorities().size());
- assertEquals(7, config.getSeverities().size());
- assertEquals(1, config.getProducts().size());
- assertEquals(4, config.getOpenStatusValues().size());
- assertEquals(1, config.getComponents("TestProduct").size());
- assertEquals(1, config.getVersions("TestProduct").size());
- // assertEquals(1, config.getTargetMilestones("TestProduct").size());
- }
-
- public void testEclipseRDFProductConfig() throws Exception {
- BugzillaClient client = createClient(IBugzillaConstants.ECLIPSE_BUGZILLA_URL, "", "", "", "", "UTF-8");
- RepositoryConfiguration config = client.getRepositoryConfiguration();
- assertNotNull(config);
- assertEquals("3.0.4", config.getInstallVersion().toString());
- assertEquals(7, config.getStatusValues().size());
- assertEquals(9, config.getResolutions().size());
- assertEquals(6, config.getPlatforms().size());
- assertEquals(31, config.getOSs().size());
- assertEquals(5, config.getPriorities().size());
- assertEquals(7, config.getSeverities().size());
- assertTrue(config.getProducts().size() > 50);
- assertEquals(4, config.getOpenStatusValues().size());
- assertEquals(14, config.getComponents("Mylyn").size());
- assertEquals(27, config.getKeywords().size());
- // assertEquals(10, config.getComponents("Hyades").size());
- // assertEquals(1, config.getTargetMilestones("TestProduct").size());
- }
-
- public void testRepositoryConfigurationCachePersistance() throws Exception {
- RepositoryConfiguration configuration1 = new RepositoryConfiguration();
- configuration1.setRepositoryUrl("url1");
- configuration1.addProduct("Test Product 1");
- assertEquals(1, configuration1.getProducts().size());
-
- RepositoryConfiguration configuration2 = new RepositoryConfiguration();
- configuration1.setRepositoryUrl("url2");
- configuration2.addProduct("Test Product 2");
- assertEquals(1, configuration2.getProducts().size());
-
- BugzillaCorePlugin.addRepositoryConfiguration(configuration1);
- BugzillaCorePlugin.addRepositoryConfiguration(configuration2);
- BugzillaCorePlugin.writeRepositoryConfigFile();
- assertNotNull(BugzillaCorePlugin.getRepositoryConfiguration(configuration1.getRepositoryUrl()));
- assertNotNull(BugzillaCorePlugin.getRepositoryConfiguration(configuration2.getRepositoryUrl()));
- BugzillaCorePlugin.removeConfiguration(configuration1);
- BugzillaCorePlugin.removeConfiguration(configuration2);
- assertNull(BugzillaCorePlugin.getRepositoryConfiguration(configuration1.getRepositoryUrl()));
- assertNull(BugzillaCorePlugin.getRepositoryConfiguration(configuration2.getRepositoryUrl()));
- BugzillaCorePlugin.readRepositoryConfigurationFile();
- assertNotNull(BugzillaCorePlugin.getRepositoryConfiguration(configuration1.getRepositoryUrl()));
- assertNotNull(BugzillaCorePlugin.getRepositoryConfiguration(configuration2.getRepositoryUrl()));
- RepositoryConfiguration testLoadedConfig = BugzillaCorePlugin.getRepositoryConfiguration(configuration1.getRepositoryUrl());
- assertEquals(1, testLoadedConfig.getProducts().size());
- assertEquals(configuration1.getProducts().get(0), testLoadedConfig.getProducts().get(0));
- }
-
-// @SuppressWarnings("deprecation")
-// public void testHtmlCleaner() throws IOException, BugzillaException, GeneralSecurityException {
-// StringBuffer incoming = new StringBuffer();
-// incoming.append("<RDF xmlns=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#");
-// incoming.append("xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#");
-// incoming.append("xmlns:bz=\"http://www.bugzilla.org/rdf#\">");
-// incoming.append("<li>");
-// incoming.append("<bz:product
-// incoming.append("</bz:product>");
-// incoming.append("</li>");
-// incoming.append("</RDF>");
-//
-// StringBuffer result = XmlCleaner.clean(new StringReader(incoming.toString()));
-// }
-
- /**
- * Can use this to test config data submitted by users. Be sure not to commit user's config file though. The file
- * included (rdfconfig218.txt) is from mylyn.eclipse.org/bugs218
- */
- public void testRepositoryConfigurationFromFile() throws Exception {
-
- URL entryURL = BugzillaTestPlugin.getDefault().getBundle().getEntry("testdata/configuration/rdfconfig218.txt");
- assertNotNull(entryURL);
- URL fileURL = FileLocator.toFileURL(entryURL);
- assertNotNull(fileURL);
-
- BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileURL.getFile())));
-
- if (true) {
- File tempFile = File.createTempFile("XmlCleaner-", "tmp");
- tempFile.deleteOnExit();
- in = XmlCleaner.clean(in, tempFile);
- if (tempFile != null) {
- tempFile.delete();
- }
-
- }
-
- SaxConfigurationContentHandler contentHandler = new SaxConfigurationContentHandler();
- final XMLReader reader = XMLReaderFactory.createXMLReader();
- reader.setContentHandler(contentHandler);
- reader.setErrorHandler(new ErrorHandler() {
-
- public void error(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void fatalError(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void warning(SAXParseException exception) throws SAXException {
- throw exception;
- }
- });
- reader.parse(new InputSource(in));
-
- RepositoryConfiguration config = contentHandler.getConfiguration();
- assertNotNull(config);
-
- assertTrue(config.getProducts().contains(
- "Test-Long-Named-Product-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
-
- // Add your additional checking for valid data here if necessary
-
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaProductParserTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaProductParserTest.java
deleted file mode 100644
index 590b89316..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaProductParserTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * Tests for parsing Product Page for new Bugzilla reports
- *
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class BugzillaProductParserTest extends TestCase {
-
- private TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public BugzillaProductParserTest(String arg0) {
- super(arg0);
- }
-
- private TaskRepository setRepository(String url) {
- repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, url);
- Credentials credentials = TestUtil.readCredentials();
- repository.setAuthenticationCredentials(credentials.username, credentials.password);
- return repository;
- }
-
- public void test222Products() throws Exception {
- setRepository(IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- List<String> productList = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, null).getProducts();
- Iterator<String> itr = productList.iterator();
- assertTrue(itr.hasNext());
- assertEquals("Read Only Test Cases", itr.next());
- }
-
- public void test2201Products() throws Exception {
- setRepository(IBugzillaTestConstants.TEST_BUGZILLA_2201_URL);
- List<String> productList = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, null).getProducts();
- Iterator<String> itr = productList.iterator();
- assertTrue(itr.hasNext());
- assertEquals("TestProduct", "TestProduct", itr.next());
-
- }
-
- public void test220Products() throws Exception {
- setRepository(IBugzillaTestConstants.TEST_BUGZILLA_220_URL);
- List<String> productList = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, null).getProducts();
- assertEquals(2, productList.size());
- assertTrue(productList.contains("TestProduct"));
- assertTrue(productList.contains("Widget"));
-
- }
-
- public void test218Products() throws Exception {
- setRepository(IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- List<String> productList = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, null).getProducts();
- assertEquals(1, productList.size());
- assertTrue(productList.contains("TestProduct"));
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepository32Test.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepository32Test.java
deleted file mode 100644
index 45005db04..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepository32Test.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.lang.reflect.Method;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.core.CoreUtil;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.sync.SubmitTaskJob;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJob;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-public class BugzillaRepository32Test extends AbstractBugzillaTest {
-
- public void testBugUpdate() throws Exception {
- init323();
- String taskNumber = "1";
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- String tokenValue = task.getAttribute("token");
- assertNotNull(tokenValue);
- TaskData taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- assertEquals(tokenValue, taskData.getRoot().getAttribute("token").getValue());
-
- //remove the token (i.e. unpatched Bugzilla 3.2.2)
- taskData.getRoot().removeAttribute("token");
-
- TaskAttribute attrPriority = taskData.getRoot().getAttribute("priority");
- boolean p1 = false;
- if (attrPriority.getValue().equals("P1")) {
- p1 = true;
- attrPriority.setValue("P2");
- } else {
- attrPriority.setValue("P1");
- }
-
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(attrPriority);
- submit(task, taskData, changed);
-
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- assertEquals(!p1, task.getPriority().equals("P1"));
-
- }
-
- public void testSecondSubmit() throws Exception {
- init322();
- String taskNumber = "1";
- assertTrue(CoreUtil.TEST_MODE);
- RepositoryQuery query = new RepositoryQuery("bugzilla", "blah");
- query.setRepositoryUrl(IBugzillaTestConstants.TEST_BUGZILLA_322_URL);
- query.setUrl("?short_desc_type=allwordssubstr&short_desc=&product=TestProduct&long_desc_type=allwordssubstr&long_desc=&order=Importance&ctype=rdf");
- TasksUiInternal.getTaskList().addQuery(query);
- TasksUiInternal.synchronizeQuery(connector, query, null, true);
-
- ITask task = TasksUiInternal.getTask(IBugzillaTestConstants.TEST_BUGZILLA_322_URL, taskNumber, "");
- assertNotNull(task);
- ITaskDataWorkingCopy taskDataState = TasksUi.getTaskDataManager().getWorkingCopy(task);//TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskDataState);
- TaskDataModel model = new TaskDataModel(repository, task, taskDataState);
-
- TaskData taskData = model.getTaskData();
- //remove the token (i.e. unpatched Bugzilla 3.2.2)
- //taskData.getRoot().removeAttribute("token");
-
- TaskAttribute attrPriority = taskData.getRoot().getAttribute("priority");
- boolean p1 = false;
- if (attrPriority.getValue().equals("P1")) {
- p1 = true;
- attrPriority.setValue("P2");
- } else {
- attrPriority.setValue("P1");
- }
-
- model.attributeChanged(attrPriority);
- model.save(new NullProgressMonitor());
- submit(task, model);
-
- TasksUiInternal.synchronizeRepository(repository, false);
-
- task = TasksUiPlugin.getTaskList().getTask(IBugzillaTestConstants.TEST_BUGZILLA_322_URL, taskNumber);
- assertNotNull(task);
- assertEquals(!p1, task.getPriority().equals("P1"));
-
- // Attempt 2
-
- taskDataState = TasksUi.getTaskDataManager().getWorkingCopy(task);//TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskDataState);
- model = new TaskDataModel(repository, task, taskDataState);
-
- taskData = model.getTaskData();
- //remove the token (i.e. unpatched Bugzilla 3.2.2)
- //taskData.getRoot().removeAttribute("token");
-
- attrPriority = taskData.getRoot().getAttribute("priority");
- p1 = false;
- if (attrPriority.getValue().equals("P1")) {
- p1 = true;
- attrPriority.setValue("P2");
- } else {
- attrPriority.setValue("P1");
- }
-
- model.attributeChanged(attrPriority);
- model.save(new NullProgressMonitor());
- connector.getClientManager().repositoryRemoved(repository);
- submit(task, model);
-
- TasksUiInternal.synchronizeRepository(repository, false);
-
- task = TasksUiPlugin.getTaskList().getTask(IBugzillaTestConstants.TEST_BUGZILLA_322_URL, taskNumber);
- assertNotNull(task);
- assertEquals(!p1, task.getPriority().equals("P1"));
-
- }
-
- @Override
- protected RepositoryResponse submit(ITask task, TaskData taskData, Set<TaskAttribute> changedAttributes)
- throws CoreException {
-
- RepositoryResponse response = connector.getTaskDataHandler().postTaskData(repository, taskData,
- changedAttributes, new NullProgressMonitor());
- ((AbstractTask) task).setSubmitting(true);
- return response;
- }
-
- protected void submit(ITask task, TaskDataModel model) throws Exception {
-
- SubmitJob submitJob = TasksUiInternal.getJobFactory().createSubmitTaskJob(connector, model.getTaskRepository(),
- task, model.getTaskData(), model.getChangedOldAttributes());
- Method runMethod = SubmitTaskJob.class.getDeclaredMethod("run", IProgressMonitor.class);
- runMethod.setAccessible(true);
- runMethod.invoke(submitJob, new NullProgressMonitor());
-
- }
-
- @SuppressWarnings("null")
- public void testFlags() throws Exception {
- init32();
- String taskNumber = "10";
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskData taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- Collection<TaskAttribute> a = taskData.getRoot().getAttributes().values();
- TaskAttribute flagA = null;
- TaskAttribute flagB = null;
- TaskAttribute flagC = null;
- TaskAttribute flagD = null;
- TaskAttribute stateA = null;
- TaskAttribute stateB = null;
- TaskAttribute stateC = null;
- TaskAttribute stateD = null;
- for (TaskAttribute taskAttribute : a) {
- if (taskAttribute.getId().startsWith("task.common.kind.flag")) {
- TaskAttribute state = taskAttribute.getAttribute("state");
- if (state.getMetaData().getLabel().equals("FLAG_A")) {
- flagA = taskAttribute;
- stateA = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_B")) {
- flagB = taskAttribute;
- stateB = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_C")) {
- flagC = taskAttribute;
- stateC = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_D")) {
- flagD = taskAttribute;
- stateD = state;
- }
- }
- }
- assertNotNull(flagA);
- assertNotNull(flagB);
- assertNotNull(flagC);
- assertNotNull(flagD);
- assertNotNull(stateA);
- assertNotNull(stateB);
- assertNotNull(stateC);
- assertNotNull(stateD);
- assertEquals("flagA is set(wrong precondidion)", " ", stateA.getValue());
- assertEquals("flagB is set(wrong precondidion)", " ", stateB.getValue());
- assertEquals("flagC is set(wrong precondidion)", " ", stateC.getValue());
- assertEquals("flagD is set(wrong precondidion)", " ", stateD.getValue());
- assertEquals("task.common.kind.flag_type1", flagA.getId());
- assertEquals("task.common.kind.flag_type2", flagB.getId());
- assertEquals("task.common.kind.flag_type3", flagC.getId());
- assertEquals("task.common.kind.flag_type4", flagD.getId());
- Map<String, String> optionA = stateA.getOptions();
- Map<String, String> optionB = stateB.getOptions();
- Map<String, String> optionC = stateC.getOptions();
- Map<String, String> optionD = stateD.getOptions();
- assertEquals(true, optionA.containsKey(""));
- assertEquals(false, optionA.containsKey("?"));
- assertEquals(true, optionA.containsKey("+"));
- assertEquals(true, optionA.containsKey("-"));
- assertEquals(true, optionB.containsKey(""));
- assertEquals(true, optionB.containsKey("?"));
- assertEquals(true, optionB.containsKey("+"));
- assertEquals(true, optionB.containsKey("-"));
- assertEquals(true, optionC.containsKey(""));
- assertEquals(true, optionC.containsKey("?"));
- assertEquals(true, optionC.containsKey("+"));
- assertEquals(true, optionC.containsKey("-"));
- assertEquals(true, optionD.containsKey(""));
- assertEquals(true, optionD.containsKey("?"));
- assertEquals(true, optionD.containsKey("+"));
- assertEquals(true, optionD.containsKey("-"));
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- stateA.setValue("+");
- stateB.setValue("?");
- stateC.setValue("?");
- stateD.setValue("?");
- TaskAttribute requesteeD = flagD.getAttribute("requestee");
- requesteeD.setValue("rob.elves@eclipse.org");
- changed.add(flagA);
- changed.add(flagB);
- changed.add(flagC);
- changed.add(flagD);
-
- submit(task, taskData, changed);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- a = taskData.getRoot().getAttributes().values();
- flagA = null;
- flagB = null;
- flagC = null;
- TaskAttribute flagC2 = null;
- flagD = null;
- stateA = null;
- stateB = null;
- stateC = null;
- TaskAttribute stateC2 = null;
- stateD = null;
- for (TaskAttribute taskAttribute : a) {
- if (taskAttribute.getId().startsWith("task.common.kind.flag")) {
- TaskAttribute state = taskAttribute.getAttribute("state");
- if (state.getMetaData().getLabel().equals("FLAG_A")) {
- flagA = taskAttribute;
- stateA = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_B")) {
- flagB = taskAttribute;
- stateB = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_C")) {
- if (flagC == null) {
- flagC = taskAttribute;
- stateC = state;
- } else {
- flagC2 = taskAttribute;
- stateC2 = state;
- }
- } else if (state.getMetaData().getLabel().equals("FLAG_D")) {
- flagD = taskAttribute;
- stateD = state;
- }
- }
- }
- assertNotNull(flagA);
- assertNotNull(flagB);
- assertNotNull(flagC);
- assertNotNull(flagC2);
- assertNotNull(flagD);
- assertNotNull(stateA);
- assertNotNull(stateB);
- assertNotNull(stateC);
- assertNotNull(stateC2);
- assertNotNull(stateD);
- assertEquals("+", stateA.getValue());
- assertEquals("?", stateB.getValue());
- assertEquals("?", stateC.getValue());
- assertEquals(" ", stateC2.getValue());
- assertEquals("?", stateD.getValue());
- requesteeD = flagD.getAttribute("requestee");
- assertNotNull(requesteeD);
- assertEquals("rob.elves@eclipse.org", requesteeD.getValue());
- stateA.setValue(" ");
- stateB.setValue(" ");
- stateC.setValue(" ");
- stateD.setValue(" ");
- changed.add(flagA);
- changed.add(flagB);
- changed.add(flagC);
- changed.add(flagD);
-
- submit(task, taskData, changed);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- a = taskData.getRoot().getAttributes().values();
- flagA = null;
- flagB = null;
- flagC = null;
- flagC2 = null;
- flagD = null;
- stateA = null;
- stateB = null;
- stateC = null;
- stateC2 = null;
- stateD = null;
- for (TaskAttribute taskAttribute : a) {
- if (taskAttribute.getId().startsWith("task.common.kind.flag")) {
- TaskAttribute state = taskAttribute.getAttribute("state");
- if (state.getMetaData().getLabel().equals("FLAG_A")) {
- flagA = taskAttribute;
- stateA = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_B")) {
- flagB = taskAttribute;
- stateB = state;
- } else if (state.getMetaData().getLabel().equals("FLAG_C")) {
- if (flagC == null) {
- flagC = taskAttribute;
- stateC = state;
- } else {
- flagC2 = taskAttribute;
- stateC2 = state;
- }
- } else if (state.getMetaData().getLabel().equals("FLAG_D")) {
- flagD = taskAttribute;
- stateD = state;
- }
- }
- }
- assertNotNull(flagA);
- assertNotNull(flagB);
- assertNotNull(flagC);
- assertNull(flagC2);
- assertNotNull(flagD);
- assertNotNull(stateA);
- assertNotNull(stateB);
- assertNotNull(stateC);
- assertNull(stateC2);
- assertNotNull(stateD);
- assertEquals(" ", stateA.getValue());
- assertEquals(" ", stateB.getValue());
- assertEquals(" ", stateC.getValue());
- assertEquals(" ", stateD.getValue());
- requesteeD = flagD.getAttribute("requestee");
- assertNotNull(requesteeD);
- assertEquals("", requesteeD.getValue());
- }
-
- public void testCustomAttributes() throws Exception {
- init32();
- String taskNumber = "1";
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskData taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- TaskMapper mapper = new TaskMapper(taskData);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- assertEquals(taskNumber, taskData.getTaskId());
-
- SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- assertEquals(format1.parse("2008-10-04 15:01"), mapper.getCreationDate());
-
- AuthenticationCredentials credentials = repository.getCredentials(AuthenticationType.REPOSITORY);
- assertNotNull("credentials are null", credentials);
- assertNotNull("Repositor User not set", credentials.getUserName());
- assertNotNull("no password for Repository", credentials.getPassword());
-
- TaskAttribute colorAttribute = mapper.getTaskData().getRoot().getAttribute("cf_colors");
- assertNotNull("TaskAttribute Color did not exists", colorAttribute);
- List<String> theColors = colorAttribute.getValues();
- assertNotNull(theColors);
- assertFalse("no colors set", theColors.isEmpty());
-
- boolean red = false;
- boolean green = false;
- boolean yellow = false;
- boolean blue = false;
-
- for (Object element : theColors) {
- String string = (String) element;
-
- if (!red && string.compareTo("Red") == 0) {
- red = true;
- } else if (!green && string.compareTo("Green") == 0) {
- green = true;
- } else if (!yellow && string.compareTo("Yellow") == 0) {
- yellow = true;
- } else if (!blue && string.compareTo("Blue") == 0) {
- blue = true;
- }
- }
- changeCollorAndSubmit(task, taskData, colorAttribute, red, green, yellow, blue);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- TasksUiInternal.synchronizeTask(connector, task, true, null);
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- assertNotNull(task);
- taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
- colorAttribute = mapper.getTaskData().getRoot().getAttribute("cf_colors");
- assertNotNull("TaskAttribute Color did not exists", colorAttribute);
- theColors = colorAttribute.getValues();
- assertNotNull(theColors);
- assertFalse("no colors set", theColors.isEmpty());
- boolean red_new = false;
- boolean green_new = false;
- boolean yellow_new = false;
- boolean blue_new = false;
-
- for (Object element : theColors) {
- String string = (String) element;
-
- if (!red_new && string.compareTo("Red") == 0) {
- red_new = true;
- } else if (!green_new && string.compareTo("Green") == 0) {
- green_new = true;
- } else if (!yellow_new && string.compareTo("Yellow") == 0) {
- yellow_new = true;
- } else if (!blue_new && string.compareTo("Blue") == 0) {
- blue_new = true;
- }
- }
- assertTrue("wrong change",
- (!red && green && !yellow && !blue && red_new && green_new && !yellow_new && !blue_new)
- || (red && green && !yellow && !blue && !red_new && green_new && !yellow_new && !blue_new));
- changeCollorAndSubmit(task, taskData, colorAttribute, red_new, green_new, yellow_new, blue_new);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
- }
-
- private void changeCollorAndSubmit(ITask task, TaskData taskData, TaskAttribute colorAttribute, boolean red,
- boolean green, boolean yellow, boolean blue) throws CoreException {
- if (!red && green && !yellow && !blue) {
- List<String> newValue = new ArrayList<String>(2);
- newValue.add("Red");
- newValue.add("Green");
- colorAttribute.setValues(newValue);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(colorAttribute);
- // Submit changes
- submit(task, taskData, changed);
- } else if (red && green && !yellow && !blue) {
- List<String> newValue = new ArrayList<String>(2);
- newValue.add("Green");
- colorAttribute.setValues(newValue);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(colorAttribute);
- // Submit changes
- submit(task, taskData, changed);
- }
-
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java
deleted file mode 100644
index 824102008..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java
+++ /dev/null
@@ -1,1208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaOperation;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskAttachment;
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.core.sync.SynchronizationSession;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.search.RepositorySearchResult;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchHitCollector;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskOperation;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-
-/**
- * @author Rob Elves
- * @author Frank Becker
- */
-public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest {
-
- public void testBugWithoutDescription218() throws Exception {
- init218();
- doBugWithoutDescription("57");
- }
-
- public void testBugWithoutDescription222() throws Exception {
- init222();
- doBugWithoutDescription("391");
- }
-
- public void testBugWithoutDescription32() throws Exception {
- init32();
- doBugWithoutDescription("293");
- }
-
- private void doBugWithoutDescription(String taskNumber) throws CoreException {
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- int numComment = taskData.getAttributeMapper().getAttributesByType(taskData, TaskAttribute.TYPE_COMMENT).size();
-
- String newCommentText = "new Comment for Bug Without an Description " + (new Date()).toString();
- TaskAttribute comment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- comment.setValue(newCommentText);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(comment);
-
- // Submit changes
- submit(task, taskData, changed);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- int numCommentNew = taskData.getAttributeMapper()
- .getAttributesByType(taskData, TaskAttribute.TYPE_COMMENT)
- .size();
- assertEquals(numComment + 1, numCommentNew);
- }
-
-//testReassign Bugs
-//Version BugNum assigned reporter
-//2.22 92 user@mylar.eclipse.org tests@mylar.eclipse.org
-//3.0 5 tests@mylar.eclipse.org tests2@mylar.eclipse.org
-//3.1 1 rob.elves@eclipse.org tests@mylar.eclipse.org
-
- public void testObsoleteAttachment222() throws Exception {
- init222();
- doObsoleteAttachment("81");
- }
-
- public void testObsoleteAttachment32() throws Exception {
- init32();
- doObsoleteAttachment("2");
- }
-
- private void doObsoleteAttachment(String taskNumber) throws CoreException {
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- TaskAttribute attachment = taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT).get(0);
- assertNotNull(attachment);
- TaskAttribute obsolete = attachment.getMappedAttribute(TaskAttribute.ATTACHMENT_IS_DEPRECATED);
- assertNotNull(obsolete);
- boolean oldObsoleteOn = obsolete.getValue().equals("1");
- if (oldObsoleteOn) {
- obsolete.setValue("0"); //$NON-NLS-1$
- } else {
- obsolete.setValue("1"); //$NON-NLS-1$
- }
- ((BugzillaTaskDataHandler) connector.getTaskDataHandler()).postUpdateAttachment(repository, attachment,
- "update", new NullProgressMonitor()); //$NON-NLS-1$
-
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- attachment = taskData.getAttributeMapper().getAttributesByType(taskData, TaskAttribute.TYPE_ATTACHMENT).get(0);
- assertNotNull(attachment);
- obsolete = attachment.getMappedAttribute(TaskAttribute.ATTACHMENT_IS_DEPRECATED);
- assertNotNull(obsolete);
- boolean newObsoleteOn = obsolete.getValue().equals("1");
- assertEquals(true, oldObsoleteOn != newObsoleteOn);
- }
-
- public void testReassign222() throws CoreException {
- init222();
- String taskNumber = "92";
- doReassignOld(taskNumber, "user@mylar.eclipse.org");
- }
-
- public void testReassign30() throws CoreException {
- init30();
- String taskNumber = "5";
- doReassignOld(taskNumber, "tests@mylyn.eclipse.org");
- }
-
- public void testReassign31() throws CoreException {
- init31();
- String taskNumber = "1";
-
- // Get the task
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- TaskMapper mapper = new TaskMapper(taskData);
-
- if (mapper.getOwner().equals("rob.elves@eclipse.org")) {
- assertEquals("rob.elves@eclipse.org", mapper.getOwner());
- reassingToUser31(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals("tests2@mylyn.eclipse.org", mapper.getOwner());
-
- reassignToDefault31(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals("rob.elves@eclipse.org", mapper.getOwner());
- } else if (mapper.getOwner().equals("tests2@mylyn.eclipse.org")) {
- assertEquals("tests2@mylyn.eclipse.org", mapper.getOwner());
- reassignToDefault31(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals("rob.elves@eclipse.org", mapper.getOwner());
-
- reassingToUser31(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals("tests2@mylyn.eclipse.org", mapper.getOwner());
- } else {
- fail("Bug with unexpected user assigned");
- }
- }
-
- private void reassignToDefault31(ITask task, TaskData taskData) throws CoreException {
- // Modify it (reassignbycomponent)
- String newCommentText = "BugzillaRepositoryClientTest.testReassign31(): reassignbycomponent "
- + (new Date()).toString();
- TaskAttribute comment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- comment.setValue(newCommentText);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(comment);
-
- TaskAttribute assignee = taskData.getRoot().getAttribute(BugzillaAttribute.SET_DEFAULT_ASSIGNEE.getKey());
- assignee.setValue("1");
- changed.add(assignee);
- // Submit changes
- submit(task, taskData, changed);
- }
-
- private void reassingToUser31(ITask task, TaskData taskData) throws CoreException {
- // Modify it (reassign to tests2@mylyn.eclipse.org)
- String newCommentText = "BugzillaRepositoryClientTest.testReassign31(): reassign " + (new Date()).toString();
- TaskAttribute comment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- comment.setValue(newCommentText);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(comment);
-
- TaskAttribute assignedAttribute = taskData.getRoot().getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey());
- assignedAttribute.setValue("tests2@mylyn.eclipse.org");
- changed.add(assignedAttribute);
-
- // Submit changes
- submit(task, taskData, changed);
- }
-
- private void doReassignOld(String taskNumber, String defaultAssignee) throws CoreException {
- // Get the task
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- TaskMapper mapper = new TaskMapper(taskData);
-
- if (mapper.getOwner().equals(defaultAssignee)) {
- assertEquals(defaultAssignee, mapper.getOwner());
- reassingToUserOld(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals("tests2@mylyn.eclipse.org", mapper.getOwner());
-
- reassignToDefaultOld(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals(defaultAssignee, mapper.getOwner());
- } else if (mapper.getOwner().equals("tests2@mylyn.eclipse.org")) {
- assertEquals("tests2@mylyn.eclipse.org", mapper.getOwner());
- reassignToDefaultOld(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals(defaultAssignee, mapper.getOwner());
-
- reassingToUserOld(task, taskData);
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- mapper = new TaskMapper(taskData);
- assertEquals("tests2@mylyn.eclipse.org", mapper.getOwner());
- } else {
- fail("Bug with unexpected user assigned");
- }
- }
-
- private void reassignToDefaultOld(ITask task, TaskData taskData) throws CoreException {
- // Modify it (reassignbycomponent)
- String newCommentText = "BugzillaRepositoryClientTest.testReassignOld(): reassignbycomponent "
- + (new Date()).toString();
- TaskAttribute comment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- comment.setValue(newCommentText);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(comment);
- TaskAttribute selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.reassignbycomponent.toString(),
- BugzillaOperation.reassignbycomponent.getLabel());
- changed.add(selectedOperationAttribute);
-
- // Submit changes
- submit(task, taskData, null);
- }
-
- private void reassingToUserOld(ITask task, TaskData taskData) throws CoreException {
- // Modify it (reassign to tests2@mylyn.eclipse.org)
- String newCommentText = "BugzillaRepositoryClientTest.testReassignOld(): reassign " + (new Date()).toString();
- TaskAttribute comment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- comment.setValue(newCommentText);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(comment);
- TaskAttribute selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.reassign.toString(),
- BugzillaOperation.reassign.getLabel());
- TaskAttribute assignedAttribute = taskData.getRoot().getAttribute("reassignInput");
- assignedAttribute.setValue("tests2@mylyn.eclipse.org");
- changed.add(selectedOperationAttribute);
- changed.add(assignedAttribute);
-
- // Submit changes
- submit(task, taskData, null);
- }
-
- /*
- * Test for the following State transformation
- * NEW -> ASSIGNED -> RESOLVED DUPLICATE -> VERIFIED -> CLOSED -> REOPENED -> RESOLVED FIXED
- *
- */
-
- private void doStdWorkflow(String DupBugID) throws Exception {
- final TaskMapping taskMappingInit = new TaskMapping() {
-
- @Override
- public String getProduct() {
- return "TestProduct";
- }
- };
- final TaskMapping taskMappingSelect = new TaskMapping() {
- @Override
- public String getComponent() {
- return "TestComponent";
- }
-
- @Override
- public String getSummary() {
- return "test the std workflow";
- }
-
- @Override
- public String getDescription() {
- return "The Description of the std workflow task";
- }
-
- };
-
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- final TaskData[] taskDataNew = new TaskData[1];
- // create Task
- taskDataNew[0] = TasksUiInternal.createTaskData(repository, taskMappingInit, taskMappingSelect, null);
- ITask taskNew = TasksUiUtil.createOutgoingNewTask(taskDataNew[0].getConnectorKind(),
- taskDataNew[0].getRepositoryUrl());
- ITaskDataWorkingCopy workingCopy = TasksUi.getTaskDataManager().createWorkingCopy(taskNew, taskDataNew[0]);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- workingCopy.save(changed, null);
- RepositoryResponse response = submit(taskNew, taskDataNew[0], changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_CREATED.toString(), response.getReposonseKind().toString());
- String taskId = response.getTaskId();
-
- // change Status from NEW -> ASSIGNED
- ITask task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- TaskAttribute statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("NEW", statusAttribute.getValue());
- TaskAttribute selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.accept.toString(),
- BugzillaOperation.accept.getLabel());
- model.attributeChanged(selectedOperationAttribute);
- changed.clear();
- changed.add(selectedOperationAttribute);
- workingCopy.save(changed, null);
- response = submit(taskNew, taskData, changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_UPDATED.toString(), response.getReposonseKind().toString());
-
- // change Status from ASSIGNED -> RESOLVED DUPLICATE
- task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("ASSIGNED", statusAttribute.getValue());
- selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.duplicate.toString(),
- BugzillaOperation.duplicate.getLabel());
- TaskAttribute duplicateAttribute = taskData.getRoot().getAttribute("dup_id");
- duplicateAttribute.setValue(DupBugID);
- model.attributeChanged(selectedOperationAttribute);
- model.attributeChanged(duplicateAttribute);
- changed.clear();
- changed.add(selectedOperationAttribute);
- changed.add(duplicateAttribute);
- workingCopy.save(changed, null);
- response = submit(taskNew, taskData, changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_UPDATED.toString(), response.getReposonseKind().toString());
-
- // change Status from RESOLVED DUPLICATE -> VERIFIED
- task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("RESOLVED", statusAttribute.getValue());
- TaskAttribute resolution = taskData.getRoot().getMappedAttribute(TaskAttribute.RESOLUTION);
- assertEquals("DUPLICATE", resolution.getValue());
- selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.verify.toString(),
- BugzillaOperation.verify.getLabel());
- model.attributeChanged(selectedOperationAttribute);
- changed.clear();
- changed.add(selectedOperationAttribute);
- workingCopy.save(changed, null);
- response = submit(taskNew, taskData, changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_UPDATED.toString(), response.getReposonseKind().toString());
-
- // change Status from VERIFIED -> CLOSE
- task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("VERIFIED", statusAttribute.getValue());
- selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.close.toString(),
- BugzillaOperation.close.getLabel());
- model.attributeChanged(selectedOperationAttribute);
- changed.clear();
- changed.add(selectedOperationAttribute);
- workingCopy.save(changed, null);
- response = submit(taskNew, taskData, changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_UPDATED.toString(), response.getReposonseKind().toString());
-
- // change Status from CLOSE -> REOPENED
- task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("CLOSED", statusAttribute.getValue());
- selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.reopen.toString(),
- BugzillaOperation.reopen.getLabel());
- model.attributeChanged(selectedOperationAttribute);
- changed.clear();
- changed.add(selectedOperationAttribute);
- workingCopy.save(changed, null);
- response = submit(taskNew, taskData, changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_UPDATED.toString(), response.getReposonseKind().toString());
-
- // change Status from REOPENED -> RESOLVED FIXED
- task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("REOPENED", statusAttribute.getValue());
- selectedOperationAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- TaskOperation.applyTo(selectedOperationAttribute, BugzillaOperation.resolve.toString(),
- BugzillaOperation.resolve.getLabel());
- resolution = taskData.getRoot().getMappedAttribute(TaskAttribute.RESOLUTION);
- resolution.setValue("FIXED");
- model.attributeChanged(selectedOperationAttribute);
- model.attributeChanged(resolution);
- changed.clear();
- changed.add(selectedOperationAttribute);
- changed.add(resolution);
- workingCopy.save(changed, null);
- response = submit(taskNew, taskData, changed);
- assertNotNull(response);
- assertEquals(ResponseKind.TASK_UPDATED.toString(), response.getReposonseKind().toString());
-
- // test last state
- task = generateLocalTaskAndDownload(taskId);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- statusAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.STATUS);
- assertEquals("RESOLVED", statusAttribute.getValue());
- resolution = taskData.getRoot().getMappedAttribute(TaskAttribute.RESOLUTION);
- assertEquals("FIXED", resolution.getValue());
- }
-
- public void testStdWorkflow222() throws Exception {
- init222();
- doStdWorkflow("101");
- }
-
- public void testStdWorkflow32() throws Exception {
- init32();
- doStdWorkflow("3");
- }
-
- public void testAttachToExistingReport() throws Exception {
- init222();
- String taskNumber = "33";
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- assertEquals(taskNumber, taskData.getTaskId());
- int numAttached = taskData.getAttributeMapper()
- .getAttributesByType(taskData, TaskAttribute.TYPE_ATTACHMENT)
- .size();
- String fileName = "test-attach-" + System.currentTimeMillis() + ".txt";
-
- assertNotNull(repository.getCredentials(AuthenticationType.REPOSITORY));
- assertNotNull(repository.getCredentials(AuthenticationType.REPOSITORY).getUserName());
- assertNotNull(repository.getCredentials(AuthenticationType.REPOSITORY).getPassword());
- BugzillaClient client = connector.getClientManager().getClient(repository, new NullProgressMonitor());
-
- TaskAttribute attrAttachment = taskData.getAttributeMapper().createTaskAttachment(taskData);
- TaskAttachmentMapper attachmentMapper = TaskAttachmentMapper.createFrom(attrAttachment);
-
- /* Initialize a local attachment */
- attachmentMapper.setDescription("Test attachment " + new Date());
- attachmentMapper.setContentType("text/plain");
- attachmentMapper.setPatch(false);
- attachmentMapper.setComment("Automated JUnit attachment test");
- attachmentMapper.applyTo(attrAttachment);
-
- /* Test attempt to upload a non-existent file */
- String filePath = "/this/is/not/a/real-file";
-
- FileTaskAttachmentSource attachment = new FileTaskAttachmentSource(new File(filePath));
- attachment.setContentType(FileTaskAttachmentSource.APPLICATION_OCTET_STREAM);
- attachment.setDescription(AttachmentUtil.CONTEXT_DESCRIPTION);
- attachment.setName("mylyn-context.zip");
-
- try {
- client.postAttachment(taskNumber, attachmentMapper.getComment(), attachment, attrAttachment,
- new NullProgressMonitor());
- fail("never reach this!");
- } catch (Exception e) {
- assertEquals("A repository error has occurred.", e.getMessage());
- }
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
- task = TasksUi.getRepositoryModel().createTask(repository, taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- assertEquals(numAttached, taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT).size());
-
- /* Test attempt to upload an empty file */
- File attachFile = new File(fileName);
- attachFile.createNewFile();
- BufferedWriter write = new BufferedWriter(new FileWriter(attachFile));
-
- attachment = new FileTaskAttachmentSource(attachFile);
- attachment.setContentType(FileTaskAttachmentSource.APPLICATION_OCTET_STREAM);
- attachment.setDescription(AttachmentUtil.CONTEXT_DESCRIPTION);
- attachment.setName("mylyn-context.zip");
-
- try {
- client.postAttachment(taskNumber, attachmentMapper.getComment(), attachment, attrAttachment,
- new NullProgressMonitor());
- fail("never reach this!");
- } catch (Exception e) {
- assertEquals("A repository error has occurred.", e.getMessage());
- }
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- assertEquals(numAttached, taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT).size());
-
- /* Test uploading a proper file */
- write.write("test file");
- write.close();
- try {
- client.postAttachment(taskNumber, attachmentMapper.getComment(), attachment, attrAttachment,
- new NullProgressMonitor());
- } catch (Exception e) {
- fail("never reach this!");
- }
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
- task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- model = createModel(task);
- taskData = model.getTaskData();
- assertNotNull(taskData);
- assertEquals(numAttached + 1, taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT).size());
- // use assertion to track clean-up
- assertTrue(attachFile.delete());
- }
-
- public void testDataRetrieval() throws CoreException, ParseException {
- init30();
- TaskData data = connector.getTaskData(repository, "2", new NullProgressMonitor());
- assertNotNull(data);
- ITaskMapping mapper = connector.getTaskMapping(data);
- assertEquals("2", data.getTaskId());
- assertEquals("New bug submit", mapper.getSummary());
- assertEquals("Test new bug submission", mapper.getDescription());
- assertEquals(PriorityLevel.P2, mapper.getPriorityLevel());
- assertEquals("TestComponent", mapper.getComponent());
- assertEquals("nhapke@cs.ubc.ca", mapper.getOwner());
- assertEquals("TestProduct", mapper.getProduct());
- assertEquals("PC", mapper.getTaskData()
- .getRoot()
- .getMappedAttribute(BugzillaAttribute.REP_PLATFORM.getKey())
- .getValue());
- assertEquals("Windows", mapper.getTaskData()
- .getRoot()
- .getMappedAttribute(BugzillaAttribute.OP_SYS.getKey())
- .getValue());
- assertEquals("ASSIGNED", mapper.getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.BUG_STATUS.getKey()).getValue());
- SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- assertEquals(format1.parse("2007-03-20 16:37"), mapper.getCreationDate());
- assertEquals(format2.parse("2008-09-24 13:33:02"), mapper.getModificationDate());
-
- assertEquals(IBugzillaTestConstants.TEST_BUGZILLA_30_URL, mapper.getTaskUrl());
- assertEquals(BugzillaCorePlugin.CONNECTOR_KIND, mapper.getTaskKind());
- assertEquals("2", mapper.getTaskKey());
-
- // test comments
- List<TaskAttribute> comments = data.getAttributeMapper().getAttributesByType(data, TaskAttribute.TYPE_COMMENT);
- assertEquals(12, comments.size());
- TaskCommentMapper commentMap = TaskCommentMapper.createFrom(comments.get(0));
- assertEquals("Rob Elves", commentMap.getAuthor().getName());
- assertEquals("Created an attachment (id=1)\ntest\n\ntest attachments", commentMap.getText());
- commentMap = TaskCommentMapper.createFrom(comments.get(10));
- assertEquals("Tests", commentMap.getAuthor().getName());
- assertEquals("test", commentMap.getText());
- }
-
- public void testMidAirCollision() throws Exception {
- init30();
- String taskNumber = "5";
-
- // Get the task
- ITask task = generateLocalTaskAndDownload(taskNumber);
-
- ITaskDataWorkingCopy workingCopy = TasksUiPlugin.getTaskDataManager().getWorkingCopy(task);
- TaskData taskData = workingCopy.getLocalData();
- assertNotNull(taskData);
-
- String newCommentText = "BugzillaRepositoryClientTest.testMidAirCollision(): test " + (new Date()).toString();
- TaskAttribute attrNewComment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- attrNewComment.setValue(newCommentText);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(attrNewComment);
- TaskAttribute attrDeltaTs = taskData.getRoot().getMappedAttribute(TaskAttribute.DATE_MODIFICATION);
- attrDeltaTs.setValue("2007-01-01 00:00:00");
- changed.add(attrDeltaTs);
-
- workingCopy.save(changed, new NullProgressMonitor());
-
- try {
- // Submit changes
- submit(task, taskData, changed);
- fail("Mid-air collision expected");
- } catch (CoreException e) {
- assertTrue(e.getStatus().getMessage().indexOf("Mid-air collision occurred while submitting") != -1);
- return;
- }
- fail("Mid-air collision expected");
- }
-
- public void testAuthenticationCredentials() throws Exception {
- init218();
- ITask task = generateLocalTaskAndDownload("3");
- assertNotNull(task);
- TasksUiPlugin.getTaskActivityManager().activateTask(task);
- File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- sourceContextFile.createNewFile();
- sourceContextFile.deleteOnExit();
- AuthenticationCredentials oldCreds = repository.getCredentials(AuthenticationType.REPOSITORY);
- AuthenticationCredentials wrongCreds = new AuthenticationCredentials("wrong", "wrong");
- repository.setCredentials(AuthenticationType.REPOSITORY, wrongCreds, false);
- TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(repository);
- TaskData taskData = TasksUiPlugin.getTaskDataManager().getTaskData(task);
- TaskAttributeMapper mapper = taskData.getAttributeMapper();
- TaskAttribute attribute = mapper.createTaskAttachment(taskData);
- try {
- AttachmentUtil.postContext(connector, repository, task, "test", attribute, new NullProgressMonitor());
- } catch (CoreException e) {
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- assertTrue(e.getStatus().getMessage().indexOf("invalid username or password") != -1);
- return;
- } finally {
- repository.setCredentials(AuthenticationType.REPOSITORY, oldCreds, false);
- TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(repository);
- }
- fail("Should have failed due to invalid userid and password.");
- }
-
- public void testSynchronize() throws CoreException, Exception {
- init222();
-
- // Get the task
- ITask task = generateLocalTaskAndDownload("3");
- TasksUi.getTaskDataManager().discardEdits(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
-
-// int numComments = taskData.getAttributeMapper()
-// .getAttributesByType(taskData, TaskAttribute.TYPE_ATTACHMENT)
-// .size();
-
- // Modify it
- String newCommentText = "BugzillaRepositoryClientTest.testSynchronize(): " + (new Date()).toString();
- TaskAttribute attrNewComment = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- attrNewComment.setValue(newCommentText);
- model.attributeChanged(attrNewComment);
- model.save(new NullProgressMonitor());
- assertEquals(SynchronizationState.OUTGOING, task.getSynchronizationState());
- submit(model);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
-// TaskData taskData2 = workingCopy.getRepositoryData();
-// TaskMapper taskData2Mapper = new TaskMapper(taskData2);
-// TaskMapper taskData1Mapper = new TaskMapper(taskData);
-// assertFalse(taskData2Mapper.getModificationDate().equals(taskData1Mapper.getModificationDate()));
-// // Still not read
-// assertFalse(taskData2.getLastModified().equals(task.getLastReadTimeStamp()));
-// TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
-// assertEquals(taskData2.getLastModified(), task.getLastReadTimeStamp());
-// assertTrue(taskData2.getComments().size() > numComments);
-//
-// // Has no outgoing changes or conflicts yet needs synch
-// // because task doesn't have bug report (new query hit)
-// // Result: retrieved with no incoming status
-// // task.setSyncState(SynchronizationState.SYNCHRONIZED);
-// TasksUiPlugin.getTaskDataStorageManager().remove(task.getRepositoryUrl(), task.getTaskId());
-// TasksUiInternal.synchronizeTask(connector, task, false, null);
-// assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-// RepositoryTaskData bugReport2 = null;
-// bugReport2 = TasksUiPlugin.getTaskDataStorageManager()
-// .getNewTaskData(task.getRepositoryUrl(), task.getTaskId());
-// assertNotNull(bugReport2);
-// assertEquals(task.getTaskId(), bugReport2.getTaskId());
-//
-// assertEquals(newCommentText, bugReport2.getComments().get(numComments).getText());
-// // TODO: Test that comment was appended
-// // ArrayList<Comment> comments = task.getTaskData().getComments();
-// // assertNotNull(comments);
-// // assertTrue(comments.size() > 0);
-// // Comment lastComment = comments.get(comments.size() - 1);
-// // assertEquals(newCommentText, lastComment.getText());
-
- }
-
- public void testMissingHits() throws Exception {
- init(IBugzillaConstants.ECLIPSE_BUGZILLA_URL);
- //repository.setAuthenticationCredentials("username", "password");
- String queryString = "https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Tools&product=Mylyn&component=Bugzilla&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&priority=P1&priority=P2&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=";
- RepositoryQuery query = new RepositoryQuery(BugzillaCorePlugin.CONNECTOR_KIND, "test");
- query.setRepositoryUrl(repository.getRepositoryUrl());
- query.setUrl(queryString);
- TasksUiPlugin.getTaskList().addQuery(query);
-
- TasksUiInternal.synchronizeQuery(connector, query, null, true);
-
- for (ITask task : query.getChildren()) {
- assertTrue(task.getSynchronizationState() == SynchronizationState.INCOMING);
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- assertTrue(task.getSynchronizationState() == SynchronizationState.SYNCHRONIZED);
- }
-
- repository.setSynchronizationTimeStamp("1970-01-01");//getSynchronizationTimeStamp();
- TasksUiInternal.synchronizeQuery(connector, query, null, true);
- for (ITask task : query.getChildren()) {
- assertTrue(task.getSynchronizationState() == SynchronizationState.INCOMING);
- }
- }
-
- ITask fruitTask;
-
- TaskData fruitTaskData;
-
- private void setFruitValueTo(String newValue) throws CoreException {
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- TaskAttribute cf_fruit = fruitTaskData.getRoot().getAttribute("cf_fruit");
- cf_fruit.setValue(newValue);
- assertEquals(newValue, fruitTaskData.getRoot().getAttribute("cf_fruit").getValue());
- changed.add(cf_fruit);
- submit(fruitTask, fruitTaskData, changed);
- TasksUiInternal.synchronizeTask(connector, fruitTask, true, null);
- fruitTaskData = TasksUiPlugin.getTaskDataManager().getTaskData(repository, fruitTask.getTaskId());
- assertEquals(newValue, fruitTaskData.getRoot().getAttribute("cf_fruit").getValue());
-
- }
-
- public void testCustomFields() throws Exception {
- init(IBugzillaTestConstants.TEST_BUGZILLA_303_URL);
-
- String taskNumber = "1";
-
- // Get the task
- fruitTask = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(fruitTask);
- TaskDataModel model = createModel(fruitTask);
- fruitTaskData = model.getTaskData();
- assertNotNull(fruitTaskData);
-
- if (fruitTaskData.getRoot().getAttribute("cf_fruit").getValue().equals("---")) {
- setFruitValueTo("apple");
- setFruitValueTo("orange");
- setFruitValueTo("---");
- } else if (fruitTaskData.getRoot().getAttribute("cf_fruit").getValue().equals("apple")) {
- setFruitValueTo("orange");
- setFruitValueTo("apple");
- setFruitValueTo("---");
- } else if (fruitTaskData.getRoot().getAttribute("cf_fruit").getValue().equals("orange")) {
- setFruitValueTo("apple");
- setFruitValueTo("orange");
- setFruitValueTo("---");
- }
- if (fruitTask != null) {
- fruitTask = null;
- }
- if (fruitTaskData != null) {
- fruitTaskData = null;
- }
- }
-
- public void testAnonymousRepositoryAccess() throws Exception {
- init218();
- assertNotNull(repository);
- AuthenticationCredentials anonymousCreds = new AuthenticationCredentials("", "");
- repository.setCredentials(AuthenticationType.REPOSITORY, anonymousCreds, false);
- TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(repository);
- // test anonymous task retrieval
- ITask task = this.generateLocalTaskAndDownload("2");
- assertNotNull(task);
-
- // // test anonymous query (note that this demonstrates query via
- // eclipse search (ui)
-
- String queryUrl = "http://mylyn.eclipse.org/bugs218/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=search-match-test&product=TestProduct&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=";
- IRepositoryQuery bugzillaQuery = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
- bugzillaQuery.setUrl(queryUrl);
- SearchHitCollector collector = new SearchHitCollector(taskList, repository, bugzillaQuery);
- RepositorySearchResult result = (RepositorySearchResult) collector.getSearchResult();
-
- collector.run(new NullProgressMonitor());
- assertEquals(2, result.getElements().length);
-
- for (Object element : result.getElements()) {
- assertEquals(true, element instanceof ITask);
- ITask hit = (ITask) element;
- assertTrue(hit.getSummary().contains("search-match-test"));
- }
-
- // test anonymous update of configuration
- RepositoryConfiguration config = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, null);
- assertNotNull(config);
- assertTrue(config.getComponents().size() > 0);
- }
-
- public void testUpdate() throws Exception {
- init222();
- String taskNumber = "3";
- ITask task = generateLocalTaskAndDownload(taskNumber);
- TasksUi.getTaskDataManager().discardEdits(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
-
- assertEquals("search-match-test 2", task.getSummary());
- assertEquals("TestProduct", task.getAttribute(TaskAttribute.PRODUCT));
- assertEquals("P1", task.getPriority());
- assertEquals("blocker", task.getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey()));
- assertEquals("nhapke@cs.ubc.ca", task.getOwner());
- assertFalse(task.isCompleted());
- assertEquals("http://mylyn.eclipse.org/bugs222/show_bug.cgi?id=3", task.getUrl());
- }
-
- /**
- * Ensure obsoletes and patches are marked as such by the parser.
- */
- public void testAttachmentAttributes() throws Exception {
- init222();
- String taskNumber = "19";
- ITask task = generateLocalTaskAndDownload(taskNumber);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
-
- boolean isPatch[] = { false, true, false, false, false, false, false, true, false, false, false };
- boolean isObsolete[] = { false, true, false, true, false, false, false, false, false, false, false };
-
- int index = 0;
- for (TaskAttribute attribute : taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT)) {
- assertTrue(validateAttachmentAttributes(model, attribute, isPatch[index], isObsolete[index]));
- index++;
- }
- }
-
- private boolean validateAttachmentAttributes(TaskDataModel model, TaskAttribute taskAttribute, boolean isPatch,
- boolean isObsolete) {
- TaskAttachment taskAttachment = new TaskAttachment(model.getTaskRepository(), model.getTask(), taskAttribute);
- model.getTaskData().getAttributeMapper().updateTaskAttachment(taskAttachment, taskAttribute);
- return (taskAttachment.isPatch() == isPatch) && (taskAttachment.isDeprecated() == isObsolete);
- }
-
- public void testTimeTracker222() throws Exception {
- init222();
- timeTracker(15, true);
- }
-
- public void testTimeTracker218() throws Exception {
- init218();
- timeTracker(20, false);
- }
-
- /**
- * @param enableDeadline
- * bugzilla 218 doesn't support deadlines
- */
- protected void timeTracker(int taskid, boolean enableDeadline) throws Exception {
- ITask task = generateLocalTaskAndDownload("" + taskid);
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
- assertEquals(taskid + "", taskData.getTaskId());
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-
- Set<ITask> tasks = new HashSet<ITask>();
- tasks.add(task);
-
- synchAndAssertState(tasks, SynchronizationState.SYNCHRONIZED);
-
- float estimatedTime, remainingTime, actualTime, addTime;
- String deadline = null;
-
- estimatedTime = Float.parseFloat(taskData.getRoot()
- .getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey())
- .getValue());
- remainingTime = Float.parseFloat(taskData.getRoot()
- .getAttribute(BugzillaAttribute.REMAINING_TIME.getKey())
- .getValue());
- actualTime = Float.parseFloat(taskData.getRoot()
- .getAttribute(BugzillaAttribute.ACTUAL_TIME.getKey())
- .getValue());
-
- if (enableDeadline) {
- deadline = taskData.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()).getValue();
- }
-
- estimatedTime += 2;
- remainingTime += 1.5;
- addTime = 0.75f;
- if (enableDeadline) {
- deadline = generateNewDay();
- }
-
- taskData.getRoot().getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()).setValue("" + estimatedTime);
- taskData.getRoot().getAttribute(BugzillaAttribute.REMAINING_TIME.getKey()).setValue("" + remainingTime);
- TaskAttribute workTime = taskData.getRoot().getAttribute(BugzillaAttribute.WORK_TIME.getKey());
- if (workTime == null) {
- BugzillaTaskDataHandler.createAttribute(taskData.getRoot(), BugzillaAttribute.WORK_TIME);
- workTime = taskData.getRoot().getAttribute(BugzillaAttribute.WORK_TIME.getKey());
- }
- workTime.setValue("" + addTime);
- if (enableDeadline) {
- taskData.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()).setValue("" + deadline);
- }
-
- taskData.getRoot().getAttribute(BugzillaAttribute.NEW_COMMENT.getKey()).setValue(
- "New Estimate: " + estimatedTime + "\nNew Remaining: " + remainingTime + "\nAdd: " + addTime);
- Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
- changed.add(taskData.getRoot().getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()));
- changed.add(taskData.getRoot().getAttribute(BugzillaAttribute.REMAINING_TIME.getKey()));
- changed.add(taskData.getRoot().getAttribute(BugzillaAttribute.WORK_TIME.getKey()));
- if (enableDeadline) {
- changed.add(taskData.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()));
- }
- changed.add(taskData.getRoot().getAttribute(BugzillaAttribute.NEW_COMMENT.getKey()));
-
- submit(task, taskData, changed);
-
- synchAndAssertState(tasks, SynchronizationState.SYNCHRONIZED);
- model = createModel(task);
- taskData = model.getTaskData();
-
- assertEquals(estimatedTime, Float.parseFloat(taskData.getRoot().getAttribute(
- BugzillaAttribute.ESTIMATED_TIME.getKey()).getValue()));
- assertEquals(remainingTime, Float.parseFloat(taskData.getRoot().getAttribute(
- BugzillaAttribute.REMAINING_TIME.getKey()).getValue()));
- assertEquals(actualTime + addTime, Float.parseFloat(taskData.getRoot().getAttribute(
- BugzillaAttribute.ACTUAL_TIME.getKey()).getValue()));
- if (enableDeadline) {
- assertEquals(deadline, taskData.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()).getValue());
- }
-
- }
-
- private String generateNewDay() {
- int year = 2006;
- int month = (int) (Math.random() * 12 + 1);
- int day = (int) (Math.random() * 28 + 1);
- return "" + year + "-" + ((month <= 9) ? "0" : "") + month + "-" + ((day <= 9) ? "0" : "") + day;
- }
-
- public void testSynchChangedReports() throws Exception {
-
- init222();
- String taskID4 = "4";
- ITask task4 = generateLocalTaskAndDownload(taskID4);
- assertNotNull(task4);
- TaskDataModel model4 = createModel(task4);
- TaskData taskData4 = model4.getTaskData();
- assertNotNull(taskData4);
- assertEquals(taskID4, taskData4.getTaskId());
- assertEquals(SynchronizationState.SYNCHRONIZED, task4.getSynchronizationState());
-
- String taskID5 = "5";
- ITask task5 = generateLocalTaskAndDownload(taskID5);
- assertNotNull(task5);
- TaskDataModel model5 = createModel(task5);
- TaskData taskData5 = model5.getTaskData();
- assertNotNull(taskData5);
- assertEquals(taskID5, taskData5.getTaskId());
- assertEquals(SynchronizationState.SYNCHRONIZED, task5.getSynchronizationState());
-
- Set<ITask> tasks = new HashSet<ITask>();
- tasks.add(task4);
- tasks.add(task5);
-
- // Precondition for test passing is that task5's modification data is
- // AFTER
- // task4's
- DateFormat timeDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date lastModTime4 = null;
- Date lastModTime5 = null;
- String mostRecentTimeStamp4 = taskData4.getRoot().getAttribute(BugzillaAttribute.DELTA_TS.getKey()).getValue();
- String mostRecentTimeStamp = taskData5.getRoot().getAttribute(BugzillaAttribute.DELTA_TS.getKey()).getValue();
- lastModTime4 = timeDateFormat.parse(mostRecentTimeStamp4);
- lastModTime5 = timeDateFormat.parse(mostRecentTimeStamp);
- assertTrue("Precondition not mached", lastModTime5.after(lastModTime4));
-
- repository.setSynchronizationTimeStamp(mostRecentTimeStamp);
-
- SynchronizationSession event = new SynchronizationSession();
- event.setTasks(tasks);
- event.setNeedsPerformQueries(true);
- event.setTaskRepository(repository);
- event.setFullSynchronization(true);
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- // Always last known changed returned
- assertFalse(event.getStaleTasks().contains(task4));
- assertTrue(event.getStaleTasks().contains(task5));
-
- String priority4 = null;
- if (task4.getPriority().equals("P1")) {
- priority4 = "P2";
- taskData4.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).setValue(priority4);
- } else {
- priority4 = "P1";
- taskData4.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).setValue(priority4);
- }
-
- String priority5 = null;
- if (task5.getPriority().equals("P1")) {
- priority5 = "P2";
- taskData5.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).setValue(priority5);
- } else {
- priority5 = "P1";
- taskData5.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).setValue(priority5);
- }
- Set<TaskAttribute> changed4 = new HashSet<TaskAttribute>();
- Set<TaskAttribute> changed5 = new HashSet<TaskAttribute>();
-
- changed4.add(taskData4.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()));
- changed5.add(taskData5.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()));
-
- submit(task4, taskData4, changed4);
- submit(task5, taskData5, changed5);
-
- event = new SynchronizationSession();
- event.setTasks(tasks);
- event.setNeedsPerformQueries(true);
- event.setTaskRepository(repository);
- event.setFullSynchronization(true);
- connector.preSynchronization(event, null);
- assertTrue(event.getStaleTasks().contains(task4));
- assertTrue(event.getStaleTasks().contains(task5));
-
- TasksUiInternal.synchronizeTasks(connector, tasks, true, null);
-
- for (ITask task : tasks) {
- if (task.getTaskId() == "4") {
- assertEquals(priority4, taskData4.getRoot()
- .getAttribute(BugzillaAttribute.PRIORITY.getKey())
- .getValue());
- }
- if (task.getTaskId() == "5") {
- assertEquals(priority5, taskData5.getRoot()
- .getAttribute(BugzillaAttribute.PRIORITY.getKey())
- .getValue());
- }
- }
- }
-
- public void testContextAttachFailure() throws Exception {
- init218();
- ITask task = this.generateLocalTaskAndDownload("3");
- assertNotNull(task);
- TaskDataModel model = createModel(task);
- TaskData taskData = model.getTaskData();
- assertNotNull(taskData);
-// assertNotNull(TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(),
-// task.getTaskId()));
- TasksUi.getTaskActivityManager().activateTask(task);
- File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- sourceContextFile.createNewFile();
- sourceContextFile.deleteOnExit();
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("wrong", "wrong"), false);
- try {
- FileTaskAttachmentSource attachment = new FileTaskAttachmentSource(sourceContextFile);
- attachment.setContentType(FileTaskAttachmentSource.APPLICATION_OCTET_STREAM);
-
- attachment.setDescription(AttachmentUtil.CONTEXT_DESCRIPTION);
- attachment.setName("mylyn-context.zip");
-
- TaskAttribute attrAttachment = taskData.getAttributeMapper().createTaskAttachment(taskData);
- TaskAttachmentMapper attachmentMapper = TaskAttachmentMapper.createFrom(attrAttachment);
-
- /* Initialize a local attachment */
- attachmentMapper.setDescription("Test attachment " + new Date());
- attachmentMapper.setContentType(AttachmentUtil.CONTEXT_DESCRIPTION);
- attachmentMapper.setPatch(false);
- attachmentMapper.setComment("Context attachment failure Test");
- attachmentMapper.applyTo(attrAttachment);
-
- connector.getTaskAttachmentHandler().postContent(repository, task, attachment,
- attachmentMapper.getComment(), attrAttachment, new NullProgressMonitor());
- } catch (CoreException e) {
- assertEquals(
- "Unable to login to http://mylyn.eclipse.org/bugs218.\n\ninvalid username or password \n\nPlease validate credentials via Task Repositories view.",
- e.getMessage());
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- return;
- }
- fail("Should have failed due to invalid userid and password.");
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchDialogTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchDialogTest.java
deleted file mode 100644
index fd48f00b0..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchDialogTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.bugzilla.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.ui.search.BugzillaSearchPage;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Test the bugzilla search dialog.
- *
- * @author Jeff Pound
- */
-public class BugzillaSearchDialogTest extends TestCase {
-
- private TaskRepositoryManager manager;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- manager = TasksUiPlugin.getRepositoryManager();
- assertNotNull(manager);
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- if (manager != null) {
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
- }
-
- /**
- * Test that the search dialog is initialized properly with the given repository.
- *
- * @throws Exception
- */
- public void testSearchDialogInit() throws Exception {
- TaskRepository repo = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- repo.setVersion(IBugzillaConstants.BugzillaServerVersion.SERVER_222.toString());
- manager.addRepository(repo);
- BugzillaSearchPage page = new BugzillaSearchPage(repo);
- Shell shell = BugzillaTestPlugin.getDefault().getWorkbench().getDisplay().getShells()[0];
- page.createControl(shell);
- page.setVisible(true);
-
- /*
- * This assertion will fail with a 0 product count if the options are
- * not retrieved properly, throw an exception if the page is not
- * initialized properly, or pass otherwise.
- */
- assertFalse(page.getProductCount() == 0);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchTest.java
deleted file mode 100644
index 2320abf3e..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaSearchTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaSearchTest extends TestCase {
-
- private static final String QUERY_NAME = "Query Page Name";
-
- private static final String BUG_DESC_SUBSTRING_SEARCH = "/buglist.cgi?short_desc_type=allwordssubstr&short_desc=";// search-match-test&amp";
-
- private static final String SEARCH_DESCRIPTION = "search-match-test";
-
- private static final int NUM_EXPECTED_HITS = 2;
-
- private static final int NUM_REPOSITORIES = 0;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- assertEquals(NUM_REPOSITORIES, TasksUiPlugin.getRepositoryManager().getRepositories(
- BugzillaCorePlugin.CONNECTOR_KIND).size());
- }
-
- @Override
- protected void tearDown() throws Exception {
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- super.tearDown();
- }
-
- public void testSearching218() throws Exception {
- TaskRepository repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- repository.setVersion(IBugzillaConstants.BugzillaServerVersion.SERVER_218.toString());
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- assertEquals(NUM_EXPECTED_HITS,
- runQuery(IBugzillaTestConstants.TEST_BUGZILLA_218_URL, SEARCH_DESCRIPTION).size());
- }
-
- public void testSearching220() throws Exception {
- TaskRepository repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_220_URL);
- repository.setVersion(IBugzillaConstants.BugzillaServerVersion.SERVER_220.toString());
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- assertEquals(NUM_EXPECTED_HITS,
- runQuery(IBugzillaTestConstants.TEST_BUGZILLA_220_URL, SEARCH_DESCRIPTION).size());
- }
-
- public void testSearching2201() throws Exception {
- TaskRepository repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_2201_URL);
- repository.setVersion(IBugzillaConstants.BugzillaServerVersion.SERVER_220.toString());
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- assertEquals(NUM_EXPECTED_HITS,
- runQuery(IBugzillaTestConstants.TEST_BUGZILLA_2201_URL, SEARCH_DESCRIPTION).size());
- }
-
- public void testSearching222() throws Exception {
- TaskRepository repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- repository.setVersion(IBugzillaConstants.BugzillaServerVersion.SERVER_222.toString());
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- Set<TaskData> hits = runQuery(IBugzillaTestConstants.TEST_BUGZILLA_222_URL, SEARCH_DESCRIPTION);
- assertEquals(NUM_EXPECTED_HITS, hits.size());
- }
-
- private Set<TaskData> runQuery(String repositoryURL, String SearchString) throws Exception {
- TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository(
- BugzillaCorePlugin.CONNECTOR_KIND, repositoryURL);
- assertNotNull(repository);
- IRepositoryQuery repositoryQuery = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
- repositoryQuery.setUrl(repository.getRepositoryUrl() + BUG_DESC_SUBSTRING_SEARCH + SearchString);
- repositoryQuery.setSummary(QUERY_NAME);
-
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager().getRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
- final Set<TaskData> changedTaskData = new HashSet<TaskData>();
- TaskDataCollector collector = new TaskDataCollector() {
-
- @Override
- public void accept(TaskData taskData) {
- changedTaskData.add(taskData);
- }
- };
-
- connector.performQuery(repository, repositoryQuery, collector, null, new NullProgressMonitor());
-
- return changedTaskData;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskCompletionTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskCompletionTest.java
deleted file mode 100644
index 637459459..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskCompletionTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaTaskCompletionTest extends TestCase {
-
- private TaskRepository repository;
-
- private BugzillaRepositoryConnector connector;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- this.connector = (BugzillaRepositoryConnector) TasksUiPlugin.getRepositoryManager().getRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
- this.repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaConstants.ECLIPSE_BUGZILLA_URL);
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testCompletionDate() throws Exception {
- TaskTask task = new TaskTask(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaConstants.ECLIPSE_BUGZILLA_URL, "1");
- TaskAttributeMapper mapper = connector.getTaskDataHandler().getAttributeMapper(repository);
- TaskData taskData = new TaskData(mapper, BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaConstants.ECLIPSE_BUGZILLA_URL, "1");
- taskData.getRoot().createAttribute(BugzillaAttribute.BUG_STATUS.getKey()).setValue(
- IBugzillaConstants.VALUE_STATUS_RESOLVED);
- TaskAttribute attrComment = taskData.getRoot().createAttribute("commentId");
- attrComment.getMetaData().setType(TaskAttribute.TYPE_COMMENT);
- TaskAttribute attrCreationDate = attrComment.createAttribute(BugzillaAttribute.BUG_WHEN.getKey());
- attrCreationDate.setValue("2009-12-11 12:00");
-
- assertFalse(task.isCompleted());
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertTrue(task.isCompleted());
- Date completionDate = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2009-12-11 12:00");
- assertTrue(completionDate.equals(task.getCompletionDate()));
-
- }
-
- public void testCompletionDateForStates() throws Exception {
- TaskTask task = new TaskTask(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaConstants.ECLIPSE_BUGZILLA_URL, "1");
- TaskAttributeMapper mapper = connector.getTaskDataHandler().getAttributeMapper(repository);
- TaskData taskData = new TaskData(mapper, BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaConstants.ECLIPSE_BUGZILLA_URL, "1");
- TaskAttribute status = taskData.getRoot().createAttribute(BugzillaAttribute.BUG_STATUS.getKey());
- status.setValue("REOPENED");
- TaskAttribute attrComment = taskData.getRoot().createAttribute("commentId");
- attrComment.getMetaData().setType(TaskAttribute.TYPE_COMMENT);
- TaskAttribute attrCreationDate = attrComment.createAttribute(BugzillaAttribute.BUG_WHEN.getKey());
- attrCreationDate.setValue("2008-12-11 12:00");
-
- assertFalse(task.isCompleted());
- taskData.setPartial(true);
- Date completionDate = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2009-01-06 06:06");
- task.setCompletionDate(completionDate);
- assertTrue(completionDate.equals(task.getCompletionDate()));
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertTrue(!task.isCompleted());
- assertNull(task.getCompletionDate());
-
- status.setValue(IBugzillaConstants.VALUE_STATUS_NEW);
- task.setCompletionDate(completionDate);
- assertTrue(completionDate.equals(task.getCompletionDate()));
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertTrue(!task.isCompleted());
- assertNull(task.getCompletionDate());
-
- status.setValue(IBugzillaConstants.VALUE_STATUS_VERIFIED);
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertTrue(task.isCompleted());
- Date nullDate = new Date(0);
- assertNotNull(task.getCompletionDate());
- assertTrue(nullDate.equals(task.getCompletionDate()));
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskDataHandlerTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskDataHandlerTest.java
deleted file mode 100644
index c4c2e0257..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskDataHandlerTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.bugzilla.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Frank Becker
- * @author Rob Elves
- */
-public class BugzillaTaskDataHandlerTest extends TestCase {
-
- TaskRepository repository;
-
- BugzillaRepositoryConnector connector;
-
- private TaskData init(String taskId) throws CoreException {
- return connector.getTaskData(repository, taskId, new NullProgressMonitor());
- }
-
- private TaskRepository setRepository(String kind, String url) {
- connector = (BugzillaRepositoryConnector) TasksUiPlugin.getRepositoryManager().getRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
- repository = new TaskRepository(kind, url);
- Credentials credentials = TestUtil.readCredentials();
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), true);
- return repository;
- }
-
- private void testAttributesFromCloneBug(TaskData repositoryTaskData, boolean valueFromBug9) {
- assertEquals("Clone Bug 1", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.SHORT_DESC.getKey())
- .getValue());
- assertEquals("This Bug is used to test the cloneTaskData", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.LONG_DESC.getKey()).getValue());
- assertEquals("TestProduct", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.PRODUCT.getKey())
- .getValue());
- assertEquals("TestComponent", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.COMPONENT.getKey())
- .getValue());
- assertEquals("PC", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.REP_PLATFORM.getKey())
- .getValue());
- assertEquals("Windows", repositoryTaskData.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey()).getValue());
- assertEquals("unspecified", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.VERSION.getKey())
- .getValue());
- assertEquals("P3", repositoryTaskData.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
- assertEquals("enhancement", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey())
- .getValue());
- // "---" is not contained in the repository configuration therefore not added as a valid target_milestone
- // it is however returned in the bug xml.
-// assertEquals("---", repositoryTaskData.getRoot()
-// .getAttribute(BugzillaAttribute.TARGET_MILESTONE.getKey())
-// .getValue());
- assertEquals("Unclassified", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.CLASSIFICATION.getKey()).getValue());
- if (valueFromBug9) {
- assertEquals("9", repositoryTaskData.getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey()).getValue());
- assertEquals("1.00", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.REMAINING_TIME.getKey())
- .getValue());
- assertEquals("1.00", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey())
- .getValue());
- assertEquals("2007-12-12", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.DEADLINE.getKey())
- .getValue());
- assertEquals("NEW", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.BUG_STATUS.getKey())
- .getValue());
- assertEquals("2007-11-14 15:12", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.CREATION_TS.getKey()).getValue());
- assertEquals("2007-11-14 15:14:46", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.DELTA_TS.getKey()).getValue());
- assertEquals("tests@mylyn.eclipse.org", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.REPORTER.getKey()).getValue());
- assertEquals("tests2@mylyn.eclipse.org", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.ASSIGNED_TO.getKey()).getValue());
- } else {
- assertEquals("2.00", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.REMAINING_TIME.getKey())
- .getValue());
- assertEquals("2.00", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey())
- .getValue());
- assertEquals("2008-01-01", repositoryTaskData.getRoot()
- .getAttribute(BugzillaAttribute.DEADLINE.getKey())
- .getValue());
- assertEquals("2007-11-14 15:30", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.CREATION_TS.getKey()).getValue());
- assertEquals("2007-11-14 15:30:38", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.DELTA_TS.getKey()).getValue());
- assertEquals("tests2@mylyn.eclipse.org", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.REPORTER.getKey()).getValue());
- assertEquals("tests@mylyn.eclipse.org", repositoryTaskData.getRoot().getAttribute(
- BugzillaAttribute.ASSIGNED_TO.getKey()).getValue());
- }
- }
-
- public void testCloneTaskData() throws Exception {
- String bugid = "9";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_30_URL);
- TaskData report1 = init(bugid);
-
- assertNotNull(report1);
-
- testAttributesFromCloneBug(report1, true);
-
- bugid = "10";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_30_URL);
- TaskData report2 = init(bugid);
-
- assertNotNull(report2);
- assertEquals("" + bugid, report2.getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey()).getValue());
- assertEquals("2.00", report2.getRoot().getAttribute(BugzillaAttribute.REMAINING_TIME.getKey()).getValue());
- assertEquals("2.00", report2.getRoot().getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()).getValue());
- assertEquals("2008-01-01", report2.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()).getValue());
-
- assertEquals("Clone Bug 2", report2.getRoot().getAttribute(BugzillaAttribute.SHORT_DESC.getKey()).getValue());
- assertEquals("other Bug for cloneTaskData", report2.getRoot()
- .getAttribute(BugzillaAttribute.LONG_DESC.getKey())
- .getValue());
- assertEquals("TestProduct", report2.getRoot().getAttribute(BugzillaAttribute.PRODUCT.getKey()).getValue());
- assertEquals("TestComponent", report2.getRoot().getAttribute(BugzillaAttribute.COMPONENT.getKey()).getValue());
- assertEquals("PC", report2.getRoot().getAttribute(BugzillaAttribute.REP_PLATFORM.getKey()).getValue());
- assertEquals("Mac OS", report2.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey()).getValue());
- assertEquals("unspecified", report2.getRoot().getAttribute(BugzillaAttribute.VERSION.getKey()).getValue());
- assertEquals("P2", report2.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
- assertEquals("critical", report2.getRoot().getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey()).getValue());
- assertEquals("ASSIGNED", report2.getRoot().getAttribute(BugzillaAttribute.BUG_STATUS.getKey()).getValue());
- assertEquals("2007-11-14 15:30", report2.getRoot()
- .getAttribute(BugzillaAttribute.CREATION_TS.getKey())
- .getValue());
- assertEquals("2008-04-08 20:03:35", report2.getRoot()
- .getAttribute(BugzillaAttribute.DELTA_TS.getKey())
- .getValue());
- // Same discrepancy as in above test related to "---" target milestone not being in repository coonfiguration
-// assertEquals("---", report2.getRoot().getAttribute(BugzillaAttribute.TARGET_MILESTONE.getKey()).getValue());
- assertEquals("tests2@mylyn.eclipse.org", report2.getRoot()
- .getAttribute(BugzillaAttribute.REPORTER.getKey())
- .getValue());
- assertEquals("tests@mylyn.eclipse.org", report2.getRoot()
- .getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey())
- .getValue());
- }
-
- public void testCharacterEscaping() throws CoreException {
- String bugid = "17";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_30_URL);
- TaskData report1 = init(bugid);
- assertEquals("Testing! \"&@ $\" &amp;", report1.getRoot()
- .getAttribute(BugzillaAttribute.SHORT_DESC.getKey())
- .getValue());
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskHyperlinkDetectorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskHyperlinkDetectorTest.java
deleted file mode 100644
index c8d628c4f..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskHyperlinkDetectorTest.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskHyperlinkDetector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author Rob Elves
- * @author Terry Hon
- */
-public class BugzillaTaskHyperlinkDetectorTest extends TestCase {
-
- private static final String DUPLICATE_NUMBER = "112233";
-
- private static final String DUPLICATE = "duplicate of " + DUPLICATE_NUMBER;
-
- private final String TASK_FORMAT_1 = "task#1";
-
- private final String TASK_FORMAT_2 = "task# 1";
-
- private final String TASK_FORMAT_3 = "task1";
-
- private final String TASK_FORMAT_4 = "task #1";
-
- private final String BUG_FORMAT_1 = "bug# 1";
-
- private final String BUG_FORMAT_2 = "bug # 1";
-
- private final String BUG_FORMAT_3 = "bug1";
-
- private final String BUG_FORMAT_4 = "bug #1";
-
- private final String BUG_FORMAT_1_2 = "bug# 2";
-
- //private BugzillaTaskHyperlinkDetector detector = new BugzillaTaskHyperlinkDetector();
- private TaskHyperlinkDetector detector;
-
- private TaskRepository repository1;
-
- private TaskRepository repository2;
-
- private TextViewer viewer;
-
- private String[] formats;
-
- private TaskRepositoryManager repositoryManager;
-
- private Shell shell;
-
- protected TaskRepository activeRepository;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- detector = new TaskHyperlinkDetector();
-
- repository1 = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, "repository_url1");
- repository2 = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, "repository_url2");
-
- detector.setContext(new IAdaptable() {
- @SuppressWarnings("unchecked")
- public Object getAdapter(Class adapter) {
- return (adapter == TaskRepository.class) ? activeRepository : null;
- }
- });
- setRepository(repository1);
-
- shell = new Shell();
- viewer = new TextViewer(shell, SWT.NONE);
-
- repositoryManager = TasksUiPlugin.getRepositoryManager();
- repositoryManager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- formats = new String[] { TASK_FORMAT_1, TASK_FORMAT_2, TASK_FORMAT_3, TASK_FORMAT_4, BUG_FORMAT_1,
- BUG_FORMAT_2, BUG_FORMAT_3, BUG_FORMAT_4 };
- }
-
- private void setRepository(final TaskRepository repository) {
- this.activeRepository = repository;
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- detector.dispose();
- repositoryManager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- shell.dispose();
- }
-
- public void testBeginning() {
- for (String format : formats) {
- String testString = format + " is at the beginning";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, false);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(testString.indexOf(format), links[0].getHyperlinkRegion().getOffset());
- }
- }
-
- public void testEnd() {
- for (String format : formats) {
- String testString = "is ends with " + format;
- viewer.setDocument(new Document(testString));
- int i = testString.indexOf(format);
- Region region = new Region(i, testString.length() - i);
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, false);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(i, links[0].getHyperlinkRegion().getOffset());
- }
- }
-
- public void testMiddle() {
- for (String format : formats) {
- String testString = "is a " + format + " in the middle";
- viewer.setDocument(new Document(testString));
- int i = testString.indexOf(format);
- Region region = new Region(i, testString.length() - i);
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, false);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(testString.indexOf(format), links[0].getHyperlinkRegion().getOffset());
- }
- }
-
- public void testTwoOnSingleLine() {
- String testString = "is a " + BUG_FORMAT_1 + " in the middle and at the end " + BUG_FORMAT_1_2;
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, false);
- assertNotNull(links);
- assertEquals(2, links.length);
- assertEquals(testString.indexOf(BUG_FORMAT_1), links[0].getHyperlinkRegion().getOffset());
- assertEquals(testString.indexOf(BUG_FORMAT_1_2), links[1].getHyperlinkRegion().getOffset());
- }
-
- public void testMultiLine() {
- String testString = "is a the first line\n this is the second which ends with a bug, " + BUG_FORMAT_1_2;
- viewer.setDocument(new Document(testString));
- int i = testString.indexOf(BUG_FORMAT_1_2);
- Region region = new Region(i, testString.length() - i);
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, false);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(i, links[0].getHyperlinkRegion().getOffset());
- }
-
- public void testDuplicate() {
- String testString = "*** This bug has been marked as a " + DUPLICATE + " ***";
- viewer.setDocument(new Document(testString));
- int i = testString.indexOf(DUPLICATE);
- Region region = new Region(i, testString.length() - i);
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, false);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(testString.indexOf(DUPLICATE_NUMBER), links[0].getHyperlinkRegion().getOffset());
- }
-
- public void testNoRepositoryInViewNoRepositoryInManager() {
- String testString = "bug 123";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- setRepository(null);
-
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNull(links);
- }
-
- public void testRepositoryInViewNoRepositoryInManager() {
- String testString = "bug 123";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- setRepository(repository1);
-
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertTrue(links[0] instanceof TaskHyperlink);
- assertEquals(((TaskHyperlink) links[0]).getRepository(), repository1);
- }
-
- public void testNoRepositoryInViewOneRepositoryInManager() {
- String testString = "bug 123";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- setRepository(null);
-
- repositoryManager.addRepository(repository1);
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertTrue(links[0] instanceof TaskHyperlink);
- assertEquals(((TaskHyperlink) links[0]).getRepository(), repository1);
- }
-
- public void testRepositoryInViewOneRepositoryInManager() {
- String testString = "bug 123";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- setRepository(repository1);
- repositoryManager.addRepository(repository1);
-
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertTrue(links[0] instanceof TaskHyperlink);
- assertEquals(((TaskHyperlink) links[0]).getRepository(), repository1);
- }
-
- public void testNoRepositoryInViewTwoRepositoryInManager() {
- String testString = "bug 123";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- setRepository(null);
- repositoryManager.addRepository(repository1);
- repositoryManager.addRepository(repository2);
-
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNotNull(links);
- assertEquals(2, links.length);
- assertTrue(links[0] instanceof TaskHyperlink);
- assertEquals(((TaskHyperlink) links[0]).getRepository(), repository1);
- assertTrue(links[1] instanceof TaskHyperlink);
- assertEquals(((TaskHyperlink) links[1]).getRepository(), repository2);
- }
-
- public void testRepositoryInViewTwoRepositoryInManager() {
- String testString = "bug 123";
- viewer.setDocument(new Document(testString));
- Region region = new Region(0, testString.length());
- setRepository(repository1);
- repositoryManager.addRepository(repository1);
- repositoryManager.addRepository(repository2);
-
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertTrue(links[0] instanceof TaskHyperlink);
- assertEquals(((TaskHyperlink) links[0]).getRepository(), repository1);
- }
-
- public void testMatchMultipleEmptyRegion() {
- String testString = "bug 123 bug 345";
- viewer.setDocument(new Document(testString));
- Region region = new Region(10, 0);
- setRepository(repository1);
- repositoryManager.addRepository(repository1);
-
- IHyperlink[] links = detector.detectHyperlinks(viewer, region, true);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertTrue(links[0] instanceof TaskHyperlink);
- assertEquals("345", ((TaskHyperlink) links[0]).getTaskId());
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListTest.java
deleted file mode 100644
index 77546712a..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Mik Kersten
- */
-public class BugzillaTaskListTest extends TestCase {
-
- private TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- TasksUiPlugin.getTaskList().reset();
- TasksUiPlugin.getExternalizationManager().save(true);
- repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaConstants.ECLIPSE_BUGZILLA_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- assertEquals(0, TasksUiPlugin.getTaskList().getAllTasks().size());
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- TasksUiPlugin.getTaskList().reset();
- TasksUiPlugin.getExternalizationManager().save(true);
- TasksUiPlugin.getRepositoryManager().removeRepository(repository,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- @SuppressWarnings("null")
- public void testRemindedPersistance() throws Exception {
-
- String repositoryUrl = "https://bugs.eclipse.org/bugs";
-
- String bugNumber = "106939";
-
- ITask task = TasksUi.getRepositoryModel().createTask(repository, bugNumber);
- TaskTask task1 = null;
- if (task instanceof TaskTask) {
- task1 = (TaskTask) task;
- }
- assertNotNull(task1);
-
- TasksUiPlugin.getTaskList().addTask(task1);
-
- task1.setReminded(true);
- TaskTestUtil.saveAndReadTasklist();
-
- TaskList taskList = TasksUiPlugin.getTaskList();
- assertEquals(1, taskList.getAllTasks().size());
- Set<ITask> tasksReturned = taskList.getTasks(repositoryUrl);
- assertNotNull(tasksReturned);
- assertEquals(1, tasksReturned.size());
- for (ITask taskRet : tasksReturned) {
- assertTrue(((AbstractTask) taskRet).isReminded());
- }
- }
-
- @SuppressWarnings("null")
- public void testRepositoryTaskExternalization() throws Exception {
- ITask task = TasksUi.getRepositoryModel().createTask(repository, "1");
- TaskTask repositoryTask = null;
- if (task instanceof TaskTask) {
- repositoryTask = (TaskTask) task;
- }
- assertNotNull(repositoryTask);
- repositoryTask.setTaskKind("kind");
- TasksUiPlugin.getTaskList().addTask(repositoryTask);
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, TasksUiPlugin.getTaskList()
- .getUnmatchedContainer(IBugzillaConstants.ECLIPSE_BUGZILLA_URL)
- .getChildren()
- .size());
- ITask readTask = TasksUiPlugin.getTaskList()
- .getUnmatchedContainer(IBugzillaConstants.ECLIPSE_BUGZILLA_URL)
- .getChildren()
- .iterator()
- .next();
-
- assertEquals(repositoryTask.getHandleIdentifier(), readTask.getHandleIdentifier());
- assertEquals(repositoryTask.getSummary(), readTask.getSummary());
- assertEquals(repositoryTask.getTaskKind(), readTask.getTaskKind());
- }
-
- public void testQueryExternalization() throws Exception {
- RepositoryQuery query = (RepositoryQuery) TasksUi.getRepositoryModel().createRepositoryQuery(repository);
- assertEquals("https://bugs.eclipse.org/bugs", query.getRepositoryUrl());
- assertEquals("<never>", query.getLastSynchronizedTimeStamp());
- query.setLastSynchronizedStamp("today");
- TasksUiPlugin.getTaskList().addQuery(query);
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, TasksUiPlugin.getTaskList().getQueries().size());
- IRepositoryQuery readQuery = TasksUiPlugin.getTaskList().getQueries().iterator().next();
- assertEquals(query.getRepositoryUrl(), readQuery.getRepositoryUrl());
- assertEquals("today", query.getLastSynchronizedTimeStamp());
- assertEquals("https://bugs.eclipse.org/bugs", readQuery.getRepositoryUrl());
- }
-
- public void testDeleteQuery() {
- RepositoryQuery query = new RepositoryQuery(BugzillaCorePlugin.CONNECTOR_KIND, "queryUrl");
- query.setRepositoryUrl("repositoryUrl");
- TasksUiPlugin.getTaskList().addQuery(query);
-
- IRepositoryQuery readQuery = TasksUiPlugin.getTaskList().getQueries().iterator().next();
- assertEquals(query, readQuery);
-
- TasksUiPlugin.getTaskList().deleteQuery(query);
- assertEquals(0, TasksUiPlugin.getTaskList().getQueries().size());
- }
-
- public void testDeleteQueryAfterRename() {
- RepositoryQuery query = new RepositoryQuery(BugzillaCorePlugin.CONNECTOR_KIND, "queryUrl");
- query.setRepositoryUrl("repositoryUrl");
- TasksUiPlugin.getTaskList().addQuery(query);
-
- IRepositoryQuery readQuery = TasksUiPlugin.getTaskList().getQueries().iterator().next();
- assertEquals(query, readQuery);
- query.setSummary("newName");
- TasksUiPlugin.getTaskList().deleteQuery(query);
- assertEquals(0, TasksUiPlugin.getTaskList().getQueries().size());
- }
-
- public void testCreateQueryWithSameName() {
- RepositoryQuery query = new RepositoryQuery(BugzillaCorePlugin.CONNECTOR_KIND, "queryUrl");
- query.setRepositoryUrl("repositoryUrl");
- TasksUiPlugin.getTaskList().addQuery(query);
- assertEquals(1, TasksUiPlugin.getTaskList().getQueries().size());
- IRepositoryQuery readQuery = TasksUiPlugin.getTaskList().getQueries().iterator().next();
- assertEquals(query, readQuery);
-
- try {
- query = new RepositoryQuery(BugzillaCorePlugin.CONNECTOR_KIND, "queryUrl");
- query.setRepositoryUrl("repositoryUrl");
- TasksUiPlugin.getTaskList().addQuery(query);
- fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- if (!e.getMessage().equals("Handle queryUrl already exists in task list")) {
- throw e;
- }
- }
- assertEquals(1, TasksUiPlugin.getTaskList().getQueries().size());
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestPlugin.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestPlugin.java
deleted file mode 100644
index f1aabebd2..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestPlugin.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class BugzillaTestPlugin extends AbstractUIPlugin {
- // The shared instance.
- private static BugzillaTestPlugin plugin;
-
- // Resource bundle.
- private ResourceBundle resourceBundle;
-
- /**
- * The constructor.
- */
- public BugzillaTestPlugin() {
- super();
- plugin = this;
- }
-
- /**
- * This method is called upon plug-in activation
- */
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- }
-
- /**
- * This method is called when the plug-in is stopped
- */
- @Override
- public void stop(BundleContext context) throws Exception {
- super.stop(context);
- plugin = null;
- resourceBundle = null;
- }
-
- /**
- * Returns the shared instance.
- */
- public static BugzillaTestPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns the string from the plugin's resource bundle, or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = BugzillaTestPlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- } catch (MissingResourceException e) {
- return key;
- }
- }
-
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- try {
- if (resourceBundle == null) {
- resourceBundle = ResourceBundle.getBundle("org.eclipse.mylyn.bugzilla.tests.TestsPluginResources");
- }
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- return resourceBundle;
- }
-
- /**
- * Returns an image descriptor for the image file at the given plug-in relative path.
- *
- * @param path
- * the path
- * @return the image descriptor
- */
- public static ImageDescriptor getImageDescriptor(String path) {
- return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.mylyn.bugzilla.tests", path);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestUtil.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestUtil.java
deleted file mode 100644
index 641a77fbf..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTestUtil.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.mylyn.tasks.tests.TasksTestsPlugin;
-
-/**
- * @author Mik Kersten
- */
-public class BugzillaTestUtil {
-
- public static File getLocalFile(String path) {
- try {
- URL installURL = TasksTestsPlugin.getDefault().getBundle().getEntry(path);
- URL localURL = FileLocator.toFileURL(installURL);
- return new File(localURL.getFile());
- } catch (IOException e) {
- return null;
- }
- }
-
- /**
- * Adapted from Java Developers' almanac
- */
- public static void copy(File source, File dest) throws IOException {
- InputStream in = new FileInputStream(source);
- OutputStream out = new FileOutputStream(dest);
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0) {
- out.write(buf, 0, len);
- }
- in.close();
- out.close();
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaVersionTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaVersionTest.java
deleted file mode 100644
index 675603402..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaVersionTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaVersion;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaVersionTest extends TestCase {
-
- public final static BugzillaVersion BUGZILLA_2_18_1 = new BugzillaVersion("2.18.1");
-
- public final static BugzillaVersion BUGZILLA_2_18_2 = new BugzillaVersion("2.18.2");
-
- public final static BugzillaVersion BUGZILLA_2_20_3 = new BugzillaVersion("2.20.3");
-
- public final static BugzillaVersion BUGZILLA_3_0_4 = new BugzillaVersion("3.0.4");
-
- public void testwrongVersion() throws Exception {
- BugzillaVersion version = new BugzillaVersion("3.2.X");
- assertEquals("3.2", version.toString());
- }
-
- public void testMissingVersion() throws Exception {
- BugzillaVersion version = new BugzillaVersion("3..1.X.");
- assertEquals("3.0.1", version.toString());
- }
-
- public void testRCVersions() throws Exception {
- BugzillaVersion versionRC1 = new BugzillaVersion("3.2RC1");
- assertEquals("3.2RC1", versionRC1.toString());
- BugzillaVersion versionRC2 = new BugzillaVersion("3.2RC2");
- assertEquals("3.2RC2", versionRC2.toString());
- assertEquals(-1, versionRC1.compareTo(versionRC2));
- assertEquals(1, versionRC2.compareTo(versionRC1));
- assertEquals(-1, versionRC1.compareTo(BugzillaVersion.BUGZILLA_3_2));
- assertEquals(0, versionRC1.compareMajorMinorOnly(BugzillaVersion.BUGZILLA_3_2));
- }
-
- public void testCompareAll() throws Exception {
- assertEquals(0, BUGZILLA_2_18_1.compareTo(BUGZILLA_2_18_1));
- assertEquals(-1, BUGZILLA_2_18_1.compareTo(BUGZILLA_2_18_2));
- assertEquals(1, BUGZILLA_2_18_2.compareTo(BUGZILLA_2_18_1));
-
- assertEquals(-1, BUGZILLA_2_18_1.compareTo(BUGZILLA_2_20_3));
- assertEquals(1, BUGZILLA_3_0_4.compareMajorMinorOnly(BUGZILLA_2_20_3));
- }
-
- public void testCompareMajorMinorOnly() throws Exception {
- assertEquals(0, BUGZILLA_2_18_1.compareMajorMinorOnly(BUGZILLA_2_18_1));
- assertEquals(0, BUGZILLA_2_18_1.compareMajorMinorOnly(BUGZILLA_2_18_2));
- assertEquals(0, BUGZILLA_2_18_2.compareMajorMinorOnly(BUGZILLA_2_18_1));
-
- assertEquals(-1, BUGZILLA_2_18_1.compareMajorMinorOnly(BUGZILLA_2_20_3));
- assertEquals(1, BUGZILLA_3_0_4.compareMajorMinorOnly(BUGZILLA_2_20_3));
- }
-
- public void testToString() throws Exception {
- assertEquals("2.18.1", BUGZILLA_2_18_1.toString());
- assertEquals("3.0.4", BUGZILLA_3_0_4.toString());
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java
deleted file mode 100644
index 02aed29ad..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-
-/**
- * @author Mik Kersten
- */
-public class EncodingTest extends AbstractBugzillaTest {
-
- public void testEncodingSetting() {
-
- String charset = BugzillaClient.getCharsetFromString("text/html; charset=UTF-8");
- assertEquals("UTF-8", charset);
-
- charset = BugzillaClient.getCharsetFromString("text/html");
- assertEquals(null, charset);
-
- charset = BugzillaClient.getCharsetFromString("<<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\">>");
- assertEquals("iso-8859-2", charset);
-
- charset = BugzillaClient.getCharsetFromString("<<meta http-equiv=\"Content-Type\" content=\"text/html\">>");
- assertEquals(null, charset);
- }
-
- /**
- * This test just shows that when the encoding is changed on the repository synchronization does in fact return in a
- * different encoding (though it may not be legible)
- */
- public void testDifferentReportEncoding() throws CoreException {
- init222();
- repository.setCharacterEncoding("UTF-8");
- ITask task = generateLocalTaskAndDownload("57");
- assertNotNull(task);
- assertTrue(task.getSummary().equals("\u00E6"));//"\u05D0"));
- taskList.deleteTask(task);
- connector.getClientManager().repositoryRemoved(repository);
- repository.setCharacterEncoding("ISO-8859-1");
- task = generateLocalTaskAndDownload("57");
- assertNotNull(task);
- // iso-8859-1 'incorrect' interpretation
- assertFalse(task.getSummary().equals("\u00E6"));//"\u05D0"));
- }
-
- public void testProperEncodingUponPost() throws CoreException {
- init222();
- repository.setCharacterEncoding("UTF-8");
- ITask task = generateLocalTaskAndDownload("57");
- assertNotNull(task);
- assertTrue(task.getSummary().equals("\u00E6"));//"\u05D0"));
- String priority = null;
- TaskDataModel model = createModel(task);
- if (task.getPriority().equals("P1")) {
- priority = "P2";
- TaskAttribute attrPriority = model.getTaskData()
- .getRoot()
- .getAttribute(BugzillaAttribute.PRIORITY.getKey());
- if (attrPriority != null) {
- attrPriority.setValue(priority);
- model.attributeChanged(attrPriority);
- } else {
- fail();
- }
- } else {
- priority = "P1";
- TaskAttribute attrPriority = model.getTaskData()
- .getRoot()
- .getAttribute(BugzillaAttribute.PRIORITY.getKey());
- if (attrPriority != null) {
- attrPriority.setValue(priority);
- model.attributeChanged(attrPriority);
- } else {
- fail();
- }
- }
- model.save(new NullProgressMonitor());
-
- submit(model);
- taskList.deleteTask(task);
- task = generateLocalTaskAndDownload("57");
- assertNotNull(task);
- assertTrue(task.getSummary().equals("\u00E6"));//"\u05D0"));
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/IBugzillaTestConstants.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/IBugzillaTestConstants.java
deleted file mode 100644
index 985c45e11..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/IBugzillaTestConstants.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-/**
- * @author Frank Becker
- */
-public interface IBugzillaTestConstants {
-
- static final String TEST_BUGZILLA_218_URL = "http://mylyn.eclipse.org/bugs218"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_220_URL = "http://mylyn.eclipse.org/bugs220"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_2201_URL = "http://mylyn.eclipse.org/bugs2201"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_222_URL = "http://mylyn.eclipse.org/bugs222"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_30_URL = "http://mylyn.eclipse.org/bugs30"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_303_URL = "http://mylyn.eclipse.org/bugs303"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_31_URL = "http://mylyn.eclipse.org/bugs31"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_32_URL = "http://mylyn.eclipse.org/bugs32"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_322_URL = "http://mylyn.eclipse.org/bugs322"; //$NON-NLS-1$
-
- static final String TEST_BUGZILLA_323_URL = "http://mylyn.eclipse.org/bugs323"; //$NON-NLS-1$
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryEditorWizardTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryEditorWizardTest.java
deleted file mode 100644
index d739ae4a6..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryEditorWizardTest.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.net.MalformedURLException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClientFactory;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.ui.tasklist.BugzillaRepositorySettingsPage;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Rob Elves
- */
-public class RepositoryEditorWizardTest extends TestCase {
-
- private TaskRepositoryManager manager;
-
- private TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- Credentials credentials = TestUtil.readCredentials();
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- }
-
- private BugzillaClient createClient(String hostUrl, String username, String password, String htAuthUser,
- String htAuthPass, String encoding) throws MalformedURLException {
- TaskRepository taskRepository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, hostUrl);
-
- AuthenticationCredentials credentials = new AuthenticationCredentials(username, password);
- taskRepository.setCredentials(AuthenticationType.REPOSITORY, credentials, false);
-
- AuthenticationCredentials webCredentials = new AuthenticationCredentials(htAuthUser, htAuthPass);
- taskRepository.setCredentials(AuthenticationType.HTTP, webCredentials, false);
- taskRepository.setCharacterEncoding(encoding);
- return BugzillaClientFactory.createClient(taskRepository);
- }
-
- public void testValidationInvalidPassword() throws Exception {
-
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard);
- dialog.create();
- BugzillaRepositorySettingsPage page = (BugzillaRepositorySettingsPage) wizard.getSettingsPage();
- // BugzillaClient client =
- // BugzillaClientFactory.createClient(page.getServerUrl(),
- // page.getUserName(), page.getPassword(), page.getHttpAuthUserId(),
- // page.getHttpAuthPassword(), page.getCharacterEncoding());
- page.setPassword("bogus");
- try {
- BugzillaClient client = createClient(page.getRepositoryUrl(), page.getUserName(), page.getPassword(),
- page.getHttpAuthUserId(), page.getHttpAuthPassword(), page.getCharacterEncoding());
- client.validate(null);
- } catch (CoreException e) {
- return;
- }
- fail("LoginException didn't occur!");
- }
-
- public void testValidationInvalidUserid() throws Exception {
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard);
- dialog.create();
- BugzillaRepositorySettingsPage page = (BugzillaRepositorySettingsPage) wizard.getSettingsPage();
- page.setUserId("bogus");
- try {
- BugzillaClient client = createClient(page.getRepositoryUrl(), page.getUserName(), page.getPassword(),
- page.getHttpAuthUserId(), page.getHttpAuthPassword(), page.getCharacterEncoding());
- client.validate(null);
- } catch (CoreException e) {
- return;
- }
- fail("LoginException didn't occur!");
- }
-
- public void testValidationInvalidUrl() throws Exception {
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard);
- dialog.create();
- BugzillaRepositorySettingsPage page = (BugzillaRepositorySettingsPage) wizard.getSettingsPage();
- page.setUrl("http://mylar.eclipse.org");
- try {
- BugzillaClient client = createClient(page.getRepositoryUrl(), page.getUserName(), page.getPassword(),
- page.getHttpAuthUserId(), page.getHttpAuthPassword(), page.getCharacterEncoding());
- client.validate(null);
- fail("UnknownHostException didn't occur!");
- } catch (CoreException e) {
- // skip assertion, some environments will still resolve invalid addresses
- //assertTrue(e.getStatus().getException() instanceof UnknownHostException);
- }
- }
-
- // TODO: Test locking up?
- // public void testAutoVersion() throws Exception {
- // repository.setVersion(BugzillaRepositorySettingsPage.LABEL_AUTOMATIC_VERSION);
- // EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- // WizardDialog dialog = new
- // WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(),
- // wizard);
- // dialog.create();
- // BugzillaRepositorySettingsPage page = (BugzillaRepositorySettingsPage)
- // wizard.getSettingsPage();
- // page.setTesting(true);
- // assertEquals(BugzillaRepositorySettingsPage.LABEL_AUTOMATIC_VERSION,
- // page.getVersion());
- // page.validateSettings();
- // assertEquals("2.22", page.getVersion());
- // }
-
- public void testPersistChangeOfUrl() throws Exception {
- assertEquals(1, manager.getAllRepositories().size());
- String tempUid = repository.getUserName();
- String tempPass = repository.getPassword();
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard);
- dialog.create();
- BugzillaRepositorySettingsPage page = (BugzillaRepositorySettingsPage) wizard.getSettingsPage();
- BugzillaClient client = createClient(page.getRepositoryUrl(), page.getUserName(), page.getPassword(),
- page.getHttpAuthUserId(), page.getHttpAuthPassword(), page.getCharacterEncoding());
- client.validate(null);
- page.setUrl(IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- wizard.performFinish();
- assertEquals(1, manager.getAllRepositories().size());
- TaskRepository repositoryTest = manager.getRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- assertNotNull(repositoryTest);
- assertEquals(tempUid, repositoryTest.getUserName());
- assertEquals(tempPass, repositoryTest.getPassword());
- }
-
- public void testPersistChangeUserId() throws Exception {
- assertEquals(1, manager.getAllRepositories().size());
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard);
- dialog.create();
- BugzillaRepositorySettingsPage page = (BugzillaRepositorySettingsPage) wizard.getSettingsPage();
- BugzillaClient client = createClient(page.getRepositoryUrl(), page.getUserName(), page.getPassword(),
- page.getHttpAuthUserId(), page.getHttpAuthPassword(), page.getCharacterEncoding());
- client.validate(null);
- page.setUserId("bogus");
- wizard.performFinish();
- assertEquals(1, manager.getAllRepositories().size());
- TaskRepository repositoryTest = manager.getRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- assertNotNull(repositoryTest);
- wizard = new EditRepositoryWizard(repositoryTest);
- dialog = new WizardDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), wizard);
- dialog.create();
- page = (BugzillaRepositorySettingsPage) wizard.getSettingsPage();
- try {
- client = createClient(page.getRepositoryUrl(), page.getUserName(), page.getPassword(),
- page.getHttpAuthUserId(), page.getHttpAuthPassword(), page.getCharacterEncoding());
- client.validate(null);
- } catch (CoreException e) {
- return;
- }
- fail("LoginException didn't occur!");
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryReportFactoryTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryReportFactoryTest.java
deleted file mode 100644
index 4c646cd80..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryReportFactoryTest.java
+++ /dev/null
@@ -1,464 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.text.SimpleDateFormat;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class RepositoryReportFactoryTest extends TestCase {
-
-// BugzillaAttributeFactory attributeFactory = new BugzillaAttributeFactory();
-
- TaskRepository repository;
-
- BugzillaRepositoryConnector connector;
-
- private TaskData init(String taskId) throws CoreException {
- return connector.getTaskData(repository, taskId, new NullProgressMonitor());
- }
-
- private TaskRepository setRepository(String kind, String url) {
- connector = (BugzillaRepositoryConnector) TasksUiPlugin.getRepositoryManager().getRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
- repository = new TaskRepository(kind, url);
- Credentials credentials = TestUtil.readCredentials();
- repository.setAuthenticationCredentials(credentials.username, credentials.password);
- return repository;
- }
-
- public void testInvalidCredentials222() throws Exception {
- String bugid = "1";
- String errorMessage = "";
- try {
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- repository.setAuthenticationCredentials("invalid", "invalid");
- init(bugid);
- } catch (CoreException e) {
- errorMessage = e.getStatus().getMessage();
- }
- assertTrue(errorMessage.startsWith("Unable to login"));
- repository.flushAuthenticationCredentials();
- }
-
- public void testBugNotFound222() {
-
- String bugid = "-1";
- String errorMessage = "";
- try {
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- // If this isn't called the BugzillaClient will be reused (with old
- // credentials) so
- // force drop of old client connection.
- // Note that this is usually called by notification
- connector.getClientManager().repositoryAdded(repository);
- init(bugid);
- } catch (CoreException e) {
- errorMessage = e.getStatus().getMessage();
- }
- assertTrue(errorMessage.startsWith("Repository error from"));
- }
-
- // public void testReadingReport() throws Exception {
- // String bugid = "2";
- // setRepository(BugzillaCorePlugin.REPOSITORY_KIND,
- // IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- // RepositoryTaskData report = init(bugid);
- //
- // assertNotNull(report);
- // assertEquals("search-match-test 1",
- // report.getAttribute(BugzillaReportElement.SHORT_DESC.getKeyString())
- // .getValue());
- // assertEquals("TestProduct",
- // report.getAttribute(BugzillaReportElement.PRODUCT.getKeyString()).getValue());
- // assertEquals("PC",
- // report.getAttribute(BugzillaReportElement.REP_PLATFORM.getKeyString()).getValue());
- // assertEquals("Windows",
- // report.getAttribute(BugzillaReportElement.OP_SYS.getKeyString()).getValue());
- // // first comment (#0) is the summary so this value is always 1
- // // greater
- // // than what is shown on the report ui
- // assertEquals(3, report.getComments().size());
- // assertEquals("search-match-test 1",
- // report.getComments().get(0).getAttribute(
- // BugzillaReportElement.THETEXT.getKeyString()).getValue());
- // // assertEquals(15, report.getAttachments().size());
- // // assertEquals("1",
- // //
- // report.getAttachments().get(0).getAttribute(BugzillaReportElement.ATTACHID).getValue());
- // // assertEquals("2006-03-10 14:11",
- // //
- // report.getAttachments().get(0).getAttribute(BugzillaReportElement.DATE)
- // // .getValue());
- // // assertEquals("Testing upload",
- // //
- // report.getAttachments().get(0).getAttribute(BugzillaReportElement.DESC)
- // // .getValue());
- // // assertEquals("patch130217.txt",
- // //
- // report.getAttachments().get(0).getAttribute(BugzillaReportElement.FILENAME)
- // // .getValue());
- // // assertEquals("text/plain",
- // //
- // report.getAttachments().get(0).getAttribute(BugzillaReportElement.TYPE).getValue());
- // }
-
- public void testReadingReport222() throws Exception {
- String bugid = "2";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- TaskData report = init(bugid);
-
- assertNotNull(report);
- assertEquals("search-match-test 1", report.getRoot()
- .getAttribute(BugzillaAttribute.SHORT_DESC.getKey())
- .getValue());
- assertEquals("search-match-test 1", report.getRoot()
- .getAttribute(BugzillaAttribute.LONG_DESC.getKey())
- .getValue());
- assertEquals("TestProduct", report.getRoot().getAttribute(BugzillaAttribute.PRODUCT.getKey()).getValue());
- assertEquals("TestComponent", report.getRoot().getAttribute(BugzillaAttribute.COMPONENT.getKey()).getValue());
- assertEquals("PC", report.getRoot().getAttribute(BugzillaAttribute.REP_PLATFORM.getKey()).getValue());
- assertEquals("Windows", report.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey()).getValue());
- assertEquals("other", report.getRoot().getAttribute(BugzillaAttribute.VERSION.getKey()).getValue());
- assertEquals("P1", report.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
- assertEquals("normal", report.getRoot().getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey()).getValue());
- assertEquals("" + bugid, report.getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey()).getValue());
- assertEquals("NEW", report.getRoot().getAttribute(BugzillaAttribute.BUG_STATUS.getKey()).getValue());
- assertEquals("2006-05-23 17:46", report.getRoot()
- .getAttribute(BugzillaAttribute.CREATION_TS.getKey())
- .getValue());
- assertEquals("2008-07-04 16:33:55", report.getRoot()
- .getAttribute(BugzillaAttribute.DELTA_TS.getKey())
- .getValue());
- assertEquals("relves@cs.ubc.ca", report.getRoot().getAttribute(BugzillaAttribute.REPORTER.getKey()).getValue());
- assertEquals("nhapke@cs.ubc.ca", report.getRoot()
- .getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey())
- .getValue());
- // test comments
- List<TaskAttribute> comments = report.getAttributeMapper().getAttributesByType(report,
- TaskAttribute.TYPE_COMMENT);
- assertEquals(6, comments.size());
- TaskCommentMapper commentMap = TaskCommentMapper.createFrom(comments.get(0));
- assertEquals("relves@cs.ubc.ca", commentMap.getAuthor().getPersonId());
- assertEquals("browser comment", commentMap.getText());
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- assertEquals(format.parse("2006-05-30 18:56"), commentMap.getCreationDate());
- }
-
- public void testReadingReport2201() throws Exception {
- String bugid = "1";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_2201_URL);
- TaskData report = init(bugid);
-
- assertNotNull(report);
- assertEquals("1", report.getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey()).getValue());
- assertEquals("search-match-test 1", report.getRoot()
- .getAttribute(BugzillaAttribute.SHORT_DESC.getKey())
- .getValue());
- assertEquals("TestProduct", report.getRoot().getAttribute(BugzillaAttribute.PRODUCT.getKey()).getValue());
- assertEquals("TestComponent", report.getRoot().getAttribute(BugzillaAttribute.COMPONENT.getKey()).getValue());
- assertEquals("PC", report.getRoot().getAttribute(BugzillaAttribute.REP_PLATFORM.getKey()).getValue());
- assertEquals("Windows", report.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey()).getValue());
- assertEquals("other", report.getRoot().getAttribute(BugzillaAttribute.VERSION.getKey()).getValue());
- assertEquals("P2", report.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
- assertEquals("normal", report.getRoot().getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey()).getValue());
- assertEquals("NEW", report.getRoot().getAttribute(BugzillaAttribute.BUG_STATUS.getKey()).getValue());
- assertEquals("2006-03-02 18:13", report.getRoot()
- .getAttribute(BugzillaAttribute.CREATION_TS.getKey())
- .getValue());
- assertEquals("2006-05-03 13:06:11", report.getRoot()
- .getAttribute(BugzillaAttribute.DELTA_TS.getKey())
- .getValue());
- TaskAttribute attribute = report.getRoot().getAttribute(BugzillaAttribute.BLOCKED.getKey());
- assertEquals("2, 9", attribute.getValue());
- attribute = report.getRoot().getAttribute(BugzillaAttribute.CC.getKey());
- assertEquals(2, attribute.getValues().size());
- assertEquals("relves@cs.ubc.ca", attribute.getValues().get(0));
- assertEquals("relves@gmail.com", attribute.getValues().get(1));
- assertEquals("relves@cs.ubc.ca", report.getRoot().getAttribute(BugzillaAttribute.REPORTER.getKey()).getValue());
- assertEquals("relves@cs.ubc.ca", report.getRoot()
- .getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey())
- .getValue());
- }
-
- // public void testReadingReport2201Eclipse() throws Exception {
- // String bugid = "24448";
- // TaskRepository repository = new
- // TaskRepository(BugzillaCorePlugin.REPOSITORY_KIND,
- // IBugzillaConstants.ECLIPSE_BUGZILLA_URL);
- //
- // RepositoryTaskData report = new RepositoryTaskData(attributeFactory,
- // BugzillaCorePlugin.REPOSITORY_KIND, repository
- // .getUrl(), bugid);
- // BugzillaServerFacade.setupExistingBugAttributes(repository.getUrl(),
- // report);
- // factory.populateReport(report, repository.getUrl(), null,
- // repository.getUserName(), repository.getPassword(),
- // null);
- //
- // assertNotNull(report);
- // assertEquals("24448",
- // report.getAttribute(BugzillaReportElement.BUG_ID.getKeyString()).getValue());
- // assertEquals("Ant causing Out of Memory",
- // report.getAttribute(BugzillaReportElement.SHORT_DESC.getKeyString())
- // .getValue());
- // assertEquals("Platform",
- // report.getAttribute(BugzillaReportElement.PRODUCT.getKeyString()).getValue());
- // assertEquals("Ant",
- // report.getAttribute(BugzillaReportElement.COMPONENT.getKeyString()).getValue());
- // assertEquals("PC",
- // report.getAttribute(BugzillaReportElement.REP_PLATFORM.getKeyString()).getValue());
- // assertEquals("other",
- // report.getAttribute(BugzillaReportElement.OP_SYS.getKeyString()).getValue());
- // assertEquals("2.0",
- // report.getAttribute(BugzillaReportElement.VERSION.getKeyString()).getValue());
- // assertEquals("P2",
- // report.getAttribute(BugzillaReportElement.PRIORITY.getKeyString()).getValue());
- // assertEquals("normal",
- // report.getAttribute(BugzillaReportElement.BUG_SEVERITY.getKeyString()).getValue());
- // assertEquals("RESOLVED",
- // report.getAttribute(BugzillaReportElement.BUG_STATUS.getKeyString()).getValue());
- // assertEquals("WONTFIX",
- // report.getAttribute(BugzillaReportElement.RESOLUTION.getKeyString()).getValue());
- // assertEquals("2002-10-07 09:32",
- // report.getAttribute(BugzillaReportElement.CREATION_TS.getKeyString())
- // .getValue());
- // assertEquals("2006-02-03 12:03:57",
- // report.getAttribute(BugzillaReportElement.DELTA_TS.getKeyString())
- // .getValue());
- // assertEquals("core, performance, ui",
- // report.getAttribute(BugzillaReportElement.KEYWORDS.getKeyString())
- // .getValue());
- // // RepositoryTaskAttribute attribute =
- // // report.getAttribute(BugzillaReportElement.CC);
- // // assertEquals(30, attribute.getValues().size());
- // // assertEquals("relves@cs.ubc.ca", attribute.getValues().get(0));
- // // assertEquals("relves@gmail.com", attribute.getValues().get(1));
- // // assertEquals("relves@cs.ubc.ca",
- // // report.getAttribute(BugzillaReportElement.REPORTER).getValue());
- // // assertEquals("relves@cs.ubc.ca",
- // // report.getAttribute(BugzillaReportElement.ASSIGNED_TO).getValue());
- // // assertEquals(1, report.getComments().size());
- // // assertEquals("relves@cs.ubc.ca",
- // //
- // report.getComments().get(0).getAttribute(BugzillaReportElement.WHO).getValue());
- // // assertEquals("2006-03-02 18:13",
- // //
- // report.getComments().get(0).getAttribute(BugzillaReportElement.BUG_WHEN)
- // // .getValue());
- // // assertEquals("search-match-test 1",
- // //
- // report.getComments().get(0).getAttribute(BugzillaReportElement.THETEXT)
- // // .getValue());
- // // assertEquals(0, report.getAttachments().size());
- // }
-
- // public void testReadingReport220() throws Exception {
- // String bugid = "1";
- // TaskRepository repository = new
- // TaskRepository(BugzillaCorePlugin.REPOSITORY_KIND,
- // IBugzillaTestConstants.TEST_BUGZILLA_220_URL);
- //
- // RepositoryTaskData report = new RepositoryTaskData(attributeFactory,
- // BugzillaCorePlugin.REPOSITORY_KIND,
- // repository.getUrl(), bugid);
- // BugzillaServerFacade.setupExistingBugAttributes(repository.getUrl(),
- // report);
- // factory.populateReport(report, repository.getUrl(), null,
- // repository.getUserName(), repository.getPassword(),
- // null);
- //
- // assertNotNull(report);
- // assertEquals("1",
- // report.getAttribute(BugzillaReportElement.BUG_ID.getKeyString()).getValue());
- // assertEquals("search-match-test",
- // report.getAttribute(BugzillaReportElement.SHORT_DESC.getKeyString())
- // .getValue());
- // assertEquals("TestProduct",
- // report.getAttribute(BugzillaReportElement.PRODUCT.getKeyString()).getValue());
- // assertEquals("TestComponent",
- // report.getAttribute(BugzillaReportElement.COMPONENT.getKeyString()).getValue());
- // assertEquals("PC",
- // report.getAttribute(BugzillaReportElement.REP_PLATFORM.getKeyString()).getValue());
- // assertEquals("Windows",
- // report.getAttribute(BugzillaReportElement.OP_SYS.getKeyString()).getValue());
- // assertEquals("other",
- // report.getAttribute(BugzillaReportElement.VERSION.getKeyString()).getValue());
- // assertEquals("P2",
- // report.getAttribute(BugzillaReportElement.PRIORITY.getKeyString()).getValue());
- // assertEquals("normal",
- // report.getAttribute(BugzillaReportElement.BUG_SEVERITY.getKeyString()).getValue());
- // assertEquals("NEW",
- // report.getAttribute(BugzillaReportElement.BUG_STATUS.getKeyString()).getValue());
- // assertEquals("2006-03-02 17:30",
- // report.getAttribute(BugzillaReportElement.CREATION_TS.getKeyString())
- // .getValue());
- // assertEquals("2006-04-20 15:13:43",
- // report.getAttribute(BugzillaReportElement.DELTA_TS.getKeyString())
- // .getValue());
- // assertEquals("---",
- // report.getAttribute(BugzillaReportElement.TARGET_MILESTONE.getKeyString()).getValue());
- // assertEquals("relves@cs.ubc.ca",
- // report.getAttribute(BugzillaReportElement.REPORTER.getKeyString()).getValue());
- // assertEquals("relves@cs.ubc.ca",
- // report.getAttribute(BugzillaReportElement.ASSIGNED_TO.getKeyString())
- // .getValue());
- // assertEquals("relves@cs.ubc.ca",
- // report.getAttribute(BugzillaReportElement.CC.getKeyString()).getValue());
- // assertEquals(3, report.getComments().size());
- // assertEquals("relves@cs.ubc.ca",
- // report.getComments().get(0).getAttribute(
- // BugzillaReportElement.WHO.getKeyString()).getValue());
- // assertEquals("2006-03-02 17:30",
- // report.getComments().get(0).getAttribute(
- // BugzillaReportElement.BUG_WHEN.getKeyString()).getValue());
- // assertEquals("search-match-test",
- // report.getComments().get(0).getAttribute(
- // BugzillaReportElement.THETEXT.getKeyString()).getValue());
- // assertEquals(0, report.getAttachments().size());
- // }
-
- public void testReadingReport218() throws Exception {
- String bugid = "1";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- TaskData report = init(bugid);
- assertNotNull(report);
- assertEquals("1", report.getRoot().getAttribute(BugzillaAttribute.BUG_ID.getKey()).getValue());
- assertEquals("search-match-test 1", report.getRoot()
- .getAttribute(BugzillaAttribute.SHORT_DESC.getKey())
- .getValue());
- assertEquals("TestProduct", report.getRoot().getAttribute(BugzillaAttribute.PRODUCT.getKey()).getValue());
- assertEquals("TestComponent", report.getRoot().getAttribute(BugzillaAttribute.COMPONENT.getKey()).getValue());
- assertEquals("PC", report.getRoot().getAttribute(BugzillaAttribute.REP_PLATFORM.getKey()).getValue());
- assertEquals("Windows XP", report.getRoot().getAttribute(BugzillaAttribute.OP_SYS.getKey()).getValue());
- assertEquals("other", report.getRoot().getAttribute(BugzillaAttribute.VERSION.getKey()).getValue());
- assertEquals("P2", report.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
- assertEquals("normal", report.getRoot().getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey()).getValue());
- assertEquals("NEW", report.getRoot().getAttribute(BugzillaAttribute.BUG_STATUS.getKey()).getValue());
- assertEquals("2006-03-02 18:09", report.getRoot()
- .getAttribute(BugzillaAttribute.CREATION_TS.getKey())
- .getValue());
- assertEquals("2006-05-05 17:45:24", report.getRoot()
- .getAttribute(BugzillaAttribute.DELTA_TS.getKey())
- .getValue());
- assertEquals("relves@cs.ubc.ca", report.getRoot().getAttribute(BugzillaAttribute.REPORTER.getKey()).getValue());
- assertEquals("relves@cs.ubc.ca", report.getRoot()
- .getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey())
- .getValue());
- assertEquals(0, report.getAttributeMapper().getAttributesByType(report, TaskAttribute.TYPE_ATTACHMENT).size());
- }
-
- public void testTimeTracking222() throws Exception {
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- TaskData report = init("11");
- assertEquals("7.50", report.getRoot().getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()).getValue());
- assertEquals("4.00", report.getRoot().getAttribute(BugzillaAttribute.ACTUAL_TIME.getKey()).getValue());
- assertEquals("3.00", report.getRoot().getAttribute(BugzillaAttribute.REMAINING_TIME.getKey()).getValue());
- assertEquals("2005-03-04", report.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()).getValue());
- }
-
- // public void testTimeTracking2201() throws Exception {
- // RepositoryTaskData report =
- // init(IBugzillaTestConstants.TEST_BUGZILLA_2201_URL, 23);
- //
- // assertEquals("7.50",
- // report.getAttribute(BugzillaReportElement.ESTIMATED_TIME.getKeyString()).getValue());
- // assertEquals("1.00",
- // report.getAttribute(BugzillaReportElement.ACTUAL_TIME.getKeyString()).getValue());
- // assertEquals("3.00",
- // report.getAttribute(BugzillaReportElement.REMAINING_TIME.getKeyString()).getValue());
- // assertEquals("2005-03-04",
- // report.getAttribute(BugzillaReportElement.DEADLINE.getKeyString()).getValue());
- // }
- //
- // public void testTimeTracking220() throws Exception {
- // RepositoryTaskData report =
- // init(IBugzillaTestConstants.TEST_BUGZILLA_220_URL, 9);
- //
- // assertEquals("7.50",
- // report.getAttribute(BugzillaReportElement.ESTIMATED_TIME.getKeyString()).getValue());
- // assertEquals("1.00",
- // report.getAttribute(BugzillaReportElement.ACTUAL_TIME.getKeyString()).getValue());
- // assertEquals("3.00",
- // report.getAttribute(BugzillaReportElement.REMAINING_TIME.getKeyString()).getValue());
- // assertEquals("2005-03-04",
- // report.getAttribute(BugzillaReportElement.DEADLINE.getKeyString()).getValue());
- // }
-
- public void testTimeTracking218() throws Exception {
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- TaskData report = init("19");
- TaskAttribute root = report.getRoot();
- assertEquals("7.50", root.getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()).getValue());
- assertEquals("1.00", root.getAttribute(BugzillaAttribute.ACTUAL_TIME.getKey()).getValue());
- assertEquals("3.00", root.getAttribute(BugzillaAttribute.REMAINING_TIME.getKey()).getValue());
- }
-
- public void testMultipleDepensOn() throws Exception {
- String bugid = "5";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_218_URL);
- TaskData report = init(bugid);
- assertNotNull(report);
- TaskAttribute root = report.getRoot();
- assertEquals("5", root.getAttribute(BugzillaAttribute.BUG_ID.getKey()).getValue());
- assertEquals("6, 7", root.getAttribute(BugzillaAttribute.DEPENDSON.getKey()).getValue());
- assertEquals("13, 14", root.getAttribute(BugzillaAttribute.BLOCKED.getKey()).getValue());
- }
-
- public void testBugReportAPI() throws Exception {
- String bugid = "3";
- setRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- TaskData report = init(bugid);
- assertNotNull(report);
- assertTrue(report != null);
- TaskMapper mapper = new TaskMapper(report);
- assertEquals("search-match-test 2", mapper.getSummary());
- assertEquals("search-match-test 2", mapper.getDescription());
- assertEquals("TestProduct", mapper.getProduct());
- assertEquals("nhapke@cs.ubc.ca", mapper.getOwner());
- }
-
- public void testDeltaTsTruncation() {
- String ts1 = "2006-07-06 03:22:08 0900";
- String ts1_truncated = "2006-07-06 03:22:08";
- assertEquals(ts1_truncated, BugzillaClient.stripTimeZone(ts1));
-
- String ts2 = "2006-07-06 03:22:08";
- String ts2_truncated = "2006-07-06 03:22:08";
- assertEquals(ts2_truncated, BugzillaClient.stripTimeZone(ts2));
-
- String ts3 = "2006-07-06 03:22:08 PST";
- String ts3_truncated = "2006-07-06 03:22:08";
- assertEquals(ts3_truncated, BugzillaClient.stripTimeZone(ts3));
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java
deleted file mode 100644
index 3a914223a..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author Mik Kersten
- */
-public class RepositoryTaskHandleTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- TaskTestUtil.resetTaskList();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskList();
- }
-
- public void testRepositoryUrlHandles() throws Exception {
- String taskId = "123";
- String repositoryUrl = IBugzillaConstants.ECLIPSE_BUGZILLA_URL;
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, repositoryUrl);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
-
- ITask bugTask = new TaskTask(BugzillaCorePlugin.CONNECTOR_KIND, repositoryUrl, taskId);
- bugTask.setSummary("Summary");
- assertEquals(repositoryUrl, bugTask.getRepositoryUrl());
-
- TasksUiPlugin.getTaskList().addTask(bugTask);
- TaskTestUtil.saveAndReadTasklist();
-
- ITask readReport = TasksUiPlugin.getTaskList().getTask(repositoryUrl, taskId);
- assertEquals("Summary", readReport.getSummary());
- assertEquals(repositoryUrl, readReport.getRepositoryUrl());
- TasksUiPlugin.getRepositoryManager().removeRepository(repository,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskEditorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskEditorTest.java
deleted file mode 100644
index 21afe26c5..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskEditorTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.bugzilla.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Jeff Pound
- */
-public class TaskEditorTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false);
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TaskTestUtil.resetTaskList();
- TasksUiPlugin.getExternalizationManager().requestSave();
- super.tearDown();
- }
-
- /**
- * Automated task creation needs to access newly created task editors. This test tests that the access is available.
- *
- * @throws Exception
- */
- public void testAccessNewEditor() throws Exception {
- final TaskMapping taskMappingInit = new TaskMapping() {
- @Override
- public String getSummary() {
- return "The Summary";
- }
-
- @Override
- public String getDescription() {
- return "The Description";
- }
- };
- final TaskMapping taskMappingSelect = new TaskMapping() {
- @Override
- public String getProduct() {
- return "TestProduct";
- }
- };
-
- TaskRepository taskRepository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(taskRepository);
- final TaskData[] taskData = new TaskData[1];
-
- taskData[0] = TasksUiInternal.createTaskData(taskRepository, taskMappingInit, taskMappingSelect, null);
- TasksUiInternal.createAndOpenNewTask(taskData[0]);
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- TaskEditor taskEditor = (TaskEditor) page.getActiveEditor();
- assertEquals("New Task", taskEditor.getTitle());
- }
-
- public void testinitializeTaskData() throws Exception {
- final TaskMapping taskMappingInit = new TaskMapping() {
- @Override
- public String getSummary() {
- return "The Summary";
- }
-
- @Override
- public String getDescription() {
- return "The Description";
- }
- };
- final TaskMapping taskMappingSelect = new TaskMapping() {
- @Override
- public String getProduct() {
- return "TestProduct";
- }
- };
-
- TaskRepository taskRepository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND,
- IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(taskRepository);
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- AbstractTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- TaskAttributeMapper mapper = taskDataHandler.getAttributeMapper(taskRepository);
- TaskData taskData = new TaskData(mapper, taskRepository.getConnectorKind(), taskRepository.getRepositoryUrl(),
- "");
- assertTrue(taskDataHandler.initializeTaskData(taskRepository, taskData, null, null));
- assertTrue(taskDataHandler.initializeTaskData(taskRepository, taskData, taskMappingInit, null));
- assertTrue(taskDataHandler.initializeTaskData(taskRepository, taskData, taskMappingSelect, null));
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java
deleted file mode 100644
index 891ce4915..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests;
-
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TaskListStandaloneTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- TasksUiPlugin.getTaskList().reset();
- TasksUiPlugin.getExternalizationManager().save(true);
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- assertEquals("should be empty: " + TasksUiPlugin.getTaskList().getDefaultCategory().getChildren(), 0,
- TasksUiPlugin.getTaskList().getDefaultCategory().getChildren().size());
- }
-
- @Override
- protected void tearDown() throws Exception {
- TasksUiPlugin.getTaskList().reset();
- TasksUiPlugin.getExternalizationManager().save(true);
- super.tearDown();
- }
-
- public void testDueDateExternalization() throws Exception {
- AbstractTask task = new LocalTask("1", "task 1");
- Date dueDate = new Date();
- task.setDueDate(dueDate);
- TasksUiPlugin.getTaskList().addTask(task);
- assertEquals(1, TasksUiPlugin.getTaskList().getAllTasks().size());
-
- TaskTestUtil.saveAndReadTasklist();
-
- assertEquals(1, TasksUiPlugin.getTaskList().getAllTasks().size());
- Collection<ITask> readList = TasksUiPlugin.getTaskList().getDefaultCategory().getChildren();
- ITask readTask = readList.iterator().next();
- assertTrue(readTask.getSummary().equals("task 1"));
- assertTrue(readTask.getDueDate().compareTo(dueDate) == 0);
- }
-
- public void testPastReminder() throws InterruptedException {
- AbstractTask task = new LocalTask("1", "1");
-
- task.setScheduledForDate(new DateRange(Calendar.getInstance()));
- Thread.sleep(2000);
- assertFalse(TasksUiPlugin.getTaskActivityManager().isPastReminder(task));
-
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.MINUTE, 2);
- task.setScheduledForDate(new DateRange(cal));
- assertFalse(TasksUiPlugin.getTaskActivityManager().isPastReminder(task));
-
- Calendar cal1 = Calendar.getInstance();
- cal1.add(Calendar.MINUTE, -2);
- task.setScheduledForDate(new DateRange(cal1, cal));
- assertFalse(TasksUiPlugin.getTaskActivityManager().isPastReminder(task));
-
- Calendar cal2 = Calendar.getInstance();
- cal2.add(Calendar.MINUTE, -2);
- task.setScheduledForDate(new DateRange(cal2));
- task.setCompletionDate(new Date());
- assertFalse(TasksUiPlugin.getTaskActivityManager().isPastReminder(task));
- }
-
- public void testDates() {
- Date start = Calendar.getInstance().getTime();
- Date creation = new Date();
- AbstractTask task = new LocalTask("1", "task 1");
-
- TasksUiPlugin.getTaskList().addTask(task);
- assertNull(task.getCreationDate());
- task.setCreationDate(start);
- assertEquals(start, task.getCreationDate());
-
- assertNull(task.getCompletionDate());
- task.setCompletionDate(creation);
- assertEquals(creation, task.getCompletionDate());
-
- assertEquals(1, TasksUiPlugin.getTaskList().getRootElements().size());
- TasksUiPlugin.getExternalizationManager().requestSave();
-
- assertNotNull(TasksUiPlugin.getTaskList());
- assertEquals(1, TasksUiPlugin.getTaskList().getDefaultCategory().getChildren().size());
-
- Collection<ITask> readList = TasksUiPlugin.getTaskList().getDefaultCategory().getChildren();
- AbstractTask readTask = (AbstractTask) readList.iterator().next();
- assertTrue(readTask.getSummary().equals("task 1"));
-
- assertEquals("should be: " + creation, task.getCreationDate(), readTask.getCreationDate());
- assertEquals(task.getCompletionDate(), readTask.getCompletionDate());
- assertEquals(task.getScheduledForDate(), readTask.getScheduledForDate());
- }
-
- // Task retention when connector missing upon startup
- public void testOrphanedTasks() throws Exception {
- // make some tasks
- // save them
- assertEquals(0, TasksUiPlugin.getTaskList().getAllTasks().size());
- ITask task = new TaskTask(BugzillaCorePlugin.CONNECTOR_KIND, "http://bugs", "1");
- TasksUiPlugin.getTaskList().addTask(task);
-
- // reload tasklist and check that they persist
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, TasksUiPlugin.getTaskList().getAllTasks().size());
-
- // removed/disable externalizers
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager().removeRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
-
- // reload tasklist ensure task didn't load
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(0, TasksUiPlugin.getTaskList().getAllTasks().size());
- // Save the task list (tasks with missing connectors should get
- // persisted)
- TasksUiPlugin.getExternalizationManager().save(true);
-
- // re-enable connector
- TasksUiPlugin.getRepositoryManager().addRepositoryConnector(connector);
-
- // re-load tasklist
- TaskTestUtil.saveAndReadTasklist();
-
- // ensure that task now gets loaded
- assertEquals(1, TasksUiPlugin.getTaskList().getAllTasks().size());
- assertNotNull("1", TasksUiPlugin.getTaskList().getTask("http://bugs", "1"));
- }
-
- // Query retention when connector missing/fails to load
- public void testOrphanedQueries() throws Exception {
- // make a query
- assertEquals(0, TasksUiPlugin.getTaskList().getQueries().size());
- RepositoryQuery query = new RepositoryQuery(BugzillaCorePlugin.CONNECTOR_KIND, "bugzillaQuery");
- TasksUiPlugin.getTaskList().addQuery(query);
- TasksUiPlugin.getExternalizationManager().save(true);
-
- // reload tasklist and check that they persist
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, TasksUiPlugin.getTaskList().getQueries().size());
-
- // removed/disable externalizers
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager().removeRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
-
- // reload tasklist ensure query didn't load
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(0, TasksUiPlugin.getTaskList().getQueries().size());
- // Save the task list (queries with missing connectors should get
- // persisted)
- TasksUiPlugin.getExternalizationManager().requestSave();
-
- // re-enable connector
- TasksUiPlugin.getRepositoryManager().addRepositoryConnector(connector);
-
- // re-load tasklist
- TaskTestUtil.saveAndReadTasklist();
-
- // ensure that query now gets loaded
- assertEquals(1, TasksUiPlugin.getTaskList().getQueries().size());
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaQueryTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaQueryTest.java
deleted file mode 100644
index 7d2e64a79..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaQueryTest.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests.headless;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.bugzilla.tests.IBugzillaTestConstants;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaLanguageSettings;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-
-/**
- * Example use of headless API (no ui dependencies)
- *
- * @author Rob Elves
- * @author Nathan Hapke
- */
-public class BugzillaQueryTest extends TestCase {
-
- private TaskRepository repository;
-
- @SuppressWarnings("unused")
- private AbstractRepositoryConnector connectorOriginal;
-
- private BugzillaRepositoryConnector connector;
-
- @SuppressWarnings("unused")
- private AbstractTaskDataHandler handler;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- connectorOriginal = TasksUiPlugin.getRepositoryManager().getRepositoryConnector(
- BugzillaCorePlugin.CONNECTOR_KIND);
-
- BugzillaLanguageSettings language = BugzillaCorePlugin.getDefault().getLanguageSetting(
- IBugzillaConstants.DEFAULT_LANG);
-
- connector = new BugzillaRepositoryConnector();
- BugzillaRepositoryConnector.addLanguageSetting(language);
- handler = connector.getTaskDataHandler();
- repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
- Credentials credentials = TestUtil.readCredentials();
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- }
-
- @Override
- protected void tearDown() throws Exception {
-
- }
-
- /**
- * This is the first test so that the repository credentials are correctly set for the other tests
- */
- public void testAddCredentials() {
- AuthenticationCredentials auth = repository.getCredentials(AuthenticationType.REPOSITORY);
- assertTrue(auth != null && auth.getPassword() != null && !auth.getPassword().equals("")
- && auth.getUserName() != null && !auth.getUserName().equals(""));
- }
-
- public void testGetBug() throws Exception {
- Set<String> taskIds = new HashSet<String>();
- taskIds.add("1");
- final Set<TaskData> changedTaskData = new HashSet<TaskData>();
- TaskDataCollector collector = new TaskDataCollector() {
-
- @Override
- public void accept(TaskData taskData) {
- changedTaskData.add(taskData);
- }
- };
- connector.getTaskDataHandler().getMultiTaskData(repository, taskIds, collector, new NullProgressMonitor());
- assertEquals(1, changedTaskData.size());
- for (TaskData taskData : changedTaskData) {
- String taskId = taskData.getTaskId();
- if (taskId.equals("1")) {
- assertEquals("user@mylar.eclipse.org", taskData.getRoot().getAttribute(
- BugzillaAttribute.ASSIGNED_TO.getKey()).getValue());
- assertEquals("foo", taskData.getRoot().getAttribute(BugzillaAttribute.LONG_DESC.getKey()).getValue());
- // You can use the getAttributeValue to pull up the information on any
- // part of the bug
- assertEquals("P1", taskData.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
-
- } else {
- fail("Unexpected TaskData returned");
- }
- }
- }
-
- public void testGetBugs() throws Exception {
- Set<String> taskIds = new HashSet<String>();
- taskIds.add("1");
- taskIds.add("2");
- taskIds.add("4");
- final Set<TaskData> changedTaskData = new HashSet<TaskData>();
- TaskDataCollector collector = new TaskDataCollector() {
-
- @Override
- public void accept(TaskData taskData) {
- changedTaskData.add(taskData);
- }
- };
- connector.getTaskDataHandler().getMultiTaskData(repository, taskIds, collector, new NullProgressMonitor());
- assertEquals(3, changedTaskData.size());
- for (TaskData taskData : changedTaskData) {
- String taskId = taskData.getTaskId();
- if (taskId.equals("1")) {
- assertEquals("user@mylar.eclipse.org", taskData.getRoot().getAttribute(
- BugzillaAttribute.ASSIGNED_TO.getKey()).getValue());
- assertEquals("foo", taskData.getRoot().getAttribute(BugzillaAttribute.LONG_DESC.getKey()).getValue());
- // You can use the getAttributeValue to pull up the information on any
- // part of the bug
- assertEquals("P1", taskData.getRoot().getAttribute(BugzillaAttribute.PRIORITY.getKey()).getValue());
-
- } else if (taskId.equals("2")) {
- assertEquals("nhapke@cs.ubc.ca", taskData.getRoot()
- .getAttribute(BugzillaAttribute.ASSIGNED_TO.getKey())
- .getValue());
- assertEquals("search-match-test 1", taskData.getRoot().getAttribute(
- BugzillaAttribute.LONG_DESC.getKey()).getValue());
- } else if (taskId.equals("4")) {
- assertEquals("relves@cs.ubc.ca", taskData.getRoot()
- .getAttribute(BugzillaAttribute.REPORTER.getKey())
- .getValue());
- assertEquals("Test", taskData.getRoot().getAttribute(BugzillaAttribute.LONG_DESC.getKey()).getValue());
- } else {
- fail("Unexpected TaskData returned");
- }
-
- }
- }
-
- // README
- // public void testPostBug() throws Exception {
- // RepositoryTaskData taskData = handler.getTaskData(repository, "1");
- // assertNotNull(taskData);
- // assertEquals("user@mylar.eclipse.org", taskData.getAssignedTo());
- // assertEquals("foo", taskData.getDescription());
- // taskData.setSummary("New Summary");
- // // post this modification back to the repository
- // handler.postTaskData(repository, taskData);
- //
- // // You can use the getAttributeValue to pull up the information on any
- // // part of the bug
- // // assertEquals("P1",
- // //
- // taskData.getAttributeValue(BugzillaReportElement.PRIORITY.getKeyString()));
- // }
-
- public void testQueryViaConnector() throws Exception {
- String queryUrlString = repository.getRepositoryUrl()
- + "/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=search-match-test&product=TestProduct&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=";
-
- // holds onto actual hit objects
- BugzillaRepositoryConnector connector = new BugzillaRepositoryConnector();
- RepositoryQuery query = new RepositoryQuery(repository.getConnectorKind(), "handle-testQueryViaConnector");
- query.setUrl(queryUrlString);
-
- final Set<TaskData> changedTaskData = new HashSet<TaskData>();
- TaskDataCollector collector = new TaskDataCollector() {
-
- @Override
- public void accept(TaskData taskData) {
- changedTaskData.add(taskData);
- }
- };
-
- connector.performQuery(repository, query, collector, null, new NullProgressMonitor());
- assertEquals(2, changedTaskData.size());
- for (TaskData taskData : changedTaskData) {
- assertTrue(taskData.getRoot().getAttribute(BugzillaAttribute.SHORT_DESC.getKey()).getValue().contains(
- "search-match-test"));
- }
- }
-}
-
-// public void testValidateCredentials() throws IOException,
-// BugzillaException, KeyManagementException,
-// GeneralSecurityException {
-// BugzillaClient.validateCredentials(null, repository.getUrl(),
-// repository.getCharacterEncoding(),
-// repository.getUserName(), repository.getPassword());
-// }
-//
-// public void testValidateCredentialsInvalidProxy() throws IOException,
-// BugzillaException, KeyManagementException,
-// GeneralSecurityException {
-// BugzillaClient.validateCredentials(new Proxy(Proxy.Type.HTTP, new
-// InetSocketAddress("localhost", 12356)),
-// repository.getUrl(), repository.getCharacterEncoding(),
-// repository.getUserName(), repository
-// .getPassword());
-// }
-
-// public void testCredentialsEncoding() throws IOException,
-// BugzillaException, KeyManagementException,
-// GeneralSecurityException {
-// String poundSignUTF8 =
-// BugzillaClient.addCredentials(IBugzillaTestConstants.TEST_BUGZILLA_222_URL,
-// "UTF-8",
-// "testUser", "\u00A3");
-// assertTrue(poundSignUTF8.endsWith("password=%C2%A3"));
-// String poundSignISO =
-// BugzillaClient.addCredentials(IBugzillaTestConstants.TEST_BUGZILLA_222_URL,
-// "ISO-8859-1", "testUser", "\u00A3");
-// assertFalse(poundSignISO.contains("%C2%A3"));
-// assertTrue(poundSignISO.endsWith("password=%A3"));
-// }
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaTaskHistoryTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaTaskHistoryTest.java
deleted file mode 100644
index e66c22639..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/headless/BugzillaTaskHistoryTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.tests.headless;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import org.eclipse.mylyn.bugzilla.tests.AbstractBugzillaTest;
-import org.eclipse.mylyn.bugzilla.tests.IBugzillaTestConstants;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.bugzilla.core.history.AssignmentEvent;
-import org.eclipse.mylyn.internal.bugzilla.core.history.ResolutionEvent;
-import org.eclipse.mylyn.internal.bugzilla.core.history.StatusEvent;
-import org.eclipse.mylyn.internal.bugzilla.core.history.TaskHistory;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-public class BugzillaTaskHistoryTest extends AbstractBugzillaTest {
-
- private TaskRepository repository;
-
- private BugzillaRepositoryConnector connector;
-
- private static final String HISTORY_FILE_NAME = "storedHistory.history";
-
- private static final String REPORT_ID = "1";
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- connector = new BugzillaRepositoryConnector();
- repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, IBugzillaTestConstants.TEST_BUGZILLA_222_URL);
-
- Credentials credentials = TestUtil.readCredentials();
- repository.setAuthenticationCredentials(credentials.username, credentials.password);
- }
-
- public void testGetBugHistory() throws Exception {
-
- BugzillaClient client = connector.getClientManager().getClient(repository, null);
- assertNotNull(client);
- TaskHistory history = client.getHistory("1", null);
- assertNotNull(history);
-
- assertEquals(1, history.getAssignmentEvents().size());
- assertEquals(2, history.getStatusEvents().size());
- assertEquals(1, history.getResolutionEvents().size());
- assertEquals(12, history.getOtherEvents().size());
- }
-
- public void testAssignmentEvent() throws Exception {
- BugzillaClient client = connector.getClientManager().getClient(repository, null);
- assertNotNull(client);
- TaskHistory history = client.getHistory("1", null);
- assertNotNull(history);
-
- AssignmentEvent assignment = history.getAssignmentEvents().get(0);
- assertEquals("nhapke@cs.ubc.ca", assignment.getName());
- assertEquals("user@mylar.eclipse.org", assignment.getAssigned());
- assertEquals("2006-08-25 17:48:02", assignment.getDate());
- assertEquals("nhapke@cs.ubc.ca", assignment.getRemoved());
- assertEquals("user@mylar.eclipse.org", assignment.getAdded());
- assertEquals("AssignedTo", assignment.getWhat());
- }
-
- public void testStatusEvent() throws Exception {
-
- BugzillaClient client = connector.getClientManager().getClient(repository, null);
- assertNotNull(client);
- TaskHistory history = client.getHistory("1", null);
- assertNotNull(history);
-
- StatusEvent statusChange = history.getStatusEvents().get(0);
- assertEquals("nhapke@cs.ubc.ca", statusChange.getName());
- assertEquals("2006-08-25 19:18:05", statusChange.getDate());
- assertEquals("NEW", statusChange.getRemoved());
- assertEquals("ASSIGNED", statusChange.getAdded());
- assertEquals("Status", statusChange.getWhat());
- }
-
- public void testResolutionEvent() throws Exception {
- BugzillaClient client = connector.getClientManager().getClient(repository, null);
- assertNotNull(client);
- TaskHistory history = client.getHistory(REPORT_ID, null);
- assertNotNull(history);
-
- ResolutionEvent resolutionChange = history.getResolutionEvents().get(0);
- assertEquals("janvik@cs.ubc.ca", resolutionChange.getName());
- assertEquals("2007-02-15 14:52:51", resolutionChange.getDate());
- assertEquals("", resolutionChange.getRemoved());
- assertEquals("FIXED", resolutionChange.getAdded());
- assertEquals("Resolution", resolutionChange.getWhat());
- }
-
- public void testStoredHistory() throws Exception {
- BugzillaClient client = connector.getClientManager().getClient(repository, null);
- assertNotNull(client);
- TaskHistory history = client.getHistory(REPORT_ID, null);
- assertNotNull(history);
- storeHistory(history);
-
- history = getStoredHistory();
-
- assertEquals(1, history.getAssignmentEvents().size());
- assertEquals(2, history.getStatusEvents().size());
- assertEquals(1, history.getResolutionEvents().size());
- assertEquals(12, history.getOtherEvents().size());
-
- // Remove file
- File storedHistoryFile = new File(HISTORY_FILE_NAME);
- assertTrue(storedHistoryFile.delete());
- }
-
- private void storeHistory(TaskHistory history) throws FileNotFoundException, IOException {
- File saveFile = new File(HISTORY_FILE_NAME);
- saveFile.deleteOnExit();
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saveFile));
- out.writeObject(history);
- out.close();
- }
-
- private TaskHistory getStoredHistory() throws FileNotFoundException, IOException, ClassNotFoundException {
- File file = new File(HISTORY_FILE_NAME);
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
- TaskHistory history = (TaskHistory) in.readObject();
- in.close();
- return history;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/configuration/rdfconfig218.txt b/org.eclipse.mylyn.bugzilla.tests/testdata/configuration/rdfconfig218.txt
deleted file mode 100644
index bf41e9a70..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/configuration/rdfconfig218.txt
+++ /dev/null
@@ -1,461 +0,0 @@
-<?xml version="1.0"?>
-<!-- Note: this interface is experimental and under development.
- - We may and probably will make breaking changes to it in the future. -->
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:bz="http://www.bugzilla.org/rdf#">
-
-<bz:installation rdf:about="">
-<!-- NOTE: rdf:about="http://mylar.eclipse.org/bugs218/"
- changed to "" for testing -->
- <bz:install_version>2.18.5</bz:install_version>
- <bz:maintainer>relves&#64;cs.ubc.ca</bz:maintainer>
-
- <bz:status>
- <Seq>
- <li>UNCONFIRMED</li>
- <li>NEW</li>
- <li>ASSIGNED</li>
- <li>REOPENED</li>
- <li>RESOLVED</li>
- <li>VERIFIED</li>
- <li>CLOSED</li>
- </Seq>
- </bz:status>
-
- <bz:status_open>
- <Seq>
- <li>UNCONFIRMED</li>
- <li>NEW</li>
- <li>ASSIGNED</li>
- <li>REOPENED</li>
- </Seq>
- </bz:status_open>
-
- <bz:status_closed>
- <Seq>
- <li>RESOLVED</li>
- <li>VERIFIED</li>
- <li>CLOSED</li>
- </Seq>
- </bz:status_closed>
-
- <bz:resolution>
- <Seq>
- <li></li>
- <li>FIXED</li>
- <li>INVALID</li>
- <li>WONTFIX</li>
- <li>LATER</li>
- <li>REMIND</li>
- <li>DUPLICATE</li>
- <li>WORKSFORME</li>
- <li>MOVED</li>
- </Seq>
- </bz:resolution>
-
- <bz:keyword>
- <Seq>
- </Seq>
- </bz:keyword>
-
- <bz:platform>
- <Seq>
- <li>All</li>
- <li>DEC</li>
- <li>HP</li>
- <li>Macintosh</li>
- <li>PC</li>
- <li>SGI</li>
- <li>Sun</li>
- <li>Other</li>
- </Seq>
- </bz:platform>
-
- <bz:op_sys>
- <Seq>
- <li>All</li>
- <li>Windows 3.1</li>
- <li>Windows 95</li>
- <li>Windows 98</li>
- <li>Windows ME</li>
- <li>Windows 2000</li>
- <li>Windows NT</li>
- <li>Windows XP</li>
- <li>Windows Server 2003</li>
- <li>Mac System 7</li>
- <li>Mac System 7.5</li>
- <li>Mac System 7.6.1</li>
- <li>Mac System 8.0</li>
- <li>Mac System 8.5</li>
- <li>Mac System 8.6</li>
- <li>Mac System 9.x</li>
- <li>Mac OS X 10.0</li>
- <li>Mac OS X 10.1</li>
- <li>Mac OS X 10.2</li>
- <li>Mac OS X 10.3</li>
- <li>Linux</li>
- <li>BSD/OS</li>
- <li>FreeBSD</li>
- <li>NetBSD</li>
- <li>OpenBSD</li>
- <li>AIX</li>
- <li>BeOS</li>
- <li>HP-UX</li>
- <li>IRIX</li>
- <li>Neutrino</li>
- <li>OpenVMS</li>
- <li>OS/2</li>
- <li>OSF/1</li>
- <li>Solaris</li>
- <li>SunOS</li>
- <li>other</li>
- </Seq>
- </bz:op_sys>
-
- <bz:priority>
- <Seq>
- <li>P1</li>
- <li>P2</li>
- <li>P3</li>
- <li>P4</li>
- <li>P5</li>
- </Seq>
- </bz:priority>
-
- <bz:severity>
- <Seq>
- <li>blocker</li>
- <li>critical</li>
- <li>major</li>
- <li>normal</li>
- <li>minor</li>
- <li>trivial</li>
- <li>enhancement</li>
- </Seq>
- </bz:severity>
-
- <bz:products>
- <Seq>
- <li>
- <bz:product rdf:about="http://mylar.eclipse.org/bugs218/product.cgi?name=TestProduct">
- <bz:name>TestProduct</bz:name>
-
- <bz:components>
- <Seq>
- <li resource="http://mylar.eclipse.org/bugs218/component.cgi?name=TestComponent"/>
- </Seq>
- </bz:components>
-
- <bz:versions>
- <Seq>
- <li resource="http://mylar.eclipse.org/bugs218/version.cgi?name=other"/>
- </Seq>
- </bz:versions>
-
-
- </bz:product>
- </li>
- <li>
- <bz:product rdf:about="http://mylar.eclipse.org/bugs218/product.cgi?name=Test-Long-Named-Product-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">
- <bz:name>Test-Long-Named-Product-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</bz:name>
-
- <bz:components>
- <Seq>
- <li resource="http://mylar.eclipse.org/bugs218/component.cgi?name=TestComponent"/>
- </Seq>
- </bz:components>
-
- <bz:versions>
- <Seq>
- <li resource="http://mylar.eclipse.org/bugs218/version.cgi?name=other"/>
- </Seq>
- </bz:versions>
-
-
- </bz:product>
- </li>
- </Seq>
- </bz:products>
-
- <bz:components>
- <Seq>
- <li>
- <bz:component rdf:about="http://mylar.eclipse.org/bugs218/component.cgi?name=TestComponent">
- <bz:name>TestComponent</bz:name>
- </bz:component>
- </li>
- </Seq>
- </bz:components>
-
- <bz:versions>
- <Seq>
- <li>
- <bz:version rdf:about="http://mylar.eclipse.org/bugs218/version.cgi?name=other">
- <bz:name>other</bz:name>
- </bz:version>
- </li>
- </Seq>
- </bz:versions>
-
-
- <bz:fields>
- <Seq>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=bug_id">
- <bz:name>bug_id</bz:name>
- <bz:description>Bug ID</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=short_desc">
- <bz:name>short_desc</bz:name>
- <bz:description>Summary</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=product">
- <bz:name>product</bz:name>
- <bz:description>Product</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=version">
- <bz:name>version</bz:name>
- <bz:description>Version</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=rep_platform">
- <bz:name>rep_platform</bz:name>
- <bz:description>Hardware</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=bug_file_loc">
- <bz:name>bug_file_loc</bz:name>
- <bz:description>URL</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=op_sys">
- <bz:name>op_sys</bz:name>
- <bz:description>OS</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=bug_status">
- <bz:name>bug_status</bz:name>
- <bz:description>Status</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=status_whiteboard">
- <bz:name>status_whiteboard</bz:name>
- <bz:description>Whiteboard</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=keywords">
- <bz:name>keywords</bz:name>
- <bz:description>Keywords</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=resolution">
- <bz:name>resolution</bz:name>
- <bz:description>Resolution</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=bug_severity">
- <bz:name>bug_severity</bz:name>
- <bz:description>Severity</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=priority">
- <bz:name>priority</bz:name>
- <bz:description>Priority</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=component">
- <bz:name>component</bz:name>
- <bz:description>Component</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=assigned_to">
- <bz:name>assigned_to</bz:name>
- <bz:description>Assignee</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=reporter">
- <bz:name>reporter</bz:name>
- <bz:description>Reporter</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=votes">
- <bz:name>votes</bz:name>
- <bz:description>Votes</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=qa_contact">
- <bz:name>qa_contact</bz:name>
- <bz:description>QA Contact</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=cc">
- <bz:name>cc</bz:name>
- <bz:description>CC</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=dependson">
- <bz:name>dependson</bz:name>
- <bz:description>Depends on</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=blocked">
- <bz:name>blocked</bz:name>
- <bz:description>Blocks</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.description">
- <bz:name>attachments.description</bz:name>
- <bz:description>Attachment description</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.thedata">
- <bz:name>attachments.thedata</bz:name>
- <bz:description>Attachment data</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.filename">
- <bz:name>attachments.filename</bz:name>
- <bz:description>Attachment filename</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.mimetype">
- <bz:name>attachments.mimetype</bz:name>
- <bz:description>Attachment mime type</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.ispatch">
- <bz:name>attachments.ispatch</bz:name>
- <bz:description>Attachment is patch</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.isobsolete">
- <bz:name>attachments.isobsolete</bz:name>
- <bz:description>Attachment is obsolete</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=attachments.isprivate">
- <bz:name>attachments.isprivate</bz:name>
- <bz:description>Attachment is private</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=target_milestone">
- <bz:name>target_milestone</bz:name>
- <bz:description>Target Milestone</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=delta_ts">
- <bz:name>delta_ts</bz:name>
- <bz:description>Last Changed time</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=(to_days(now())%20-%20to_days(bugs.delta_ts))">
- <bz:name>(to_days(now()) - to_days(bugs.delta_ts))</bz:name>
- <bz:description>Days since bug changed</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=longdesc">
- <bz:name>longdesc</bz:name>
- <bz:description>Comment</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=alias">
- <bz:name>alias</bz:name>
- <bz:description>Alias</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=everconfirmed">
- <bz:name>everconfirmed</bz:name>
- <bz:description>Ever confirmed?</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=reporter_accessible">
- <bz:name>reporter_accessible</bz:name>
- <bz:description>Reporter accessible?</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=cclist_accessible">
- <bz:name>cclist_accessible</bz:name>
- <bz:description>CC list accessible?</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=bug_group">
- <bz:name>bug_group</bz:name>
- <bz:description>Group</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=flagtypes.name">
- <bz:name>flagtypes.name</bz:name>
- <bz:description>Flag</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=requestees.login_name">
- <bz:name>requestees.login_name</bz:name>
- <bz:description>Flag Requestee</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=setters.login_name">
- <bz:name>setters.login_name</bz:name>
- <bz:description>Flag Setter</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=content">
- <bz:name>content</bz:name>
- <bz:description>Content</bz:description>
- </bz:field>
- </li>
- <li>
- <bz:field rdf:about="http://mylar.eclipse.org/bugs218/field.cgi?name=owner_idle_time">
- <bz:name>owner_idle_time</bz:name>
- <bz:description>Time Since Owner Touched</bz:description>
- </bz:field>
- </li>
- </Seq>
- </bz:fields>
-</bz:installation>
-
-</RDF> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/contexts/.cvsignore b/org.eclipse.mylyn.bugzilla.tests/testdata/contexts/.cvsignore
deleted file mode 100644
index 47269cfbd..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/contexts/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-downloadedContext.xml
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/contexts/empty.txt b/org.eclipse.mylyn.bugzilla.tests/testdata/contexts/empty.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/contexts/empty.txt
+++ /dev/null
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-1-full.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-1-full.html
deleted file mode 100644
index 00fd1bcb7..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-1-full.html
+++ /dev/null
@@ -1,719 +0,0 @@
-<!-- 1.0@bugzilla.org -->
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Bug 1 - Usability issue with external editors (1GE6IRL)</title>
-
-
-
-
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
-WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
-BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
-src="images/EclipseBannerPic.jpg" width="115" height="50"></td><td
-WIDTH="637"><a href=http://www.eclipse.org><img SRC="images/gradient.jpg" BORDER=0 height=50
-width=282></a></td><td WIDTH="250"><img src="images/eproject-simple.gif"
-width="250" height="48"></td></tr></table></td></tr></table>
-
- <table border="0" cellspacing="0">
- <tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Bugzilla Bug 1</b></font>
- </td>
- </tr>
- </table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left">Usability issue with external editors (1GE6IRL)</td>
- </tr>
- </table>
-<!-- 1.0@bugzilla.org -->
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Query page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<hr>
-
-<form name="changeform" method="post" action="process_bug.cgi">
-
- <input type="hidden" name="delta_ts" value="20011025104050">
- <input type="hidden" name="longdesclength" value="5">
- <input type="hidden" name="id" value="1">
-
-
-
- <table cellspacing="1" cellpadding="1" border="0">
- <tr>
- <td align="right">
- <b>Bug#:</b>
- </td>
- <td>
- <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1">1</a>
- </td>
-
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Platform:</b>
- </td><td>
- <select name="rep_platform">
- <option value="All" selected>All
- </option>
- <option value="Macintosh">Macintosh
- </option>
- <option value="PC">PC
- </option>
- <option value="Power PC">Power PC
- </option>
- <option value="Sun">Sun
- </option>
- <option value="Other">Other
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Reporter:</b>
- </td>
- <td>andre_weinand@ch.ibm.com (Andre Weinand)
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Product:</b>
- </td><td>
- <select name="product">
- <option value="AJDT">AJDT
- </option>
- <option value="AspectJ">AspectJ
- </option>
- <option value="CDT">CDT
- </option>
- <option value="EMF">EMF
- </option>
- <option value="Equinox">Equinox
- </option>
- <option value="GEF">GEF
- </option>
- <option value="JDT">JDT
- </option>
- <option value="PDE">PDE
- </option>
- <option value="Platform" selected>Platform
- </option>
- <option value="Stellation">Stellation
- </option>
- <option value="XSD">XSD
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>OS:</b>
- </td><td>
- <select name="op_sys">
- <option value="All" selected>All
- </option>
- <option value="AIX Motif">AIX Motif
- </option>
- <option value="Windows 95">Windows 95
- </option>
- <option value="Windows 98">Windows 98
- </option>
- <option value="Windows CE">Windows CE
- </option>
- <option value="Windows ME">Windows ME
- </option>
- <option value="Windows 2000">Windows 2000
- </option>
- <option value="Windows NT">Windows NT
- </option>
- <option value="Windows XP">Windows XP
- </option>
- <option value="Windows All">Windows All
- </option>
- <option value="MacOS X">MacOS X
- </option>
- <option value="Linux">Linux
- </option>
- <option value="Linux-GTK">Linux-GTK
- </option>
- <option value="Linux-Motif">Linux-Motif
- </option>
- <option value="HP-UX">HP-UX
- </option>
- <option value="Neutrino">Neutrino
- </option>
- <option value="QNX-Photon">QNX-Photon
- </option>
- <option value="Solaris">Solaris
- </option>
- <option value="Unix All">Unix All
- </option>
- <option value="other">other
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Add&nbsp;CC:</b>
- </td>
- <td>
- <input name="newcc" size="30" value="">
- </td>
- </tr>
-
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describecomponents.cgi?product=Platform">
- Component</a>:
- </b>
- </td>
- <td>
- <select name="component">
- <option value="Ant">Ant
- </option>
- <option value="Compare">Compare
- </option>
- <option value="Core">Core
- </option>
- <option value="Debug">Debug
- </option>
- <option value="Doc">Doc
- </option>
- <option value="Help">Help
- </option>
- <option value="Releng">Releng
- </option>
- <option value="Scripting">Scripting
- </option>
- <option value="Search">Search
- </option>
- <option value="SWT">SWT
- </option>
- <option value="Text">Text
- </option>
- <option value="UI">UI
- </option>
- <option value="Update">Update
- </option>
- <option value="VCM" selected>VCM
- </option>
- <option value="WebDAV">WebDAV
- </option>
- </select>
- </td>
-
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Version:</b>
- </td><td>
- <select name="version">
- <option value="1.0">1.0
- </option>
- <option value="2.0" selected>2.0
- </option>
- <option value="2.0.1">2.0.1
- </option>
- <option value="2.0.2">2.0.2
- </option>
- <option value="2.1">2.1
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td rowspan="4" align="right" valign="top">
- <b>CC:</b>
- </td>
- <td rowspan="4" valign="top">
- <select name="cc" multiple="multiple" size="5">
- <option value="Kevin_McGuire@oti.com">Kevin_McGuire@oti.com</option>
- </select>
- <br>
- <input type="checkbox" name="removecc">Remove selected CCs
- <br>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="bug_status.html">Status</a>:
- </b>
- </td>
- <td>VERIFIED</td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b><a href="bug_status.html#priority">Priority</a>:</b>
- </td><td>
- <select name="priority">
- <option value="P1">P1
- </option>
- <option value="P2">P2
- </option>
- <option value="P3" selected>P3
- </option>
- <option value="P4">P4
- </option>
- <option value="P5">P5
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="bug_status.html">Resolution</a>:
- </b>
- </td>
- <td>FIXED</td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b><a href="bug_status.html#severity">Severity</a>:</b>
- </td><td>
- <select name="bug_severity">
- <option value="blocker">blocker
- </option>
- <option value="critical">critical
- </option>
- <option value="major">major
- </option>
- <option value="normal" selected>normal
- </option>
- <option value="minor">minor
- </option>
- <option value="trivial">trivial
- </option>
- <option value="enhancement">enhancement
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="bug_status.html#assigned_to">Assigned&nbsp;To</a>:
- </b>
- </td>
- <td>James_Moody@ca.ibm.com (James Moody)</td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>
- <a href="notargetmilestone.html">Target Milestone</a>:
- </b>
- </td><td>
- <select name="target_milestone">
- <option value="2.0 M1">2.0 M1
- </option>
- <option value="2.0 M2">2.0 M2
- </option>
- <option value="2.0 M3">2.0 M3
- </option>
- <option value="2.0 M4">2.0 M4
- </option>
- <option value="2.0 M5">2.0 M5
- </option>
- <option value="2.0 M6">2.0 M6
- </option>
- <option value="2.0 F1">2.0 F1
- </option>
- <option value="2.0 F2">2.0 F2
- </option>
- <option value="2.0 F3">2.0 F3
- </option>
- <option value="2.0 F4">2.0 F4
- </option>
- <option value="2.0.1">2.0.1
- </option>
- <option value="2.0.2">2.0.2
- </option>
- <option value="2.1">2.1
- </option>
- <option value="2.1 M1">2.1 M1
- </option>
- <option value="2.1 M2">2.1 M2
- </option>
- <option value="2.1 M3">2.1 M3
- </option>
- <option value="2.1 M4">2.1 M4
- </option>
- <option value="2.1 M5">2.1 M5
- </option>
- <option value="2.1 RC1">2.1 RC1
- </option>
- <option value="2.1 RC2">2.1 RC2
- </option>
- <option value="2.1 RC3">2.1 RC3
- </option>
- <option value="2.1 RC4">2.1 RC4
- </option>
- <option value="2.1.1">2.1.1
- </option>
- <option value="2.2">2.2
- </option>
- <option value="---" selected>---
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
- </tr>
-
-
-
-
- <tr>
- <td align="right">
- <b>
- URL:
- </b>
- </td>
- <td colspan="7">
- <input name="bug_file_loc"
- value="" size="60">
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Summary:</b>
- </td>
- <td colspan="7">
- <input name="short_desc"
- value="Usability issue with external editors (1GE6IRL)" size="60">
- </td>
- </tr>
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describekeywords.cgi">Keywords</a>:
- </b>
- <td colspan="7">
- <input name="keywords"
- value="" size="60">
- </td>
- </tr>
- </table>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-<br>
-<table cellspacing="0" cellpadding="4" border="1">
- <tr>
- <th bgcolor="#cccccc" align="left">Attachment</th>
- <th bgcolor="#cccccc" align="left">Type</th>
- <th bgcolor="#cccccc" align="left">Modified</th>
- <th bgcolor="#cccccc" align="left">Status</th>
- <th bgcolor="#cccccc" align="left">Actions</th>
- </tr>
-
-
- <tr>
- <td colspan="4">
- <a href="attachment.cgi?bugid=1&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
- </td>
- <td colspan="1">
- <a href="attachment.cgi?bugid=1&amp;action=viewall">View All</a>
- </td>
- </tr>
-</table>
-<br>
-
-
-
- <table>
- <tr><th align="right">Bug 1 depends on:</th>
- <td>
- </td>
- <td>
- <input name="dependson"
- value="">
- </td>
- <td rowspan="2">
- <a href="showdependencytree.cgi?id=1">Show
- dependency tree</a>
-
- </td>
- </tr>
-
- <tr><th align="right">Bug 1 blocks:</th>
- <td>
- </td>
- <td>
- <input name="blocked"
- value="">
- </td>
- </tr>
- </table>
-
- <table>
- <tr>
- <th>
- <a href="votehelp.html">Votes</a>:
- </th>
- <td>0&nbsp;&nbsp;&nbsp;
- <a href="votes.cgi?action=show_bug&amp;bug_id=1">Show
- votes for this bug</a>&nbsp;&nbsp;&nbsp;
- <a href="votes.cgi?action=show_user&amp;bug_id=1">Vote
- for this bug</a>
- </td>
- </tr>
- </table>
-
-
-
- <br>
- <b>Additional Comments:</b>
- <br>
- <textarea wrap="hard" name="comment" rows="10" cols="80"
- accesskey="c"></textarea>
- <br>
-
-
-
-
- <br>
- <input type="radio" name="knob" value="none" checked="checked">
- Leave as <b>VERIFIED&nbsp;FIXED</b>
- <br>
-
-
-
- <input type="radio" name="knob" value="reopen"> Reopen bug
- <br>
- <input type="radio" name="knob" value="close">
- Mark bug as <b>CLOSED</b><br>
-
- <input type="submit" value="Commit">
- <input type="hidden" name="form_name" value="process_bug">
- <p>
- <font size="+1">
- <b>
- <a href="show_activity.cgi?id=1">View Bug Activity</a>
- &nbsp; | &nbsp;
- <a href="long_list.cgi?buglist=1">Format For Printing</a>
- </b>
- </font>
-
- </p>
-</form>
-
-
-
-<table>
- <tr>
- <td align="left">
- <b>
- <a name="c0" href="#c0">Description</a>:
- </b>
- </td>
- <td align="right" width="100%">
- Opened: 2001-10-10 21:34
- </td>
- </tr>
-</table>
-<hr>
-<!-- 1.0@bugzilla.org -->
-
-<pre>- Setup a project that contains a *.gif resource
- - release project to CVS
- - edit the *.gif resource with an external editor, e.g. PaintShop
- - save and close external editor
- - in Navigator open the icon resource and verify that your changes are there
- - release project
- -&gt; nothing to release!
- - in Navigator open the icon resource and verify that your changes are still there
-
- Problem: because I never &quot;Refreshed from local&quot;, the workspace hasn't changed so &quot;Release&quot; didn't find anything.
- However opening the resource with an external editor found the modified file on disk and showed the changes.
-
- The real problem occurs if &quot;Release&quot; actually finds something to release but you don't spot that some resources are missing.
- This is extremely error prone: one of my changes didn't made it into build 110 because of this!
-
-NOTES:
-EG (5/23/01 3:00:33 PM)
- Release should do a refresh from local before doing the release.
- Moving to VCM
-
-
-KM (05/27/01 5:10:19 PM)
- Comments from JM in related email:
-
- Should not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.
- Consider the SWT team who keep their workspaces on network drives. This will be slow.
-
- Side effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the
- runnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.
-
- Summary: Offer to &quot;ensure local consistency&quot; before releasing.
-
-KM (5/31/01 1:30:35 PM)
- See also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document
- which failed with an error. Never got log from Tod though.</pre>
- <br>
- <i>------- Additional Comment
- <a name="c1" href="#c1">#1</a> From
- <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
- 2001-10-19 10:32 -------
- </i>
-
-
-<pre>*** <strike><a href="show_bug.cgi?id=183" title="RESOLVED DUPLICATE - readme: must refresh from local if using external editors (1GFBQNI)">Bug 183</a></strike> has been marked as a duplicate of this bug. ***</pre>
- <br>
- <i>------- Additional Comment
- <a name="c2" href="#c2">#2</a> From
- <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
- 2001-10-19 16:36 -------
- </i>
-
-
-<pre>Implemented 'auto refresh' option. Default value is off.</pre>
- <br>
- <i>------- Additional Comment
- <a name="c3" href="#c3">#3</a> From
- <a href="mailto:dj_houghton@ca.ibm.com">DJ Houghton</a>
- 2001-10-23 23:39 -------
- </i>
-
-
-<pre>PRODUCT VERSION:
- 109
-
-</pre>
- <br>
- <i>------- Additional Comment
- <a name="c4" href="#c4">#4</a> From
- <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
- 2001-10-25 10:19 -------
- </i>
-
-
-<pre>Fixed in v206</pre>
-
-<hr>
-<!-- 1.0@bugzilla.org -->
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Query page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<br>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%"
- bgcolor="lightyellow">
- <tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap>
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="reports.cgi">Reports</a>
-
- </td>
-
- <td>&nbsp;</td>
-
- <td valign="middle" align="right">
- <a href="createaccount.cgi">New&nbsp;Account</a> |
- <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </td>
- </tr>
-
- </table>
-</form>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-eclipse.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-eclipse.html
deleted file mode 100644
index 156212e5e..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-eclipse.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!-- 1.0@bugzilla.org -->
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Error</title>
-
-
-
-
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
-WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
-BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
-src="images/EclipseBannerPic.jpg" width="115" height="50"></td><td
-WIDTH="637"><a href=http://www.eclipse.org><img SRC="images/gradient.jpg" BORDER=0 height=50
-width=282></a></td><td WIDTH="250"><img src="images/eproject-simple.gif"
-width="250" height="48"></td></tr></table></td></tr></table>
-
- <table border="0" cellspacing="0">
- <tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Error</b></font>
- </td>
- </tr>
- </table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left"></td>
- </tr>
- </table>
-
-<table cellpadding="20">
- <tr>
- <td bgcolor="#ff0000">
- <font size="+2">Bug #666 does not exist.
- </font>
- </td>
- </tr>
-</table>
-
-<p>
- Please press <b>Back</b> and try again.
-</p>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%"
- bgcolor="lightyellow">
- <tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap>
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="reports.cgi">Reports</a>
-
- | <a href="votes.cgi?action=show_user">My Votes</a>
- </td>
-
- <td>&nbsp;</td>
-
-
- <td valign="middle">
- Edit <a href="userprefs.cgi">prefs</a>
-
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;cubranic@cs.ubc.ca
- </td>
- </tr>
-
-
-
-
- <tr>
- <td>
- Preset&nbsp;Queries:
- </td>
-
- <td colspan="3">
- <a href="buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=cubranic%40cs.ubc.ca&emailtype1=exact&emailassigned_to1=1&emailreporter1=1">My&nbsp;Bugs</a>
-
- </td>
- </tr>
-
-
- </table>
-</form>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-hipikat.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-hipikat.html
deleted file mode 100644
index e6261be5d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/bug-not-found-hipikat.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!-- 1.0@bugzilla.org -->
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Error</title>
-
-
-
-
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
- <table bgcolor="#000000" width="100%" border="0" cellpadding="0"
- cellspacing="0">
- <tr>
- <td>
- <font color="#FFFFFF" size="8"><center>
- Bugzilla Version 2.16.3
- </center></font>
- </td>
- </tr>
- </table>
-
- <table border="0" cellspacing="0">
- <tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Error</b></font>
- </td>
- </tr>
- </table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left"></td>
- </tr>
- </table>
-
-<table cellpadding="20">
- <tr>
- <td bgcolor="#ff0000">
- <font size="+2">Bug #666 does not exist.
- </font>
- </td>
- </tr>
-</table>
-
-<p>
- Please press <b>Back</b> and try again.
-</p>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%"
- bgcolor="lightyellow">
- <tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap>
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="reports.cgi">Reports</a>
-
- </td>
-
- <td>&nbsp;</td>
-
- <td valign="middle" align="right">
- <a href="createaccount.cgi">New&nbsp;Account</a> |
- <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </td>
- </tr>
-
- </table>
-</form>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/cdt-page.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/cdt-page.html
deleted file mode 100644
index 3a1d20fdb..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/cdt-page.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0055)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="Enter Bug_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="Enter Bug_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48
- src="Enter Bug_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=CDT name=product>
-
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>CDT</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=1.0.1>1.0.1</OPTION> <OPTION value=1.1>1.1</OPTION> <OPTION
- value=1.2>1.2</OPTION> <OPTION value=2.0 selected>2.0</OPTION></SELECT>
-</TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=CDT">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION
- value=CDT-parser>CDT-parser</OPTION> <OPTION value=Core>Core</OPTION>
- <OPTION value=Cpp-Extensions>Cpp-Extensions</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Debug-MI>Debug-MI</OPTION>
- <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Generic-Extensions>Generic-Extensions</OPTION> <OPTION
- value=Launcher>Launcher</OPTION> <OPTION value=UI>UI</OPTION></SELECT>
- </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug220.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug220.html
deleted file mode 100644
index e9c1deb49..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug220.html
+++ /dev/null
@@ -1,441 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>Enter Bug: TestProduct</title>
-
-
-<link rel="Top" href="http://you-havent-visited-editparams.cgi-yet/">
-
-
-
-
-
-
-
-
- <link rel="Saved&nbsp;Searches" title="My Bugs"
- href="buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=relves%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">
-
-
- <link rel="Administration" title="Parameters"
- href="editparams.cgi"><link rel="Administration" title="Users"
- href="editusers.cgi"><link rel="Administration" title="Products"
- href="editproducts.cgi"><link rel="Administration" title="Flag Types"
- href="editflagtypes.cgi"><link rel="Administration" title="Groups"
- href="editgroups.cgi"><link rel="Administration" title="Keywords"
- href="editkeywords.cgi"><link rel="Administration" title="Whining"
- href="editwhines.cgi"><link rel="Administration" title="Sanity Check"
- href="sanitycheck.cgi">
-
-
-
- <script type="text/javascript">
- <!--
-
- function initHelp() {}
- // -->
- </script>
-
- <link href="skins/standard/global.css" rel="stylesheet" type="text/css">
- <link href="skins/custom/global.css" rel="stylesheet" type="text/css">
-
-
-
-
-
- </head>
-
-
-
- <body onload="set_assign_to();"
- class="you-havent-visited-editparams-cgi-yet">
-
-
-<div id="banner">
- <div class="intro"></div>
- <p id="banner-name">
- <span>This is Bugzilla</span>
- </p>
- <p id="banner-version">
- <a href="http://www.bugzilla.org/"><span>Bugzilla</span></a>
-
- <span>Version 2.20</span>
- </p>
- <div class="outro"></div>
- </div>
-
-<div id="header">
- <h1>Enter Bug: TestProduct</h1>
-
- <h2>This page lets you enter a new bug into Bugzilla.</h2>
-
-</div>
-
-<script type="text/javascript">
-<!--
-
-var initialowners = new Array(1);
-var last_initialowner;
-var components = new Array(1);
- components[0] = "TestComponent";
- initialowners[0] = "relves\x40cs.ubc.ca";
-
-function set_assign_to() {
- // Based on the selected component, fill the "Assign To:" field
- // with the default component owner, and the the "QA Contact:" field
- // with the default QA Contact.
- var form = document.Create;
- var assigned_to = form.assigned_to.value;
-
-
- var index = -1;
- if (form.component.type == 'select-one') {
- index = form.component.selectedIndex;
- } else if (form.component.type == 'hidden') {
- // Assume there is only one component in the list
- index = 0;
- }
- if (index != -1) {
- var owner = initialowners[index];
- var component = components[index];
- if (assigned_to == last_initialowner
- || assigned_to == owner
- || assigned_to == '') {
- form.assigned_to.value = owner;
- last_initialowner = owner;
- }
- }
-}
--->
-</script>
-
-<form name="Create" id="Create" method="post" action="post_bug.cgi">
-<input type="hidden" name="product" value="TestProduct">
-
-<table cellspacing="2" cellpadding="0" border="0">
-
- <tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- Before reporting a bug, please read the
-<a href="page.cgi?id=bug-writing.html">bug writing guidelines</a>, please look at the list of
-<a href="duplicates.cgi">most frequently reported bugs</a>, and please
-<a href="query.cgi">search</a> for the bug.
- </td>
-
- </tr>
-
- <tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td align="right" valign="top"><strong>Reporter:</strong></td>
- <td valign="top">relves&#64;cs.ubc.ca</td>
-
- <td align="right" valign="top"><strong>Product:</strong></td>
- <td valign="top">TestProduct</td>
- </tr>
-
-
- <tr>
- <td align="right" valign="top">
- <strong>Version:</strong>
-
- </td>
- <td>
- <select name="version" size="5">
- <option value="other" selected="selected">other </option>
- </select>
- </td>
-
- <td align="right" valign="top">
- <strong>
-
- <a href="describecomponents.cgi?product=TestProduct">
- Component</a>:
- </strong>
- </td>
- <td>
- <select name="component" onchange="set_assign_to();" size="5">
- <option value="TestComponent" selected="selected">TestComponent </option>
- </select>
-
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr><td align="right">
- <strong>
-
- <a href="page.cgi?id=fields.html#rep_platform">Platform</a>:
- </strong>
- </td>
-
- <td>
- <select name="rep_platform">
- <option value="All">All</option>
- <option value="PC" selected="selected">PC</option>
-
- <option value="Macintosh">Macintosh</option>
- <option value="Other">Other</option>
- </select>
- </td>
-<td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#op_sys">OS</a>:
- </strong>
-
- </td>
-
- <td>
- <select name="op_sys">
- <option value="All">All</option>
- <option value="Windows" selected="selected">Windows</option>
- <option value="Mac OS">Mac OS</option>
- <option value="Linux">Linux</option>
-
- <option value="Other">Other</option>
- </select>
- </td>
- </tr>
-
- <tr><td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#priority">Priority</a>:
- </strong>
-
- </td>
-
- <td>
- <select name="priority">
- <option value="P1">P1</option>
- <option value="P2" selected="selected">P2</option>
- <option value="P3">P3</option>
- <option value="P4">P4</option>
-
- <option value="P5">P5</option>
- </select>
- </td>
-<td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#bug_severity">Severity</a>:
- </strong>
- </td>
-
- <td>
- <select name="bug_severity">
- <option value="blocker">blocker</option>
- <option value="critical">critical</option>
- <option value="major">major</option>
- <option value="normal" selected="selected">normal</option>
- <option value="minor">minor</option>
-
- <option value="trivial">trivial</option>
- <option value="enhancement">enhancement</option>
- </select>
- </td>
- </tr>
-
-
- <tr>
- <td>&nbsp;</td>
-
- <td colspan="3"></td>
- </tr>
-
- <tr>
- <input type="hidden" name="bug_status"
- value="NEW">
- <td align="right" valign="top"><strong>Initial State:</strong></td>
- <td valign="top">NEW</td>
- <td colspan="2"></td>
-
- </tr>
-
- <tr>
- <td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#assigned_to">Assign To</a>:
- </strong>
- </td>
- <td colspan="3"><input
- name="assigned_to"
- value="" size="32"
->
-
- <noscript>(Leave blank to assign to component's default assignee)</noscript>
- </td>
- </tr>
-
-
- <tr>
- <td align="right"><strong>Cc:</strong></td>
- <td colspan="3"><input
- name="cc"
- value="" size="45"
->
- </td>
-
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
-
- <tr>
- <td align="right"><strong>URL:</strong></td>
-
- <td colspan="3">
- <input name="bug_file_loc" size="60"
- value="http://">
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Summary:</strong></td>
- <td colspan="3">
- <input name="short_desc" size="60" value="">
-
- </td>
- </tr>
-
- <tr><td align="right" valign="top"><strong>Description:</strong></td>
- <td colspan="3">
- <textarea name="comment" rows="10" cols="80"></textarea>
- <br>
- </td>
-
- </tr>
-
- <input type="hidden" name="commentprivacy" value="0">
-
- <tr>
- <td align="right">
- <strong>Depends on:</strong>
- </td>
- <td>
-
- <input name="dependson" accesskey="d" value="">
- </td>
- </tr>
- <tr>
- <td align="right">
- <strong>Blocks:</strong>
- </td>
- <td>
-
- <input name="blocked" accesskey="b" value="">
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- </td>
- </tr>
-
-
-
- <tr>
- <td></td>
- <td colspan="3">
- <input type="submit" value=" Commit "
- onclick="if (this.form.short_desc.value == '')
- { alert('Please enter a summary sentence for this bug.');
- return false; } return true;">
- &nbsp;&nbsp;&nbsp;&nbsp;
- <input type="submit" name="maketemplate"
- value="Remember values as bookmarkable template">
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <br>
- We've made a guess at your
- operating system and platform. Please check them
- and, if we got it wrong, email
- THE MAINTAINER HAS NOT YET BEEN SET.
- </td>
- </tr>
-
- </table>
-
- <input type="hidden" name="form_name" value="enter_bug">
-</form>
-
-
-<div id="footer">
- <div class="intro"></div>
-
-
-
-
-<form method="get" action="show_bug.cgi">
-<div id="useful-links">
- <div id="links-actions">
- <div class="label">Actions:</div>
-
- <div class="links">
- <a href="./">Home</a> |
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Search</a> |
- bug # <input class="txt" name="id" size="6">
- <input class="btn" type="submit" value="Find"> |
-
- <a href="report.cgi">Reports</a>
-
- | <a href="request.cgi?requester=relves%40cs.ubc.ca&amp;requestee=relves%40cs.ubc.ca&amp;do_union=1&amp;group=type">My Requests</a>
-
-
- | <a href="votes.cgi?action=show_user">My&nbsp;Votes</a>
- | <a href="sanitycheck.cgi">Sanity&nbsp;check</a>
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;relves&#64;cs.ubc.ca
- </div>
- </div>
-
-
- <div id="links-edit">
- <div class="label">Edit:</div>
- <div class="links">
-
- <a href="userprefs.cgi">Prefs</a> | <a href="editparams.cgi">Parameters</a> | <a href="editsettings.cgi">User Preferences</a> | <a href="editusers.cgi">Users</a> | <a href="editproducts.cgi">Products</a> | <a href="editflagtypes.cgi">Flags</a> | <a href="editvalues.cgi">Field Values</a> | <a href="editgroups.cgi">Groups</a> | <a href="editkeywords.cgi">Keywords</a> | <a href="editwhines.cgi">Whining</a>
-
- </div>
- </div>
-
-
-
-
- <div id="links-saved">
- <div class="label">
- Saved&nbsp;Searches:
- </div>
- <div class="links">
- <a href="buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=relves%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
-
- </div>
- </div>
-
-
-</div>
-</form>
-
- <div class="outro"></div>
-</div>
-
-</body>
-</html>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug2201.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug2201.html
deleted file mode 100644
index b942b2a55..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/enter-bug2201.html
+++ /dev/null
@@ -1,493 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>Enter Bug: Mylar</title>
-
-
-<link rel="Top" href="https://bugs.eclipse.org/bugs/">
-
-
-
-
-
-
-
-
- <link rel="Saved&nbsp;Searches" title="My Bugs"
- href="buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=relves%40cs.ubc.ca&emailtype1=exact&emailassigned_to1=1&emailreporter1=1">
-
- <link rel="Saved&nbsp;Searches"
- title="AssignedToMe"
- href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=AssignedToMe">
-
-
-
- <script type="text/javascript">
- <!--
-
- function initHelp() {}
- // -->
- </script>
-
- <link href="skins/standard/global.css" rel="stylesheet" type="text/css">
- <link href="skins/custom/global.css" rel="stylesheet" type="text/css">
-
-
-
-
-
- </head>
-
-
-
- <body onload="set_assign_to();"
- class="bugs-eclipse-org-bugs">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr style="background-image: url(/bugs/header_bg.gif);">
- <td>
- <a href="http://www.eclipse.org/"><img src="/bugs/header_logo.gif" width="164" height="68" border="0" /></a>
- </td>
- <td align="right" style="color: white; font-family: verdana,arial,helvetica; font-size: 1.25em; font-style: italic;"><b>Eclipse bugs</b></font> <br /><font style="font-size: .5em;">Bugzilla 2.20.1 &#160;</font></td>
-
- </tr>
-</table>
-
-<div id="header">
- <h1>Enter Bug: Mylar</h1>
-
- <h2>This page lets you enter a new bug into Bugzilla.</h2>
-
-</div>
-
-<script type="text/javascript">
-<!--
-
-var initialowners = new Array(10);
-var last_initialowner;
-var components = new Array(10);
- var initialqacontacts = new Array(10);
- var last_initialqacontact;
- components[0] = "Bugzilla";
- initialowners[0] = "beatmik\x40acm.org";
- initialqacontacts[0] = "";
- components[1] = "Core";
- initialowners[1] = "beatmik\x40acm.org";
- initialqacontacts[1] = "";
- components[2] = "Doc";
- initialowners[2] = "beatmik\x40acm.org";
- initialqacontacts[2] = "";
- components[3] = "Java";
- initialowners[3] = "beatmik\x40acm.org";
- initialqacontacts[3] = "";
- components[4] = "Jira";
- initialowners[4] = "beatmik\x40acm.org";
- initialqacontacts[4] = "";
- components[5] = "Monitor";
- initialowners[5] = "beatmik\x40acm.org";
- initialqacontacts[5] = "";
- components[6] = "Tasks";
- initialowners[6] = "beatmik\x40acm.org";
- initialqacontacts[6] = "";
- components[7] = "UI";
- initialowners[7] = "beatmik\x40acm.org";
- initialqacontacts[7] = "";
- components[8] = "XML";
- initialowners[8] = "beatmik\x40acm.org";
- initialqacontacts[8] = "";
- components[9] = "Zest";
- initialowners[9] = "irbull\x40cs.uvic.ca";
- initialqacontacts[9] = "";
-
-function set_assign_to() {
- // Based on the selected component, fill the "Assign To:" field
- // with the default component owner, and the the "QA Contact:" field
- // with the default QA Contact.
- var form = document.Create;
- var assigned_to = form.assigned_to.value;
-
- var qa_contact = form.qa_contact.value;
-
- var index = -1;
- if (form.component.type == 'select-one') {
- index = form.component.selectedIndex;
- } else if (form.component.type == 'hidden') {
- // Assume there is only one component in the list
- index = 0;
- }
- if (index != -1) {
- var owner = initialowners[index];
- var component = components[index];
- if (assigned_to == last_initialowner
- || assigned_to == owner
- || assigned_to == '') {
- form.assigned_to.value = owner;
- last_initialowner = owner;
- }
- var contact = initialqacontacts[index];
- if (qa_contact == last_initialqacontact
- || qa_contact == contact
- || qa_contact == '') {
- form.qa_contact.value = contact;
- last_initialqacontact = contact;
- }
- }
-}
--->
-</script>
-
-<form name="Create" id="Create" method="post" action="post_bug.cgi">
-<input type="hidden" name="product" value="Mylar">
-
-<table cellspacing="2" cellpadding="0" border="0">
-
- <tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td></td>
-
- <td colspan="3">
- Before reporting a bug, please read the
-<a href="page.cgi?id=bug-writing.html">bug writing guidelines</a>, please look at the list of
-<a href="duplicates.cgi">most frequently reported bugs</a>, and please
-<a href="query.cgi">search</a> for the bug.
- </td>
- </tr>
-
- <tr>
-
- <td><br></td>
- </tr>
-
- <tr>
- <td align="right" valign="top"><strong>Reporter:</strong></td>
- <td valign="top">relves&#64;cs.ubc.ca</td>
-
- <td align="right" valign="top"><strong>Product:</strong></td>
-
- <td valign="top">Mylar</td>
- </tr>
-
-
- <tr>
- <td align="right" valign="top">
- <strong>Version:</strong>
- </td>
- <td>
-
- <select name="version" size="5">
- <option value="0.2">0.2 </option>
- <option value="0.3">0.3 </option>
- <option value="0.4" selected="selected">0.4 </option>
- <option value="unspecified">unspecified </option>
- </select>
- </td>
-
- <td align="right" valign="top">
- <strong>
- <a href="describecomponents.cgi?product=Mylar">
- Component</a>:
- </strong>
- </td>
- <td>
- <select name="component" onchange="set_assign_to();" size="5">
-
- <option value="Bugzilla">Bugzilla </option>
- <option value="Core">Core </option>
- <option value="Doc">Doc </option>
- <option value="Java">Java </option>
- <option value="Jira">Jira </option>
- <option value="Monitor">Monitor </option>
-
- <option value="Tasks">Tasks </option>
- <option value="UI">UI </option>
- <option value="XML">XML </option>
- <option value="Zest">Zest </option>
- </select>
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr><td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#rep_platform">Platform</a>:
- </strong>
-
- </td>
-
- <td>
- <select name="rep_platform">
- <option value="All">All</option>
- <option value="Macintosh">Macintosh</option>
- <option value="Other">Other</option>
- <option value="PC" selected="selected">PC</option>
-
- <option value="Power PC">Power PC</option>
- <option value="Sun">Sun</option>
- </select>
- </td>
-<td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#op_sys">OS</a>:
- </strong>
-
- </td>
-
- <td>
- <select name="op_sys">
- <option value="All">All</option>
- <option value="AIX Motif">AIX Motif</option>
- <option value="HP-UX">HP-UX</option>
- <option value="Linux">Linux</option>
-
- <option value="Linux-GTK">Linux-GTK</option>
- <option value="Linux-Motif">Linux-Motif</option>
- <option value="Mac OS">Mac OS</option>
- <option value="MacOS X">MacOS X</option>
- <option value="Neutrino">Neutrino</option>
- <option value="other">other</option>
-
- <option value="QNX-Photon">QNX-Photon</option>
- <option value="Solaris">Solaris</option>
- <option value="Solaris-GTK">Solaris-GTK</option>
- <option value="Solaris-Motif">Solaris-Motif</option>
- <option value="SymbianOS-Series 80">SymbianOS-Series 80</option>
- <option value="Unix All">Unix All</option>
-
- <option value="Windows All">Windows All</option>
- <option value="Windows 95">Windows 95</option>
- <option value="Windows 98">Windows 98</option>
- <option value="Windows 2000">Windows 2000</option>
- <option value="Windows 2003 Server">Windows 2003 Server</option>
- <option value="Windows CE">Windows CE</option>
-
- <option value="Windows ME">Windows ME</option>
- <option value="Windows Mobile 2003">Windows Mobile 2003</option>
- <option value="Windows NT">Windows NT</option>
- <option value="Windows XP" selected="selected">Windows XP</option>
- </select>
- </td>
- </tr>
-
- <tr>
- <input type="hidden" name="priority"
- value="P3">
-<td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#bug_severity">Severity</a>:
- </strong>
- </td>
-
- <td>
-
- <select name="bug_severity">
- <option value="blocker">blocker</option>
- <option value="critical">critical</option>
- <option value="major">major</option>
- <option value="normal" selected="selected">normal</option>
- <option value="minor">minor</option>
-
- <option value="trivial">trivial</option>
- <option value="enhancement">enhancement</option>
- </select>
- </td>
- </tr>
-
-
- <tr>
- <td>&nbsp;</td>
-
- <td colspan="3"></td>
- </tr>
-
- <tr>
- <input type="hidden" name="bug_status"
- value="NEW">
- <td align="right" valign="top"><strong>Initial State:</strong></td>
- <td valign="top">NEW</td>
- <td colspan="2"></td>
-
- </tr>
-
- <tr>
- <td align="right">
- <strong>
- <a href="page.cgi?id=fields.html#assigned_to">Assign To</a>:
- </strong>
- </td>
- <td colspan="3"><input
- name="assigned_to"
- value="" disabled="1" size="32"
->
-
- <noscript>(Leave blank to assign to component's default assignee)</noscript>
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>QA Contact:</strong></td>
- <td colspan="3"><input
- name="qa_contact"
- value="" disabled="1" size="32"
->
- <noscript>(Leave blank to assign to default qa contact)</noscript>
-
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Cc:</strong></td>
- <td colspan="3"><input
- name="cc"
- value="" size="45"
->
- </td>
- </tr>
-
- <tr>
-
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
-
- <tr>
- <td align="right"><strong>URL:</strong></td>
- <td colspan="3">
- <input name="bug_file_loc" size="60"
- value="http://">
-
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Summary:</strong></td>
- <td colspan="3">
- <input name="short_desc" size="60" value="">
- </td>
- </tr>
-
- <tr><td align="right" valign="top"><strong>Description:</strong></td>
- <td colspan="3">
- <textarea name="comment" rows="10" cols="80"></textarea>
- <br>
- </td>
- </tr>
-
- <input type="hidden" name="commentprivacy" value="0">
-
-
- <tr>
- <td></td>
- <td colspan="3">
- </td>
- </tr>
-
-
-
- <tr>
- <td></td>
-
- <td colspan="3">
- <input type="submit" value=" Commit "
- onclick="if (this.form.short_desc.value == '')
- { alert('Please enter a summary sentence for this bug.');
- return false; } return true;">
- &nbsp;&nbsp;&nbsp;&nbsp;
- <input type="submit" name="maketemplate"
- value="Remember values as bookmarkable template">
- </td>
- </tr>
-
- <tr>
- <td></td>
-
- <td colspan="3">
- <br>
- We've made a guess at your
- operating system and platform. Please check them
- and, if we got it wrong, email
- webmaster@eclipse.org.
- </td>
- </tr>
-
- </table>
- <input type="hidden" name="form_name" value="enter_bug">
-</form>
-
-
-<div id="footer">
- <div class="intro"></div>
-
-
-
-
-<form method="get" action="show_bug.cgi">
-<div id="useful-links">
- <div id="links-actions">
- <div class="label">Actions:</div>
- <div class="links">
- <a href="./">Home</a> |
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Search</a> |
- bug # <input class="txt" name="id" size="6">
-
- <input class="btn" type="submit" value="Find"> |
-
- <a href="report.cgi">Reports</a>
-
- | <a href="request.cgi?requester=relves%40cs.ubc.ca&amp;requestee=relves%40cs.ubc.ca&amp;do_union=1&amp;group=type">My Requests</a>
-
- | <a href="votes.cgi?action=show_user">My&nbsp;Votes</a>
-
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;relves&#64;cs.ubc.ca
- </div>
-
- </div>
-
- <div id="links-edit">
- <div class="label">Edit:</div>
- <div class="links">
-
- <a href="userprefs.cgi">Prefs</a>
- </div>
- </div>
-
-
-
-
- <div id="links-saved">
-
- <div class="label">
- Saved&nbsp;Searches:
- </div>
- <div class="links">
- <a href="buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=relves%40cs.ubc.ca&emailtype1=exact&emailassigned_to1=1&emailreporter1=1">My&nbsp;Bugs</a>
- |
- <a href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=AssignedToMe">AssignedToMe</a>
- </div>
-
- </div>
-
-
-</div>
-</form>
-
- <div class="outro"></div>
-</div>
-
-</body>
-</html>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/equinox-page.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/equinox-page.html
deleted file mode 100644
index 1c8fdf57d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/equinox-page.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0059)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="Equinox_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="Equinox_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="Equinox_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=Equinox
-name=product>
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>Equinox</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=unspecified
- selected>unspecified</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Equinox">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION
- value="Dynamic Plugins">Dynamic Plugins</OPTION> <OPTION
- value=General>General</OPTION> <OPTION value=OSGi>OSGi</OPTION></SELECT>
- </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/gmt-page.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/gmt-page.html
deleted file mode 100644
index 951b86ccd..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/gmt-page.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0055)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="GMT_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="GMT_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="GMT_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=GMT name=product>
-
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>GMT</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=unspecified
- selected>unspecified</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=GMT">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION value=Core
- selected>Core</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/hipikat-copy-bug-1-full.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/hipikat-copy-bug-1-full.html
deleted file mode 100644
index 6390fcc9a..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/hipikat-copy-bug-1-full.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<HTML><HEAD>
-<TITLE>Bug 1 - Usability issue with external editors (1GE6IRL)</TITLE>
-
-
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
-WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
-BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
-src="http://bugs.eclipse.org/bugs/images/EclipseBannerPic.jpg" width="115" height="50"></td><td
-WIDTH="637"><img SRC="http://bugs.eclipse.org/bugs/images/gradient.jpg" BORDER=0 height=50
-width=282></td><td WIDTH="250"><img src="http://bugs.eclipse.org/bugs/images/eproject-simple.gif"
-width="250" height="48"></td></tr></table></td></tr></table>
-
-<TABLE BORDER=0 CELLSPACING=0 WIDTH="100%">
- <TR>
- <TD WIDTH=10% VALIGN=TOP ALIGN=LEFT>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>
- <TR><TD VALIGN=TOP ALIGN=LEFT NOWRAP>
- <FONT SIZE=+1><B>Bugzilla Bug 1</B></FONT> </TD></TR>
- </TABLE>
- </TD>
- <TD VALIGN=CENTER>&nbsp;</TD>
- <TD VALIGN=CENTER ALIGN=LEFT>
-Usability issue with external editors (1GE6IRL)
-</TD></TR></TABLE>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=query.cgi>Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=enter_bug.cgi>Enter new bug</A>
-<HR>
-<FORM NAME="changeform" METHOD="POST" ACTION="process_bug.cgi">
-
-<INPUT TYPE=HIDDEN NAME="delta_ts" VALUE="20020427143827">
-<INPUT TYPE=HIDDEN NAME="longdesclength" VALUE="3022">
-<INPUT TYPE=HIDDEN NAME="id" VALUE=1>
- <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR>
- <TD ALIGN=RIGHT><B>Bug#:</B></TD><TD><A HREF="http://cvs-mirror.mozilla.org/webtools/bugzilla/show_bug.cgi?id=1">1</A></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#rep_platform">Platform:</A></B></TD>
- <TD><SELECT NAME=rep_platform><OPTION VALUE="All">All<OPTION VALUE="DEC">DEC<OPTION VALUE="HP">HP<OPTION VALUE="Macintosh">Macintosh<OPTION VALUE="PC">PC<OPTION VALUE="SGI">SGI<OPTION VALUE="Sun">Sun<OPTION VALUE="Other">Other</SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B>Reporter:</B></TD><TD>Andre_Weinand@oti.com (Andre Weinand)</TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B>Product:</B></TD>
- <TD><SELECT NAME=product><OPTION VALUE="TestProduct">TestProduct</SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B>OS:</B></TD>
- <TD><SELECT NAME=op_sys><OPTION SELECTED VALUE="All">All<OPTION VALUE="Windows 3.1">Windows 3.1<OPTION VALUE="Windows 95">Windows 95<OPTION VALUE="Windows 98">Windows 98<OPTION VALUE="Windows ME">Windows ME<OPTION VALUE="Windows 2000">Windows 2000<OPTION VALUE="Windows NT">Windows NT<OPTION VALUE="Mac System 7">Mac System 7<OPTION VALUE="Mac System 7.5">Mac System 7.5<OPTION VALUE="Mac System 7.6.1">Mac System 7.6.1<OPTION VALUE="Mac System 8.0">Mac System 8.0<OPTION VALUE="Mac System 8.5">Mac System 8.5<OPTION VALUE="Mac System 8.6">Mac System 8.6<OPTION VALUE="Mac System 9.0">Mac System 9.0<OPTION VALUE="Linux">Linux<OPTION VALUE="BSDI">BSDI<OPTION VALUE="FreeBSD">FreeBSD<OPTION VALUE="NetBSD">NetBSD<OPTION VALUE="OpenBSD">OpenBSD<OPTION VALUE="AIX">AIX<OPTION VALUE="BeOS">BeOS<OPTION VALUE="HP-UX">HP-UX<OPTION VALUE="IRIX">IRIX<OPTION VALUE="Neutrino">Neutrino<OPTION VALUE="OpenVMS">OpenVMS<OPTION VALUE="OS/2">OS/2<OPTION VALUE="OSF/1">OSF/1<OPTION VALUE="Solaris">Solaris<OPTION VALUE="SunOS">SunOS<OPTION VALUE="other">other</SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT NOWRAP><b>Add CC:</b></TD>
- <TD><INPUT NAME=newcc SIZE=30 VALUE=""></TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="describecomponents.cgi?product=">Component:</A></B></TD>
- <TD><SELECT NAME=component></SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B>Version:</B></TD>
- <TD><SELECT NAME=version></SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ROWSPAN=4 ALIGN=RIGHT VALIGN=TOP><B>Cc:</B></TD>
- <TD ROWSPAN=4 VALIGN=TOP> <SELECT NAME=cc MULTIPLE SIZE=5>
-<OPTION VALUE="Kevin_McGuire@oti.com">Kevin_McGuire@oti.com
-</SELECT><BR>
-<INPUT TYPE=CHECKBOX NAME=removecc>Remove selected CCs<br>
- </TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html">Status:</A></B></TD>
- <TD>VERIFIED</TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#priority">Priority:</A></B></TD>
- <TD><SELECT NAME=priority><OPTION VALUE="P1">P1<OPTION VALUE="P2">P2<OPTION SELECTED VALUE="P3">P3<OPTION VALUE="P4">P4<OPTION VALUE="P5">P5</SELECT></TD>
- <TD>&nbsp;</TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html">Resolution:</A></B></TD>
- <TD>FIXED</TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#severity">Severity:</A></B></TD>
- <TD><SELECT NAME=bug_severity><OPTION VALUE="blocker">blocker<OPTION VALUE="critical">critical<OPTION VALUE="major">major<OPTION SELECTED VALUE="normal">normal<OPTION VALUE="minor">minor<OPTION VALUE="trivial">trivial<OPTION VALUE="enhancement">enhancement</SELECT></TD>
- <TD>&nbsp;</TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#assigned_to">Assigned&nbsp;To:
- </A></B></TD>
- <TD>James_Moody@oti.com (James Moody)</TD>
- <TD>&nbsp;</TD><TD></TD><TD></TD><TD>&nbsp;</TD>
-</TR>
- <TR>
- <TD ALIGN="RIGHT"><B>URL:</B>
- <TD COLSPAN=7>
- <INPUT NAME=bug_file_loc VALUE="" SIZE=60></TD>
- </TR><TR>
- <TD ALIGN="RIGHT"><B>Summary:</B>
- <TD COLSPAN=7>
- <INPUT NAME=short_desc VALUE="Usability issue with external editors (1GE6IRL)" SIZE=60></TD>
- </TR><tr><td align=right><B>Attachments:</b></td>
-<td colspan=7><a href="createattachment.cgi?id=1">Create a new attachment</a> (proposed patch, testcase, etc.)</td></tr></table>
-<table><tr>
-<th align=right>Bug 1 depends on:</th><td></td><td><input name=dependson value=""></td>
-
-<td rowspan=2><a href="showdependencytree.cgi?id=1">Show dependency tree</a>
-
-<br><a href="showdependencygraph.cgi?id=1">Show dependency graph</a>
-</td></tr><tr><th align=right>Bug 1 blocks:</th><td></td><td><input name=blocked value=""></td>
-</tr></table>
-
-<br>
-<B>Additional Comments:</B>
-<BR>
-<TEXTAREA WRAP=HARD NAME=comment ROWS=10 COLS=80></TEXTAREA><BR><br>
-<INPUT TYPE=radio NAME=knob VALUE=none CHECKED>
- Leave as <b>VERIFIED FIXED</b><br><INPUT TYPE=radio NAME=knob VALUE=reopen> Reopen bug<br>
-<INPUT TYPE=radio NAME=knob VALUE=close>
- Mark bug as <b>CLOSED</b><br>
-
-<INPUT TYPE="submit" VALUE="Commit">
-<INPUT TYPE="reset" VALUE="Reset">
-<INPUT TYPE="hidden" name="form_name" VALUE="process_bug">
-<P>
-<FONT size="+1"><B>
- <A HREF="show_activity.cgi?id=1">View Bug Activity</A>
- &nbsp; | &nbsp;
- <A HREF="long_list.cgi?buglist=1">Format For Printing</A>
-</B></FONT>
-<BR></FORM>
-<table><tr><td align=left><B>Description:</B></td>
-<td align=right width=100%>Opened: 2001-10-10 17:34</td></tr></table>
-<HR>
-<PRE>- Setup a project that contains a *.gif resource&#013; - release project to CVS&#013; - edit the *.gif resource with an external editor, e.g. PaintShop&#013; - save and close external editor&#013; - in Navigator open the icon resource and verify that your changes are there&#013; - release project&#013; -&gt; nothing to release!&#013; - in Navigator open the icon resource and verify that your changes are still there&#013;&#013; Problem: because I never &quot;Refreshed from local&quot;, the workspace hasn't changed so &quot;Release&quot; didn't find anything.&#013; However opening the resource with an external editor found the modified file on disk and showed the changes.&#013;&#013; The real problem occurs if &quot;Release&quot; actually finds something to release but you don't spot that some resources are missing.&#013; This is extremely error prone: one of my changes didn't made it into build 110 because of this!&#013;&#013;NOTES:&#013;EG (5/23/01 3:00:33 PM)&#013; Release should do a refresh from local before doing the release.&#013; Moving to VCM&#013;&#013;&#013;KM (05/27/01 5:10:19 PM)&#013; Comments from JM in related email:&#013;&#013; Should not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.&#013; Consider the SWT team who keep their workspaces on network drives. This will be slow. &#013;&#013; Side effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the&#013; runnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.&#013;&#013; Summary: Offer to &quot;ensure local consistency&quot; before releasing.&#013;&#013;KM (5/31/01 1:30:35 PM)&#013; See also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document&#013; which failed with an error. Never got log from Tod though.</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-19 06:32 -------</I><BR>
-<PRE>*** <strike><a href="show_bug.cgi?id=183" title="RESOLVED DUPLICATE - readme: must refresh from local if using external editors (1GFBQNI)">Bug 183</a></strike> has been marked as a duplicate of this bug. ***</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-19 12:36 -------</I><BR>
-<PRE>Implemented 'auto refresh' option. Default value is off.</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:DJ_Houghton@oti.com">DJ Houghton</A> 2001-10-23 19:39 -------</I><BR>
-<PRE>PRODUCT VERSION:&#013; 109&#013;&#013;</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-25 06:19 -------</I><BR>
-<PRE>Fixed in v206</PRE>
-
-<HR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=query.cgi>Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=enter_bug.cgi>Enter new bug</A>
-<hr>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a HREF=query.cgi>Query page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a HREF=enter_bug.cgi>Enter new bug</a>
-<table BORDER="0"><tr><td BGCOLOR="#000000" VALIGN="TOP">
-<table BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%"
-BGCOLOR="lightyellow">
-<tr><td>
-<form METHOD=GET ACTION="show_bug.cgi">
-<table width="100%"><tr><td>
-Actions:
-</td><td VALIGN="middle" NOWRAP>
-<a href='enter_bug.cgi'>New</a> | <a href='query.cgi'>Query</a> |
- <input TYPE=SUBMIT VALUE="Find"> bug # <input NAME=id SIZE=6> | <a
-href='reports.cgi'>Reports</a></td><td>&nbsp;</td><td valign=middle align=right>
-
- <a href="createaccount.cgi"><nobr>New account</nobr></a>
- | <nobr><a href=query.cgi?GoAheadAndLogIn=1>Log in</a></nobr></td></tr></form>
-</table><br>
-<a HREF="index.html">Eclipse Bugs Home</a>
-</td></tr>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/platform-page.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/platform-page.html
deleted file mode 100644
index d41b5c84d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/platform-page.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><title>Enter Bug</title></head>
-
-
-
-
-
-
-
-
- <body bgcolor="#ffffff" onload="" text="#000000" link="#0000ee" vlink="#551a8b" alink="#ff0000">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td width="100%"><table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#006699"><tbody><tr><td bgcolor="#000000" width="116"><img src="main_data/EclipseBannerPic.jpg" width="115" height="50"></td><td width="637"><a href="http://www.eclipse.org/"><img src="main_data/gradient.jpg" border="0" height="50" width="282"></a></td><td width="250"><img src="main_data/eproject-simple.gif" width="250" height="48"></td></tr></tbody></table></td></tr></tbody></table>
-
- <table border="0" cellspacing="0">
- <tbody><tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tbody><tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Enter Bug</b></font>
- </td>
- </tr>
- </tbody></table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left">This page lets you enter a new bug into Bugzilla.</td>
- </tr>
- </tbody></table>
-
-<form method="post" action="post_bug.cgi">
-<input type="hidden" name="product" value="Platform">
-
-<input type="hidden" name="priority" value="P3">
-<input type="hidden" name="bug_status" value="NEW">
-
- <table cellspacing="2" cellpadding="0" border="0">
-
- <tbody><tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-Before reporting a bug, please read the <a href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">
-bug writing guidelines</a>, please look at the list of
-<a href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently reported bugs</a>, and please
-<a href="https://bugs.eclipse.org/bugs/query.cgi">search</a> for the bug.
- </td>
- </tr>
-
- <tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td align="right" valign="top"><strong>Reporter:</strong></td>
- <td valign="top">tanya@cs.ubc.ca</td>
-
- <td align="right" valign="top"><strong>Product:</strong></td>
- <td valign="top">Platform</td>
- </tr>
-
-
- <tr>
- <td align="right" valign="top">
- <strong>Version:</strong>
- </td>
- <td>
- <select name="version" size="5"><option value="1.0">1.0 </option><option value="2.0">2.0 </option><option value="2.0.1">2.0.1 </option><option value="2.0.2">2.0.2 </option><option value="2.1">2.1 </option><option value="2.1.1">2.1.1 </option><option value="2.1.2">2.1.2 </option><option value="3.0" selected="selected">3.0 </option></select>
- </td>
-
- <td align="right" valign="top">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">
- Component</a>:
- </strong>
- </td>
- <td>
- <select name="component" size="5"><option value="Ant">Ant </option><option value="Compare">Compare </option><option value="Core">Core </option><option value="CVS">CVS </option><option value="Debug">Debug </option><option value="Doc">Doc </option><option value="Help">Help </option><option value="Releng">Releng </option><option value="Scripting">Scripting </option><option value="Search">Search </option><option value="SWT">SWT </option><option value="Team">Team </option><option value="Text">Text </option><option value="UI">UI </option><option value="Update">Update </option><option value="WebDAV">WebDAV </option></select>
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr><td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</a>:
- </strong>
- </td>
-
- <td>
- <select name="rep_platform"><option value="All">All </option><option value="Macintosh">Macintosh </option><option value="PC" selected="selected">PC </option><option value="Power PC">Power PC </option><option value="Sun">Sun </option><option value="Other">Other </option></select>
- </td>
- <td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</a>:
- </strong>
- </td>
-
- <td>
- <select name="op_sys"><option value="All">All </option><option value="AIX Motif">AIX Motif </option><option value="Windows 95">Windows 95 </option><option value="Windows 98">Windows 98 </option><option value="Windows CE">Windows CE </option><option value="Windows ME">Windows ME </option><option value="Windows 2000">Windows 2000 </option><option value="Windows NT">Windows NT </option><option value="Windows XP" selected="selected">Windows XP </option><option value="Windows All">Windows All </option><option value="MacOS X">MacOS X </option><option value="Linux">Linux </option><option value="Linux-GTK">Linux-GTK </option><option value="Linux-Motif">Linux-Motif </option><option value="HP-UX">HP-UX </option><option value="Neutrino">Neutrino </option><option value="QNX-Photon">QNX-Photon </option><option value="Solaris">Solaris </option><option value="Unix All">Unix All </option><option value="other">other </option></select>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</a>:
- </strong>
- </td>
-
- <td>
- <select name="bug_severity"><option value="blocker">blocker </option><option value="critical">critical </option><option value="major">major </option><option value="normal" selected="selected">normal </option><option value="minor">minor </option><option value="trivial">trivial </option><option value="enhancement">enhancement </option></select>
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr>
- <td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned To</a>:
- </strong>
- </td>
- <td colspan="3">
- <input name="assigned_to" size="32" value="">
- (Leave blank to assign to default component owner)
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Cc:</strong></td>
- <td colspan="3">
- <input name="cc" size="45" value="">
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr>
- <td colspan="3">
- <input type="hidden" input="" name="bug_file_loc" size="60" value="">
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Summary:</strong></td>
- <td colspan="3">
- <input name="short_desc" size="60" value="">
- </td>
- </tr>
-
- <tr><td align="right" valign="top"><strong>Description:</strong></td>
- <td colspan="3">
- <textarea wrap="hard" name="comment" rows="10" cols="80"></textarea>
- <br>
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <input type="submit" value=" Commit " onclick="if (this.form.short_desc.value == '')
- { alert('Please enter a summary sentence for this bug.');
- return false; } return true;">
- &nbsp;&nbsp;&nbsp;&nbsp;
- <input type="submit" name="maketemplate" value="Remember values as bookmarkable template">
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <br>
- We've made a guess at your operating system and platform.
- Please check them and, if we got it wrong, email webmaster@eclipse.org.
- </td>
- </tr>
-
- </tbody></table>
- <input type="hidden" name="form_name" value="enter_bug">
-</form>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tbody><tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%" bgcolor="lightyellow">
- <tbody><tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tbody><tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap="nowrap">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</a> |
- <a href="https://bugs.eclipse.org/bugs/query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</a>
-
- | <a href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My Votes</a>
- </td>
-
- <td>&nbsp;</td>
-
-
- <td valign="middle">
- Edit <a href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</a>
-
- | <a href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</a>&nbsp;tanya@cs.ubc.ca
- </td>
- </tr>
-
-
-
-
- <tr>
- <td>
- Preset&nbsp;Queries:
- </td>
-
- <td colspan="3">
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
-
- </td>
- </tr>
-
-
- </tbody></table>
-</form>
-
- </td>
- </tr>
- </tbody></table>
- </td>
- </tr>
-</tbody></table>
-
-</body></html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/product-page-1-product-hipikat.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/product-page-1-product-hipikat.html
deleted file mode 100644
index 53805b2d2..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/product-page-1-product-hipikat.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0073)http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/enter_bug.cgi -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=windows-1252"><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org -->
-<SCRIPT
-type=text/javascript>
- <!--
-
- function initHelp() {}
- // -->
- </SCRIPT>
-
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY bgColor=#ffffff onload=set_assign_to();><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#000000 border=0>
- <TBODY>
- <TR>
- <TD>
- <CENTER><FONT color=#ffffff size=8>This is Bugzilla
- </FONT></CENTER></TD></TR></TBODY></TABLE>
-<CENTER><FONT size=-1><A href="http://www.bugzilla.org/">Bugzilla</A> Version
-2.17.6 </FONT></CENTER>
-<TABLE cellSpacing=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center align=left>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<SCRIPT language=JavaScript type=text/javascript>
-<!--
-
-var default_owners = new Array(1);
-var components = new Array(1);
- components[0] = "TestComponent";
- default_owners[0] = "cubranic\x40cs.ubc.ca";
-var last_default_owner;
-function set_assign_to() {
- // Based on the selected component, fill the "Assign To:" field
- // with the default component owner.
- var form = document.Create;
- assigned_to = form.assigned_to.value
- var index = -1;
- if (form.component.type == 'select-one') {
- index = form.component.selectedIndex;
- } else if (form.component.type == 'hidden') {
- // Assume there is only one component in the list
- index = 0;
- }
- if (index != -1) {
- var owner = default_owners[index];
- var component = components[index];
- if (assigned_to == last_default_owner
- || assigned_to == owner
- || assigned_to == ''
- || confirm('Would you like to change\n\n' +
- ' "Assign To: ' + assigned_to + '"\n\n' +
- 'to the default "' + component + '" owner:\n\n' +
- ' ' + owner + "?")) {
- form.assigned_to.value = owner;
- last_default_owner = owner;
- }
- }
-}
--->
-</SCRIPT>
-
-<FORM id=Create name=Create action=post_bug.cgi method=post><INPUT type=hidden
-value=TestProduct name=product>
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/duplicates.cgi">most
- frequently reported bugs</A>, and please <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/query.cgi">search</A>
- for the bug. </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>TestProduct</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=other
- selected>other</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/describecomponents.cgi?product=TestProduct">Component</A>:
- </STRONG></TD>
- <TD><SELECT onchange=set_assign_to(); size=5 name=component> <OPTION
- value=TestComponent selected>TestComponent</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=DEC>DEC</OPTION> <OPTION value=HP>HP</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value=SGI>SGI</OPTION> <OPTION value=Sun>Sun</OPTION> <OPTION
- value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="Windows 3.1">Windows 3.1</OPTION> <OPTION
- value="Windows 95">Windows 95</OPTION> <OPTION
- value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows Server 2003">Windows
- Server 2003</OPTION> <OPTION value="Mac System 7">Mac System 7</OPTION>
- <OPTION value="Mac System 7.5">Mac System 7.5</OPTION> <OPTION
- value="Mac System 7.6.1">Mac System 7.6.1</OPTION> <OPTION
- value="Mac System 8.0">Mac System 8.0</OPTION> <OPTION
- value="Mac System 8.5">Mac System 8.5</OPTION> <OPTION
- value="Mac System 8.6">Mac System 8.6</OPTION> <OPTION
- value="Mac System 9.x">Mac System 9.x</OPTION> <OPTION
- value="Mac OS X 10.0">Mac OS X 10.0</OPTION> <OPTION
- value="Mac OS X 10.1">Mac OS X 10.1</OPTION> <OPTION
- value="Mac OS X 10.2">Mac OS X 10.2</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=BSD/OS>BSD/OS</OPTION> <OPTION
- value=FreeBSD>FreeBSD</OPTION> <OPTION value=NetBSD>NetBSD</OPTION>
- <OPTION value=OpenBSD>OpenBSD</OPTION> <OPTION value=AIX>AIX</OPTION>
- <OPTION value=BeOS>BeOS</OPTION> <OPTION value=HP-UX>HP-UX</OPTION>
- <OPTION value=IRIX>IRIX</OPTION> <OPTION
- value=Neutrino>Neutrino</OPTION> <OPTION value=OpenVMS>OpenVMS</OPTION>
- <OPTION value=OS/2>OS/2</OPTION> <OPTION value=OSF/1>OSF/1</OPTION>
- <OPTION value=Solaris>Solaris</OPTION> <OPTION
- value=SunOS>SunOS</OPTION> <OPTION value=other>other</OPTION></SELECT>
- </TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#priority">Priority</A>:
- </STRONG></TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION value=P2
- selected>P2</OPTION> <OPTION value=P3>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#assigned_to">Assign
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> <NOSCRIPT>(Leave blank to
- assign to default component owner)</NOSCRIPT> </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG>URL:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 value=http:// name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/describekeywords.cgi">Keywords</A>:
- </STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=keywords> (optional) </TD></TR>
- <TR>
- <TD align=right><STRONG>Depends on:</STRONG> </TD>
- <TD><INPUT accessKey=d name=dependson> </TD></TR>
- <TR>
- <TD align=right><STRONG>Blocks:</STRONG> </TD>
- <TD><INPUT accessKey=b name=blocked> </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '')&#10; { alert('Please enter a summary sentence for this bug.');&#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, emailTHE MAINTAINER
- HAS NOT YET BEEN SET. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/enter_bug.cgi">New</A>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/query.cgi">Search</A>
- | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/report.cgi">Reports</A>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/request.cgi?requester=tanya%40cs.ubc.ca&amp;requestee=tanya%40cs.ubc.ca&amp;do_union=1&amp;group=type">My
- Requests</A> | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/userprefs.cgi">prefs</A>,
- <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editproducts.cgi">products</A>,
- <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editflagtypes.cgi">flags</A>,
- <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editkeywords.cgi">keywords</A>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Saved&nbsp;Searches: </TD>
- <TD colSpan=3><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-220.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-220.html
deleted file mode 100644
index 6e8adde46..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-220.html
+++ /dev/null
@@ -1,667 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>Bug 7 - summary</title>
-
-
-
-
-
-
- <script type="text/javascript">
- <!--
-
- function initHelp() {}
- // -->
- </script>
-
- <link href="skins/standard/global.css" rel="stylesheet" type="text/css">
- <link href="skins/custom/global.css" rel="stylesheet" type="text/css">
-
-
-
-
-
- </head>
-
-
-
- <body onload=""
- class="you-havent-visited-editparams-cgi-yet bz_bug bz_status_NEW bz_component_TestComponent bz_bug_7">
-
-
-<div id="banner">
- <div class="intro"></div>
- <p id="banner-name">
- <span>This is Bugzilla</span>
- </p>
- <p id="banner-version">
- <a href="http://www.bugzilla.org/"><span>Bugzilla</span></a>
- <span>Version 2.20</span>
- </p>
- <div class="outro"></div>
- </div>
-
-<div id="header">
- <h1>Bugzilla Bug 7</h1>
-
- <h2>summary</h2>
-
- <h3>Last modified: 2006-02-21 16:34:29</h3>
-</div>
-<i><font color="#777777">First</font></i>
- <i><font color="#777777">Last</font></i>
- <i><font color="#777777">Prev</font></i>
- <i><font color="#777777">Next</font></i>
- &nbsp;&nbsp;
- <i><font color="#777777">No search results available</font></i>
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<hr>
-<script type="text/javascript">
- <!--
-
- /* Outputs a link to call replyToComment(); used to reduce HTML output */
- function addReplyLink(id) {
- /* XXX this should really be updated to use the DOM Core's
- * createElement, but finding a container isn't trivial */
- document.write('[<a href="#add_comment" onclick="replyToComment(' +
- id + ');">reply<' + '/a>]');
- }
-
- /* Adds the reply text to the `comment' textarea */
- function replyToComment(id) {
- /* pre id="comment_name_N" */
- var text_elem = document.getElementById('comment_text_'+id);
- var text = getText(text_elem);
-
- /* make sure we split on all newlines -- IE or Moz use \r and \n
- * respectively */
- text = text.split(/\r|\n/);
-
- var replytext = "";
- for (var i=0; i < text.length; i++) {
- replytext += "> " + text[i] + "\n";
- }
-
- replytext = "(In reply to comment #" + id + ")\n" + replytext + "\n";
-
-
- /* <textarea id="comment"> */
- var textarea = document.getElementById('comment');
- textarea.value += replytext;
-
- textarea.focus();
- }
-
- if (!Node) {
- /* MSIE doesn't define Node, so provide a compatibility array */
- var Node = {
- TEXT_NODE: 3,
- ENTITY_REFERENCE_NODE: 5
- };
- }
-
- /* Concatenates all text from element's childNodes. This is used
- * instead of innerHTML because we want the actual text (and
- * innerText is non-standard) */
- function getText(element) {
- var child, text = "";
- for (var i=0; i < element.childNodes.length; i++) {
- child = element.childNodes[i];
- var type = child.nodeType;
- if (type == Node.TEXT_NODE || type == Node.ENTITY_REFERENCE_NODE) {
- text += child.nodeValue;
- } else {
- /* recurse into nodes of other types */
- text += getText(child);
- }
- }
- return text;
- }
-
-
- //-->
- </script>
-
-<form name="changeform" method="post" action="process_bug.cgi">
-
- <input type="hidden" name="delta_ts" value="2006-02-21 16:34:29">
- <input type="hidden" name="longdesclength" value="2">
- <input type="hidden" name="id" value="7">
-
-
-
- <table>
-
- <tr>
- <td valign="top">
- <table cellspacing="1" cellpadding="1">
-
- <tr>
- <td align="right">
- <b>Bug#:</b>
- </td>
- <td>
- <a href="http://you-havent-visited-editparams.cgi-yet/show_bug.cgi?id=7">7</a>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>P</u>roduct:</b>
- </td><td>
- <label for="product" accesskey="p">
- <select name="product" id="product">
- <option value="TestProduct" selected>TestProduct
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describecomponents.cgi?product=TestProduct">
- Co<u>m</u>ponent</a>:
- </b>
- </td><td>
- <label for="component" accesskey="m">
- <select name="component" id="component">
- <option value="TestComponent" selected>TestComponent
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#status">Status</a>:
- </b>
- </td>
- <td>NEW</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#resolution">Resolution</a>:
- </b>
- </td>
- <td>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#assigned_to">Assigned&nbsp;To</a>:
- </b>
- </td>
- <td>Robert Elves &lt;relves&#64;cs.ubc.ca&gt;</td>
- </tr>
-
- </table>
-
- </td>
- <td valign="top">
-
- <table cellspacing="1" cellpadding="1">
-
- <tr>
- <td align="right">
- <b><u>H</u>ardware:</b>
- </td><td>
- <label for="rep_platform" accesskey="h">
- <select name="rep_platform" id="rep_platform">
- <option value="All">All
- </option>
- <option value="PC" selected>PC
- </option>
- <option value="Macintosh">Macintosh
- </option>
- <option value="Other">Other
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>O</u>S:</b>
- </td><td>
- <label for="op_sys" accesskey="o">
- <select name="op_sys" id="op_sys">
- <option value="All">All
- </option>
- <option value="Windows">Windows
- </option>
- <option value="Mac OS">Mac OS
- </option>
- <option value="Linux">Linux
- </option>
- <option value="Other" selected>Other
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>V</u>ersion:</b>
- </td><td>
- <label for="version" accesskey="v">
- <select name="version" id="version">
- <option value="other" selected>other
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b>
- </td><td>
- <label for="priority" accesskey="i">
- <select name="priority" id="priority">
- <option value="P1">P1
- </option>
- <option value="P2" selected>P2
- </option>
- <option value="P3">P3
- </option>
- <option value="P4">P4
- </option>
- <option value="P5">P5
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><a href="page.cgi?id=fields.html#bug_severity">S<u>e</u>verity</a>:</b>
- </td><td>
- <label for="bug_severity" accesskey="e">
- <select name="bug_severity" id="bug_severity">
- <option value="blocker">blocker
- </option>
- <option value="critical">critical
- </option>
- <option value="major">major
- </option>
- <option value="normal" selected>normal
- </option>
- <option value="minor">minor
- </option>
- <option value="trivial">trivial
- </option>
- <option value="enhancement">enhancement
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
-
- </table>
- </td>
-
- <td valign="top">
-
- <table cellpadding="1" cellspacing="1">
-
- <tr>
- <td align="right">
- <b>Reporter:</b>
- </td>
- <td>
- <a href="mailto:relves&#64;cs.ubc.ca">Robert Elves &lt;relves&#64;cs.ubc.ca&gt;</a>
- </td>
- </tr>
-
- <tr>
- <td align="right" valign="top">
- <b><u>A</u>dd&nbsp;CC:</b>
- </td>
- <td><input
- name="newcc"
- value="" accesskey="a" size="30"
->
- </td>
- </tr>
-
- <tr>
- <td align="right" valign="top">
- <b>CC:</b>
- </td>
- <td valign="top">
- <select name="cc" multiple="multiple" size="5">
- <option value="relves&#64;cs.ubc.ca">relves&#64;cs.ubc.ca</option>
- </select>
- <br>
- <input type="checkbox" name="removecc">Remove selected CCs
- <br>
- </td>
- </tr>
-
- </table>
-
- </td>
- </tr>
-
- <tr>
- <td colspan="2">
- <table cellspacing="1" cellpadding="1">
-
-
-
-
- <tr>
- <td align="right">
- <b>
- <u>U</u>RL:
- </b>
- </td>
- <td colspan="5">
- <input name="bug_file_loc" accesskey="u"
- value="" size="60">
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>S</u>ummary:</b>
- </td>
- <td colspan="5">
- <input name="short_desc" accesskey="s"
- value="summary" size="60">
- </td>
- </tr>
-
-
-
- </table>
- </td>
-
- <td valign="top">
- <table cellspacing="1" cellpadding="1">
- <tr>
- <td colspan="2" valign="top">
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-
-
-
-<br>
-<table cellspacing="0" cellpadding="4" border="1">
- <tr>
- <th bgcolor="#cccccc" align="left">Attachment</th>
- <th bgcolor="#cccccc" align="left">Type</th>
- <th bgcolor="#cccccc" align="left">Created</th>
- <th bgcolor="#cccccc" align="left">Size</th>
- <th bgcolor="#cccccc" align="left">Actions</th>
- </tr>
-
- <tr>
- <td colspan="4">
- <a href="attachment.cgi?bugid=7&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
- </td>
- <td class="bz_disabled">
- View All
- </td>
- </tr>
-</table>
-<br>
-
-
-
- <table>
- <tr><th align="right">Bug 7 <u>d</u>epends on:</th>
- <td>
- </td>
- <td>
- <input name="dependson" accesskey="d"
- value="">
- </td>
- <td rowspan="2">
- <a href="showdependencytree.cgi?id=7">Show
- dependency tree</a>
-
- <br>
- <a href="showdependencygraph.cgi?id=7">Show
- dependency graph</a>
- </td>
- </tr>
-
- <tr><th align="right">Bug 7 <u>b</u>locks:</th>
- <td>
- </td>
- <td>
- <input name="blocked" accesskey="b"
- value="">
- </td>
- </tr>
- </table>
-
-
-
-
- <br>
- <b>Additional <u>C</u>omments:</b>
- <br>
- <a name="add_comment"></a>
- <textarea name="comment" id="comment" rows="10" cols="80"
- accesskey="c"></textarea>
-
- <br>
- <label for="addselfcc">
- <input type="checkbox" id="addselfcc" name="addselfcc">
- Add to CC list
- </label>
- <br>
-
-<br>
- <input type="radio" id="knob-leave" name="knob" value="none" checked="checked">
- <label for="knob-leave">
- Leave as <b>NEW&nbsp;</b>
- </label>
- <br>
-
-
-
- <input type="radio" id="knob-accept" name="knob" value="accept">
- <label for="knob-accept">
- Accept bug (change
- status to <b>ASSIGNED</b>)
- </label>
- <br>
-
-
- <input type="radio" id="knob-resolve" name="knob" value="resolve">
- <label for="knob-resolve">
- Resolve bug, changing
- <a href="page.cgi?id=fields.html#resolution">resolution</a> to
- </label>
- <select name="resolution"
- onchange="document.changeform.knob[2].checked=true">
- <option value="FIXED">FIXED</option>
- <option value="INVALID">INVALID</option>
- <option value="WONTFIX">WONTFIX</option>
- <option value="LATER">LATER</option>
- <option value="REMIND">REMIND</option>
- <option value="WORKSFORME">WORKSFORME</option>
- </select>
- <br>
-
- <input type="radio" id="knob-duplicate" name="knob" value="duplicate">
- <label for="knob-duplicate">
- Resolve bug, mark it as duplicate of bug #
- </label>
- <input name="dup_id" size="6"
- onchange="if (this.value != '')
- {document.changeform.knob[3].checked=true}">
- <br>
-
- <input type="radio" id="knob-reassign" name="knob" value="reassign">
- <label for="knob-reassign">
- <a href="page.cgi?id=fields.html#assigned_to">Reassign</a> bug to
- </label><input
- name="assigned_to"
- value="relves&#64;cs.ubc.ca" onchange="if ((this.value != 'relves\x40cs.ubc.ca') &amp;&amp; (this.value != '')) {
- document.changeform.knob[4].checked=true;
- }" accesskey="b" size="32"
->
- <br>
-
- <input type="radio" id="knob-reassign-cmp" name="knob" value="reassignbycomponent">
- <label for="knob-reassign-cmp">
- Reassign bug to default assignee
- of selected component
- </label>
- <br>
-
- <input type="submit" value="Commit">
- <input type="hidden" name="form_name" value="process_bug">
- <p>
- <font size="+1">
- <b>
- <a href="show_activity.cgi?id=7">View Bug Activity</a>
- &nbsp; | &nbsp;
- <a href="show_bug.cgi?format=multiple&amp;id=7">Format For Printing</a>
- &nbsp; | &nbsp;
- <a href="enter_bug.cgi?cloned_bug_id=7">Clone This Bug</a>
-
-
- </b>
- </font>
-
- </p>
-
-
-
-<hr>
-<div >
- <table>
- <tr>
- <td align="left">
- <b><a name="c0" href="#c0">Description</a>:</b>&nbsp;&nbsp;<script
- type="text/javascript"><!--
- addReplyLink(0);
- //--></script>
- </td>
- <td align="left" width="30%">
- <b>Opened:</b> 2006-02-13 17:02
- </td>
- </tr>
- </table>
-
-
-
-<pre id="comment_text_0">test summary
-</pre>
- </div>
- <div >
- <br>
- <span class="bz_comment">
- ------- <i>Comment
- <a name="c1" href="#c1">#1</a> From
- <a href="mailto:relves&#64;cs.ubc.ca">Robert Elves</a>
- 2006-02-21 16:34
- </i>
- <script type="text/javascript"><!--
- addReplyLink(1); //--></script>
- -------
- </span>
-
-
-
-<pre id="comment_text_1">out
-</pre>
- </div>
-
-</form>
-
-<hr>
-<i><font color="#777777">First</font></i>
- <i><font color="#777777">Last</font></i>
- <i><font color="#777777">Prev</font></i>
- <i><font color="#777777">Next</font></i>
- &nbsp;&nbsp;
- <i><font color="#777777">No search results available</font></i>
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<br>
-<div id="footer">
- <div class="intro"></div>
-
-
-
-
-<form method="get" action="show_bug.cgi">
-<div id="useful-links">
- <div id="links-actions">
- <div class="label">Actions:</div>
- <div class="links">
- <a href="./">Home</a> |
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Search</a> |
- bug # <input class="txt" name="id" size="6">
- <input class="btn" type="submit" value="Find"> |
-
- <a href="report.cgi">Reports</a>
-
- | <a href="request.cgi">Requests</a>
-
-
- | <a href="createaccount.cgi">New&nbsp;Account</a>
- | <a href="index.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </div>
- </div>
-
-
-
-
-
- <div id="links-saved">
- <div class="label">
- </div>
- <div class="links">
-
- </div>
- </div>
-
-
-</div>
-</form>
-
- <div class="outro"></div>
-</div>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-2201.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-2201.html
deleted file mode 100644
index f93d6a5c8..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-2201.html
+++ /dev/null
@@ -1,859 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>Bug 125527 - bugzilla refresh incorrect for new reports and newly opened hits</title>
-
-
-
-
-
-
- <script type="text/javascript">
- <!--
-
- function initHelp() {}
- // -->
- </script>
-
- <link href="skins/standard/global.css" rel="stylesheet" type="text/css">
- <link href="skins/custom/global.css" rel="stylesheet" type="text/css">
-
-
-
-
-
- </head>
-
-
-
- <body onload=""
- class="bugs-eclipse-org-bugs bz_bug bz_status_RESOLVED bz_component_Bugzilla bz_bug_125527">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr style="background-image: url(/bugs/header_bg.gif);">
- <td>
- <a href="http://www.eclipse.org/"><img src="/bugs/header_logo.gif" width="164" height="68" border="0" /></a>
- </td>
- <td align="right" style="color: white; font-family: verdana,arial,helvetica; font-size: 1.25em; font-style: italic;"><b>Eclipse bugs</b></font> <br /><font style="font-size: .5em;">Bugzilla 2.20.1 &#160;</font></td>
- </tr>
-</table>
-
-<div id="header">
- <h1>Bugzilla Bug 125527</h1>
-
- <h2>bugzilla refresh incorrect for new reports and newly opened hits</h2>
-
- <h3>Last modified: 2006-01-27 21:30:34</h3>
-</div>
-<i><font color="#777777">First</font></i>
- <i><font color="#777777">Last</font></i>
- <i><font color="#777777">Prev</font></i>
- <i><font color="#777777">Next</font></i>
- &nbsp;&nbsp;
- <i><font color="#777777">No search results available</font></i>
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<hr>
-<script type="text/javascript">
- <!--
-
- /* Outputs a link to call replyToComment(); used to reduce HTML output */
- function addReplyLink(id) {
- /* XXX this should really be updated to use the DOM Core's
- * createElement, but finding a container isn't trivial.
- */
- document.write('[<a href="#add_comment" onclick="replyToComment(' +
- id + ');">reply<' + '/a>]');
- }
-
- /* Adds the reply text to the `comment' textarea */
- function replyToComment(id) {
- /* pre id="comment_name_N" */
- var text_elem = document.getElementById('comment_text_'+id);
- var text = getText(text_elem);
-
- /* make sure we split on all newlines -- IE or Moz use \r and \n
- * respectively.
- */
- text = text.split(/\r|\n/);
-
- var replytext = "";
- for (var i=0; i < text.length; i++) {
- replytext += "> " + text[i] + "\n";
- }
-
- replytext = "(In reply to comment #" + id + ")\n" + replytext + "\n";
-
-
- /* <textarea id="comment"> */
- var textarea = document.getElementById('comment');
- textarea.value += replytext;
-
- textarea.focus();
- }
-
- if (typeof Node == 'undefined') {
- /* MSIE doesn't define Node, so provide a compatibility object */
- window.Node = {
- TEXT_NODE: 3,
- ENTITY_REFERENCE_NODE: 5
- };
- }
-
- /* Concatenates all text from element's childNodes. This is used
- * instead of innerHTML because we want the actual text (and
- * innerText is non-standard).
- */
- function getText(element) {
- var child, text = "";
- for (var i=0; i < element.childNodes.length; i++) {
- child = element.childNodes[i];
- var type = child.nodeType;
- if (type == Node.TEXT_NODE || type == Node.ENTITY_REFERENCE_NODE) {
- text += child.nodeValue;
- } else {
- /* recurse into nodes of other types */
- text += getText(child);
- }
- }
- return text;
- }
-
-
- //-->
- </script>
-
-<form name="changeform" method="post" action="process_bug.cgi">
-
- <input type="hidden" name="delta_ts" value="2006-01-27 21:30:34">
- <input type="hidden" name="longdesclength" value="2">
- <input type="hidden" name="id" value="125527">
-
-
-
- <table>
-
- <tr>
- <td valign="top">
- <table cellspacing="1" cellpadding="1">
-
- <tr>
- <td align="right">
- <b>[Technology]</b>
- <b>Bug#:</b>
- </td>
- <td>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125527">125527</a>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>P</u>roduct:</b>
- </td><td>
- <label for="product" accesskey="p">
- <select name="product" id="product">
- <option value="AJDT">AJDT
- </option>
- <option value="ALF">ALF
- </option>
- <option value="AspectJ">AspectJ
- </option>
- <option value="BIRT">BIRT
- </option>
- <option value="BPEL">BPEL
- </option>
- <option value="Buckminster">Buckminster
- </option>
- <option value="CDT">CDT
- </option>
- <option value="Community">Community
- </option>
- <option value="Dali">Dali
- </option>
- <option value="Dash">Dash
- </option>
- <option value="Data Tools">Data Tools
- </option>
- <option value="DSDP">DSDP
- </option>
- <option value="ECF">ECF
- </option>
- <option value="EMF">EMF
- </option>
- <option value="EMFT">EMFT
- </option>
- <option value="EPF">EPF
- </option>
- <option value="Equinox">Equinox
- </option>
- <option value="ERCP">ERCP
- </option>
- <option value="GEF">GEF
- </option>
- <option value="GMF">GMF
- </option>
- <option value="GMT">GMT
- </option>
- <option value="Higgins">Higgins
- </option>
- <option value="Hyades">Hyades
- </option>
- <option value="Java Server Faces">Java Server Faces
- </option>
- <option value="JDT">JDT
- </option>
- <option value="JSR220-ORM">JSR220-ORM
- </option>
- <option value="Laszlo">Laszlo
- </option>
- <option value="Lepido">Lepido
- </option>
- <option value="MDDi">MDDi
- </option>
- <option value="MTJ">MTJ
- </option>
- <option value="Mylar" selected>Mylar
- </option>
- <option value="OHF">OHF
- </option>
- <option value="PDE">PDE
- </option>
- <option value="Phoenix">Phoenix
- </option>
- <option value="Photran">Photran
- </option>
- <option value="Platform">Platform
- </option>
- <option value="PTP">PTP
- </option>
- <option value="SOA">SOA
- </option>
- <option value="Target Management">Target Management
- </option>
- <option value="TPTP">TPTP
- </option>
- <option value="UML2">UML2
- </option>
- <option value="VE">VE
- </option>
- <option value="VTP">VTP
- </option>
- <option value="Web Tools">Web Tools
- </option>
- <option value="XSD">XSD
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describecomponents.cgi?product=Mylar">
- Co<u>m</u>ponent</a>:
- </b>
- </td><td>
- <label for="component" accesskey="m">
- <select name="component" id="component">
- <option value="Bugzilla" selected>Bugzilla
- </option>
- <option value="Core">Core
- </option>
- <option value="Doc">Doc
- </option>
- <option value="Java">Java
- </option>
- <option value="Jira">Jira
- </option>
- <option value="Monitor">Monitor
- </option>
- <option value="Tasks">Tasks
- </option>
- <option value="UI">UI
- </option>
- <option value="XML">XML
- </option>
- <option value="Zest">Zest
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#status">Status</a>:
- </b>
- </td>
- <td>RESOLVED</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#resolution">Resolution</a>:
- </b>
- </td>
- <td>FIXED
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#assigned_to">Assigned&nbsp;To</a>:
- </b>
- </td>
- <td>Robert Elves &lt;relves&#64;cs.ubc.ca&gt;</td>
- </tr>
-
- </table>
-
- </td>
- <td valign="top">
-
- <table cellspacing="1" cellpadding="1">
-
- <tr>
- <td align="right">
- <b><u>H</u>ardware:</b>
- </td><td>
- <label for="rep_platform" accesskey="h">
- <select name="rep_platform" id="rep_platform">
- <option value="All">All
- </option>
- <option value="Macintosh">Macintosh
- </option>
- <option value="Other">Other
- </option>
- <option value="PC" selected>PC
- </option>
- <option value="Power PC">Power PC
- </option>
- <option value="Sun">Sun
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>O</u>S:</b>
- </td><td>
- <label for="op_sys" accesskey="o">
- <select name="op_sys" id="op_sys">
- <option value="All">All
- </option>
- <option value="AIX Motif">AIX Motif
- </option>
- <option value="HP-UX">HP-UX
- </option>
- <option value="Linux">Linux
- </option>
- <option value="Linux-GTK">Linux-GTK
- </option>
- <option value="Linux-Motif">Linux-Motif
- </option>
- <option value="Mac OS">Mac OS
- </option>
- <option value="MacOS X">MacOS X
- </option>
- <option value="Neutrino">Neutrino
- </option>
- <option value="other">other
- </option>
- <option value="QNX-Photon">QNX-Photon
- </option>
- <option value="Solaris">Solaris
- </option>
- <option value="Solaris-GTK">Solaris-GTK
- </option>
- <option value="Solaris-Motif">Solaris-Motif
- </option>
- <option value="SymbianOS-Series 80">SymbianOS-Series 80
- </option>
- <option value="Unix All">Unix All
- </option>
- <option value="Windows All" selected>Windows All
- </option>
- <option value="Windows 95">Windows 95
- </option>
- <option value="Windows 98">Windows 98
- </option>
- <option value="Windows 2000">Windows 2000
- </option>
- <option value="Windows 2003 Server">Windows 2003 Server
- </option>
- <option value="Windows CE">Windows CE
- </option>
- <option value="Windows ME">Windows ME
- </option>
- <option value="Windows Mobile 2003">Windows Mobile 2003
- </option>
- <option value="Windows NT">Windows NT
- </option>
- <option value="Windows XP">Windows XP
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Version:</b>
- </td><td>
- <label for="version" accesskey="o">
- <select name="version" id="version">
- <option value="0.2">0.2
- </option>
- <option value="0.3">0.3
- </option>
- <option value="0.4">0.4
- </option>
- <option value="unspecified" selected>unspecified
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b>
- </td><td>
- <label for="priority" accesskey="i">
- <select name="priority" id="priority">
- <option value="P1" selected>P1
- </option>
- <option value="P2">P2
- </option>
- <option value="P3">P3
- </option>
- <option value="P4">P4
- </option>
- <option value="P5">P5
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b><a href="page.cgi?id=fields.html#bug_severity">Severity</a>:</b>
- </td><td>
- <label for="bug_severity" accesskey="i">
- <select name="bug_severity" id="bug_severity">
- <option value="blocker">blocker
- </option>
- <option value="critical">critical
- </option>
- <option value="major">major
- </option>
- <option value="normal" selected>normal
- </option>
- <option value="minor">minor
- </option>
- <option value="trivial">trivial
- </option>
- <option value="enhancement">enhancement
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- Target Milestone:
- </b>
- </td><td>
- <label for="target_milestone" accesskey="i">
- <select name="target_milestone" id="target_milestone">
- <option value="---" selected>---
- </option>
- <option value="0.5">0.5
- </option>
- <option value="0.6">0.6
- </option>
- </select>
- </label>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- </table>
- </td>
-
- <td valign="top">
-
- <table cellpadding="1" cellspacing="1">
-
- <tr>
- <td align="right">
- <b>Reporter:</b>
- </td>
- <td>
- <a href="mailto:beatmik&#64;acm.org">Mik Kersten &lt;beatmik&#64;acm.org&gt;</a>
- </td>
- </tr>
-
- <tr>
- <td align="right" valign="top">
- <b><u>A</u>dd&nbsp;CC:</b>
- </td>
- <td><input
- name="newcc"
- value="" accesskey="a" size="30"
->
- </td>
- </tr>
-
- <tr>
- <td align="right" valign="top">
- <b>CC:</b>
- </td>
- <td valign="top">
- <select name="cc" multiple="multiple" size="5">
- <option value="beatmik&#64;acm.org">beatmik&#64;acm.org</option>
- </select>
- <br>
- <input type="checkbox" name="removecc">Remove selected CCs
- <br>
- </td>
- </tr>
-
- </table>
-
- </td>
- </tr>
-
- <tr>
- <td colspan="2">
- <table cellspacing="1" cellpadding="1">
-
-
-
- <tr>
- <td align="right">
- <b><u>Q</u>A Contact:</b>
- </td>
- <td colspan="7"><input
- name="qa_contact"
- value="" accesskey="q" size="60"
->
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <u>U</u>RL:
- </b>
- </td>
- <td colspan="5">
- <input name="bug_file_loc" accesskey="u"
- value="" size="60">
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>S</u>ummary:</b>
- </td>
- <td colspan="5">
- <input name="short_desc" accesskey="s"
- value="bugzilla refresh incorrect for new reports and newly opened hits" size="60">
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Status <u>W</u>hiteboard:</b>
- </td>
- <td colspan="5">
- <input name="status_whiteboard" accesskey="w"
- value="" size="60">
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="describekeywords.cgi"><u>K</u>eywords</a>:
- </b>
- <td colspan="5">
- <input name="keywords" accesskey="k"
- value="" size="60">
- </td>
- </tr>
-
- </table>
- </td>
-
- <td valign="top">
- <table cellspacing="1" cellpadding="1">
- <tr>
- <td colspan="2" valign="top">
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-
-
-
-<br>
-<table cellspacing="0" cellpadding="4" border="1">
- <tr>
- <th bgcolor="#cccccc" align="left">Attachment</th>
- <th bgcolor="#cccccc" align="left">Type</th>
- <th bgcolor="#cccccc" align="left">Created</th>
- <th bgcolor="#cccccc" align="left">Size</th>
- <th bgcolor="#cccccc" align="left">Actions</th>
- </tr>
-
- <tr>
- <td colspan="4">
- <a href="attachment.cgi?bugid=125527&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
- </td>
- <td class="bz_disabled">
- View All
- </td>
- </tr>
-</table>
-<br>
-
-
-
- <table>
- <tr><th align="right">Bug 125527 depends on:</th>
- <td>
- </td>
- <td>
- <input name="dependson" accesskey="i"
- value="">
- </td>
- <td rowspan="2">
- <a href="showdependencytree.cgi?id=125527">Show
- dependency tree</a>
-
- </td>
- </tr>
-
- <tr><th align="right">Bug 125527 <u>b</u>locks:</th>
- <td>
- </td>
- <td>
- <input name="blocked" accesskey="b"
- value="">
- </td>
- </tr>
- </table>
-
- <table>
- <tr>
- <th>
- <a href="page.cgi?id=voting.html">Votes</a>:
- </th>
- <td>0&nbsp;&nbsp;&nbsp;
- <a href="votes.cgi?action=show_bug&amp;bug_id=125527">Show
- votes for this bug</a>&nbsp;&nbsp;&nbsp;
- <a href="votes.cgi?action=show_user&amp;bug_id=125527#vote_125527">Vote
- for this bug</a>
- </td>
- </tr>
- </table>
-
-
-
- <br>
- <b>Additional <u>C</u>omments:</b>
- <br>
- <a name="add_comment"></a>
- <textarea name="comment" id="comment" rows="10" cols="80"
- accesskey="c"></textarea>
-
- <br>
- <label for="addselfcc">
- <input type="checkbox" id="addselfcc" name="addselfcc">
- Add to CC list
- </label>
- <br>
-
-<br>
- <input type="radio" id="knob-leave" name="knob" value="none" checked="checked">
- <label for="knob-leave">
- Leave as <b>RESOLVED&nbsp;FIXED</b>
- </label>
- <br>
-
-
-
-
- <input type="radio" id="knob-reopen" name="knob" value="reopen">
- <label for="knob-reopen">
- Reopen bug
- </label>
- <br>
- <input type="radio" id="knob-verify" name="knob" value="verify">
- <label for="knob-verify">
- Mark bug as <b>VERIFIED</b>
- </label>
- <br>
- <input type="radio" id="knob-close" name="knob" value="close">
- <label for="knob-close">
- Mark bug as <b>CLOSED</b>
- </label>
- <br>
-
- <input type="submit" value="Commit">
- <input type="hidden" name="form_name" value="process_bug">
- <p>
- <font size="+1">
- <b>
- <a href="show_activity.cgi?id=125527">View Bug Activity</a>
- &nbsp; | &nbsp;
- <a href="show_bug.cgi?format=multiple&amp;id=125527">Format For Printing</a>
- &nbsp; | &nbsp;
- <a href="enter_bug.cgi?cloned_bug_id=125527">Clone This Bug</a>
-
-
- </b>
- </font>
-
- </p>
-
-
-
-<hr>
-<div >
- <table>
- <tr>
- <td align="left">
- <b><a name="c0" href="show_bug.cgi?id=125527#c0">
- Description</a>:</b>&nbsp;&nbsp;<script type="text/javascript"><!--
- addReplyLink(0);
- //--></script>
- </td>
- <td align="left" width="30%">
- <b>Opened:</b> 2006-01-27 13:36
- </td>
- </tr>
- </table>
-
-
-
-<pre id="comment_text_0">After bug report is added, description is always blank, and it's opened in
-wrong editor (ExistingBugEditor, not MylarTaskEditor).
-
-After hit is opened and becomes a task, task stays italic.
-</pre>
- </div>
- <div >
- <br>
- <span class="bz_comment">
- ------- <i>Comment
- <a name="c1" href="show_bug.cgi?id=125527#c1">
- #1</a> From
- <a href="mailto:beatmik&#64;acm.org">Mik Kersten</a>
- 2006-01-27 21:30
- </i>
- <script type="text/javascript"><!--
- addReplyLink(1); //--></script>
- -------
- </span>
-
-
-
-<pre id="comment_text_1">Done.
-</pre>
- </div>
-
-</form>
-
-<hr>
-<i><font color="#777777">First</font></i>
- <i><font color="#777777">Last</font></i>
- <i><font color="#777777">Prev</font></i>
- <i><font color="#777777">Next</font></i>
- &nbsp;&nbsp;
- <i><font color="#777777">No search results available</font></i>
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<br>
-<div id="footer">
- <div class="intro"></div>
-
-
-
-
-<form method="get" action="show_bug.cgi">
-<div id="useful-links">
- <div id="links-actions">
- <div class="label">Actions:</div>
- <div class="links">
- <a href="./">Home</a> |
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Search</a> |
- bug # <input class="txt" name="id" size="6">
- <input class="btn" type="submit" value="Find"> |
-
- <a href="report.cgi">Reports</a>
-
- | <a href="request.cgi">Requests</a>
-
-
- | <a href="createaccount.cgi">New&nbsp;Account</a>
- | <a href="index.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </div>
- </div>
-
-
-
-
-
- <div id="links-saved">
- <div class="label">
- </div>
- <div class="links">
-
- </div>
- </div>
-
-
-</div>
-</form>
-
- <div class="outro"></div>
-</div>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-222attachment.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-222attachment.html
deleted file mode 100644
index 6248ce40d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/test-report-222attachment.html
+++ /dev/null
@@ -1,859 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>Bug 4 - Another Test</title>
-
-
-<link rel="Top" href="http://mylar.eclipse.org/bugs222/">
-
-
- <link rel="Up" href="buglist.cgi?regetlastlist=1">
-
- <link rel="First" href="show_bug.cgi?id=1">
- <link rel="Last" href="show_bug.cgi?id=4">
-
-
-
- <link rel="Prev" href="show_bug.cgi?id=3">
-
-
-
-
-
- <link rel="Show" title="Dependency Tree"
- href="showdependencytree.cgi?id=4">
- <link rel="Show" title="Dependency Graph"
- href="showdependencygraph.cgi?id=4">
-
-
- <link rel="Show" title="Bug Activity"
- href="show_activity.cgi?id=4">
-
- <link rel="Show" title="Printer-Friendly Version"
- href="show_bug.cgi?format=multiple&amp;id=4">
-
-
-
- <link rel="Saved&nbsp;Searches" title="My Bugs"
- href="buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=relves%40cs.ubc.ca&amp;field0-0-0=bug_status&amp;type0-0-0=notequals&amp;value0-0-0=UNCONFIRMED&amp;field0-0-1=reporter&amp;type0-0-1=equals&amp;value0-0-1=relves%40cs.ubc.ca">
-
-
- <link rel="Administration" title="Parameters"
- href="editparams.cgi"><link rel="Administration" title="Users"
- href="editusers.cgi"><link rel="Administration" title="Products"
- href="editproducts.cgi"><link rel="Administration" title="Flag Types"
- href="editflagtypes.cgi"><link rel="Administration" title="Groups"
- href="editgroups.cgi"><link rel="Administration" title="Keywords"
- href="editkeywords.cgi"><link rel="Administration" title="Whining"
- href="editwhines.cgi"><link rel="Administration" title="Sanity Check"
- href="sanitycheck.cgi">
-
-
-
- <script type="text/javascript">
- <!--
-
- function initHelp() {}
- // -->
- </script>
-
- <link href="skins/standard/global.css" rel="stylesheet" type="text/css">
-
- <link href="skins/custom/global.css" rel="stylesheet" type="text/css">
-
-
-
-
-
- </head>
-
-
-
- <body onload=""
- class="mylar-eclipse-org-bugs222 bz_bug bz_status_NEW bz_component_TestComponent bz_bug_4">
-
-
-<div id="banner">
- <div class="intro"></div>
-
- <p id="banner-name">
- <span>This is Bugzilla</span>
- </p>
- <p id="banner-version">
- <a href="http://www.bugzilla.org/"><span>Bugzilla</span></a>
- <span>Version 2.22rc1</span>
- </p>
-
- <div class="outro"></div>
- </div>
-
-<div id="header">
- <h1>Bugzilla Bug 4</h1>
-
- <h2>Another Test</h2>
-
- <h3>Last modified: 2006-03-10 14:11:48</h3>
-
-</div>
-
-<b>Bug List:</b>
- (4 of 4)
-
- <a href="show_bug.cgi?id=1">First</a>
- <a href="show_bug.cgi?id=4">Last</a>
-
- <a href="show_bug.cgi?id=3">Prev</a>
-
- <i><font color="#777777">Next</font></i>
-
- &nbsp;&nbsp;<a href="buglist.cgi?regetlastlist=1">Show last search results</a>
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<hr>
-<script type="text/javascript">
- <!--
-
- /* Outputs a link to call replyToComment(); used to reduce HTML output */
- function addReplyLink(id) {
- /* XXX this should really be updated to use the DOM Core's
- * createElement, but finding a container isn't trivial.
- */
- document.write('[<a href="#add_comment" onclick="replyToComment(' +
- id + ');">reply<' + '/a>]');
- }
-
- /* Adds the reply text to the `comment' textarea */
- function replyToComment(id) {
- /* pre id="comment_name_N" */
- var text_elem = document.getElementById('comment_text_'+id);
- var text = getText(text_elem);
-
- /* make sure we split on all newlines -- IE or Moz use \r and \n
- * respectively.
- */
- text = text.split(/\r|\n/);
-
- var replytext = "";
- for (var i=0; i < text.length; i++) {
- replytext += "> " + text[i] + "\n";
- }
-
- replytext = "(In reply to comment #" + id + ")\n" + replytext + "\n";
-
-
- /* <textarea id="comment"> */
- var textarea = document.getElementById('comment');
- textarea.value += replytext;
-
- textarea.focus();
- }
-
- if (typeof Node == 'undefined') {
- /* MSIE doesn't define Node, so provide a compatibility object */
- window.Node = {
- TEXT_NODE: 3,
- ENTITY_REFERENCE_NODE: 5
- };
- }
-
- /* Concatenates all text from element's childNodes. This is used
- * instead of innerHTML because we want the actual text (and
- * innerText is non-standard).
- */
- function getText(element) {
- var child, text = "";
- for (var i=0; i < element.childNodes.length; i++) {
- child = element.childNodes[i];
- var type = child.nodeType;
- if (type == Node.TEXT_NODE || type == Node.ENTITY_REFERENCE_NODE) {
- text += child.nodeValue;
- } else {
- /* recurse into nodes of other types */
- text += getText(child);
- }
- }
- return text;
- }
-
-
- function updateCommentTagControl(checkbox, form) {
- if (checkbox.checked) {
- form.comment.className='bz_private';
- } else {
- form.comment.className='';
- }
- }
-
- //-->
- </script>
-
-<form name="changeform" method="post" action="process_bug.cgi">
-
- <input type="hidden" name="delta_ts" value="2006-03-10 14:11:48">
-
- <input type="hidden" name="longdesclength" value="2">
- <input type="hidden" name="id" value="4">
-
-
-
- <table>
-
- <tr>
- <td valign="top">
- <table cellspacing="1" cellpadding="1">
- <tr>
-
- <td align="right">
- <b>Bug#:</b>
- </td>
- <td>
- <a href="http://mylar.eclipse.org/bugs222/show_bug.cgi?id=4">4</a>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b><u>P</u>roduct:</b>
- </td><td>
- <label for="product" accesskey="p">
- <select name="product" id="product">
- <option value="TestProduct" selected>TestProduct
- </option>
-
- </select>
- </label>
- </td>
- </tr>
-
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describecomponents.cgi?product=TestProduct">
-
- Co<u>m</u>ponent</a>:
- </b>
- </td><td>
- <label for="component" accesskey="m">
- <select name="component" id="component">
- <option value="TestComponent" selected>TestComponent
- </option>
- </select>
-
- </label>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#status">Status</a>:
- </b>
-
- </td>
- <td>NEW</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#resolution">Resolution</a>:
- </b>
-
- </td>
- <td>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="page.cgi?id=fields.html#assigned_to">Assigned&nbsp;To</a>:
- </b>
-
- </td>
- <td>Robert Elves &lt;relves&#64;cs.ubc.ca&gt;</td>
- </tr>
-
- </table>
-
- </td>
- <td valign="top">
-
- <table cellspacing="1" cellpadding="1">
-
- <tr>
- <td align="right">
- <b><u>H</u>ardware:</b>
- </td><td>
- <label for="rep_platform" accesskey="h">
- <select name="rep_platform" id="rep_platform">
-
- <option value="All">All
- </option>
- <option value="PC" selected>PC
- </option>
- <option value="Macintosh">Macintosh
- </option>
- <option value="Other">Other
- </option>
- </select>
- </label>
- </td>
-
- </tr>
-
- <tr>
- <td align="right">
- <b><u>O</u>S:</b>
- </td><td>
- <label for="op_sys" accesskey="o">
- <select name="op_sys" id="op_sys">
-
- <option value="All">All
- </option>
- <option value="Windows">Windows
- </option>
- <option value="Mac OS">Mac OS
- </option>
- <option value="Linux">Linux
- </option>
- <option value="Other" selected>Other
- </option>
- </select>
-
- </label>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Version:</b>
- </td><td>
- <label for="version" accesskey="o">
-
- <select name="version" id="version">
- <option value="other" selected>other
- </option>
- </select>
- </label>
- </td>
- </tr>
-
- <tr>
- <td align="right">
-
- <b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b>
- </td><td>
- <label for="priority" accesskey="i">
- <select name="priority" id="priority">
- <option value="P1">P1
- </option>
- <option value="P2">P2
- </option>
-
- <option value="P3" selected>P3
- </option>
- <option value="P4">P4
- </option>
- <option value="P5">P5
- </option>
- </select>
- </label>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b><a href="page.cgi?id=fields.html#bug_severity">Severity</a>:</b>
- </td><td>
- <label for="bug_severity" accesskey="i">
- <select name="bug_severity" id="bug_severity">
- <option value="blocker">blocker
- </option>
-
- <option value="critical">critical
- </option>
- <option value="major">major
- </option>
- <option value="normal" selected>normal
- </option>
- <option value="minor">minor
- </option>
- <option value="trivial">trivial
- </option>
- <option value="enhancement">enhancement
- </option>
-
- </select>
- </label>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- Target Milestone:
- </b>
-
- </td><td>
- <label for="target_milestone" accesskey="i">
- <select name="target_milestone" id="target_milestone">
- <option value="---" selected>---
- </option>
- </select>
- </label>
- </td>
- </tr>
-
- </table>
- </td>
-
- <td valign="top">
-
- <table cellpadding="1" cellspacing="1">
-
- <tr>
- <td align="right">
- <b>Reporter:</b>
-
- </td>
- <td>
- <a href="mailto:relves&#64;cs.ubc.ca">Robert Elves &lt;relves&#64;cs.ubc.ca&gt;</a>
- </td>
- </tr>
-
- <tr>
- <td align="right" valign="top">
-
- <b><u>A</u>dd&nbsp;CC:</b>
- </td>
- <td><input
- name="newcc"
- value="" accesskey="a" size="30"
->
- </td>
- </tr>
-
- <tr>
- <td align="right" valign="top">
-
- <b>CC:</b>
- </td>
- <td valign="top">
- <input type="hidden" name="cc" value="">
- </td>
- </tr>
-
- </table>
-
- </td>
- </tr>
-
- <tr>
- <td colspan="2">
- <table cellspacing="1" cellpadding="1">
-
-
-
-
- <tr>
- <td align="right">
- <b>
-
- <u>U</u>RL:
- </b>
- </td>
- <td colspan="5">
- <input name="bug_file_loc" accesskey="u"
- value="" size="60">
- </td>
- </tr>
-
- <tr>
-
- <td align="right">
- <b><u>S</u>ummary:</b>
- </td>
- <td colspan="5">
- <input name="short_desc" accesskey="s"
- value="Another Test" size="60">
- </td>
- </tr>
-
-
- </table>
- </td>
-
- <td valign="top">
- <table cellspacing="1" cellpadding="1">
- <tr>
- <td colspan="2" valign="top">
- </td>
-
- </tr>
- </table>
- </td>
- </tr>
- </table>
-
-
-
-<br>
-<table cellspacing="0" cellpadding="4" border="1">
- <tr>
-
- <th bgcolor="#cccccc" align="left">Attachment</th>
- <th bgcolor="#cccccc" align="left">Type</th>
- <th bgcolor="#cccccc" align="left">Creator</th>
- <th bgcolor="#cccccc" align="left">Created</th>
- <th bgcolor="#cccccc" align="left">Size</th>
- <th bgcolor="#cccccc" align="left">Actions</th>
-
- </tr>
- <tr >
- <td valign="top">
- <a href="attachment.cgi?id=1">Testing upload</a>
- </td>
-
- <td valign="top">text/plain
- </td>
-
- <td valign="top">
-
- <a href="mailto:relves&#64;cs.ubc.ca">Robert Elves
- </a>
- </td>
- <td valign="top">2006-03-10 14:11</td>
- <td valign="top">6.87 KB</td>
-
-
- <td valign="top">
- <a href="attachment.cgi?id=1&amp;action=edit">Edit</a>
-
- </td>
- </tr>
-
- <tr>
- <td colspan="5">
- <a href="attachment.cgi?bugid=4&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
- </td>
- <td>
- <a href="attachment.cgi?bugid=4&amp;action=viewall">View All</a>
-
- </td>
- </tr>
-</table>
-<br>
-
-
-
- <table>
- <tr><th align="right">Bug 4 depends on:</th>
- <td>
- </td>
-
- <td>
- <input name="dependson" accesskey="i"
- value="">
- </td>
- <td rowspan="2">
- <a href="showdependencytree.cgi?id=4">Show
- dependency tree</a>
-
- <br>
- <a href="showdependencygraph.cgi?id=4">Show
- dependency graph</a>
-
- </td>
- </tr>
-
- <tr><th align="right">Bug 4 <u>b</u>locks:</th>
- <td>
- </td>
- <td>
- <input name="blocked" accesskey="b"
- value="">
-
- </td>
- </tr>
- </table>
-
-
-
-
- <br>
- <b>Additional <u>C</u>omments:</b>
-
- <br>
- <a name="add_comment"></a>
- <textarea name="comment" id="comment" rows="10" cols="80"
- accesskey="c"></textarea>
-
- <br>
- <label for="addselfcc">
- <input type="checkbox" id="addselfcc" name="addselfcc">
- Add relves&#64;cs.ubc.ca to CC list
- </label>
-
- <br>
-
-<br>
- <input type="radio" id="knob-leave" name="knob" value="none" checked="checked">
- <label for="knob-leave">
- Leave as <b>NEW&nbsp;</b>
- </label>
- <br>
-
-
- <input type="radio" id="knob-accept" name="knob" value="accept">
- <label for="knob-accept">
- Accept bug (change
- status to <b>ASSIGNED</b>)
- </label>
- <br>
-
-
- <input type="radio" id="knob-resolve" name="knob" value="resolve">
-
- <label for="knob-resolve">
- Resolve bug, changing
- <a href="page.cgi?id=fields.html#resolution">resolution</a> to
- </label>
- <select name="resolution"
- onchange="document.changeform.knob[2].checked=true">
- <option value="FIXED">FIXED</option>
- <option value="INVALID">INVALID</option>
- <option value="WONTFIX">WONTFIX</option>
-
- <option value="LATER">LATER</option>
- <option value="REMIND">REMIND</option>
- <option value="WORKSFORME">WORKSFORME</option>
- </select>
- <br>
-
- <input type="radio" id="knob-duplicate" name="knob" value="duplicate">
- <label for="knob-duplicate">
-
- Resolve bug, mark it as duplicate of bug #
- </label>
- <input name="dup_id" size="6"
- onchange="if (this.value != '')
- {document.changeform.knob[3].checked=true}">
- <br>
-
- <input type="radio" id="knob-reassign" name="knob" value="reassign">
- <label for="knob-reassign">
- <a href="page.cgi?id=fields.html#assigned_to">Reassign</a> bug to
- </label><input
- name="assigned_to"
- value="relves&#64;cs.ubc.ca" onchange="if ((this.value != 'relves\x40cs.ubc.ca') &amp;&amp; (this.value != '')) {
- document.changeform.knob[4].checked=true;
- }" accesskey="b" size="32"
->
-
- <br>
-
- <input type="radio" id="knob-reassign-cmp" name="knob" value="reassignbycomponent">
- <label for="knob-reassign-cmp">
- Reassign bug to default assignee
- of selected component
- </label>
- <br>
-
- <input type="submit" value="Commit">
- <input type="hidden" name="form_name" value="process_bug">
-
- <p>
- <font size="+1">
- <b>
- <a href="show_activity.cgi?id=4">View Bug Activity</a>
- &nbsp; | &nbsp;
- <a href="show_bug.cgi?format=multiple&amp;id=4">Format For Printing</a>
- &nbsp; | &nbsp;
-
- <a href="show_bug.cgi?ctype=xml&amp;id=4">XML</a>
- &nbsp; | &nbsp;
- <a href="enter_bug.cgi?cloned_bug_id=4">Clone This Bug</a>
-
-
- </b>
- </font>
-
- </p>
-
-
-
-<hr>
-<script type="text/javascript">
- <!--
- function updateCommentPrivacy(checkbox, id) {
- var text_elem = document.getElementById('comment_text_'+id);
- if (checkbox.checked) {
- text_elem.parentNode.className='bz_private';
- } else {
- text_elem.parentNode.className='';
- }
- }
- //-->
- </script>
-
-
-
-
-
-
-
-
-<div >
- <table>
-
- <tr>
- <td align="left">
- <b><a name="c0" href="show_bug.cgi?id=4#c0">
- Description</a>:</b>&nbsp;&nbsp;<script type="text/javascript"><!--
- addReplyLink(0);
- //--></script>
- </td>
- <td align="left" width="30%">
- <b>Opened:</b> 2006-03-09 13:09
- </td>
-
- </tr>
- </table>
-
-
-
-<pre id="comment_text_0">Testing new 2.22 version capability
-</pre>
- </div>
- <div >
- <br>
- <span class="bz_comment">
- ------- <i>Comment
- <a name="c1" href="show_bug.cgi?id=4#c1">
-
- #1</a> From
- <a href="mailto:relves&#64;cs.ubc.ca">Robert Elves</a>
- 2006-03-10 14:11:48
- </i>
- <script type="text/javascript"><!--
- addReplyLink(1); //--></script>
- -------
- </span>
-
-
-
-<pre id="comment_text_1"><span class=""><a href="attachment.cgi?id=1&amp;action=view" title="Testing upload">Created an attachment (id=1)</a> <a href="attachment.cgi?id=1&amp;action=edit" title="Testing upload">[edit]</a></span>
-
-Testing upload
-
-The comment
-</pre>
- </div>
-
-</form>
-
-<hr>
-<b>Bug List:</b>
- (4 of 4)
-
- <a href="show_bug.cgi?id=1">First</a>
- <a href="show_bug.cgi?id=4">Last</a>
-
- <a href="show_bug.cgi?id=3">Prev</a>
-
- <i><font color="#777777">Next</font></i>
-
- &nbsp;&nbsp;<a href="buglist.cgi?regetlastlist=1">Show last search results</a>
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<br>
-<div id="footer">
- <div class="intro"></div>
-
-
-
-
-<div id="useful-links">
- <div id="links-actions">
- <div class="label">Actions:</div>
- <div class="links">
-
- <a href="./">Home</a> |
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Search</a> |
-
- <form action="buglist.cgi" method="get"
- onsubmit="if (this.quicksearch.value == '')
- { alert('Please enter one or more search terms first.');
- return false; } return true;">
- <input class="txt" type="text" name="quicksearch">
- <input class="btn" type="submit" value="Find">
- </form> |
-
- <a href="report.cgi">Reports</a>
-
- | <a href="request.cgi?requester=relves%40cs.ubc.ca&amp;requestee=relves%40cs.ubc.ca&amp;do_union=1&amp;group=type">My Requests</a>
-
-
- | <a href="votes.cgi?action=show_user">My&nbsp;Votes</a>
- | <a href="sanitycheck.cgi">Sanity&nbsp;check</a>
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;relves&#64;cs.ubc.ca
- </div>
- </div>
-
-
- <div id="links-edit">
- <div class="label">Edit:</div>
- <div class="links">
-
- <a href="userprefs.cgi">Prefs</a> | <a href="editparams.cgi">Parameters</a> | <a href="editsettings.cgi">User Preferences</a> | <a href="editusers.cgi">Users</a> | <a href="editproducts.cgi">Products</a> | <a href="editflagtypes.cgi">Flags</a> | <a href="editvalues.cgi">Field Values</a> | <a href="editgroups.cgi">Groups</a> | <a href="editkeywords.cgi">Keywords</a> | <a href="editwhines.cgi">Whining</a>
-
- </div>
- </div>
-
-
-
-
- <div id="links-saved">
- <div class="label">
- Saved&nbsp;Searches:
- </div>
- <div class="links">
- <a href="buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=relves%40cs.ubc.ca&amp;field0-0-0=bug_status&amp;type0-0-0=notequals&amp;value0-0-0=UNCONFIRMED&amp;field0-0-1=reporter&amp;type0-0-1=equals&amp;value0-0-1=relves%40cs.ubc.ca">My&nbsp;Bugs</a>
-
- </div>
- </div>
-
-
-<div id="links-special">
- <div class="label">&nbsp;</div>
- <div class="links">
- <form action="buglist.cgi" method="get">
- <input type="hidden" name="cmdtype" value="doit">
- <input type="hidden" name="remtype" value="asnamed">
-
- <input type="hidden" name="add_bugids" value="1">
- <input type="submit" value="Add"> bugs
- <input type="text" name="bug_ids" size="8" maxlength="80"> to
- the new saved search:
- <input type="text" name="newqueryname" size="20" maxlength="64">
- </form>
- </div>
- </div>
-
-
-</div>
-
- <div class="outro"></div>
-</div>
-
-</body>
-</html>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/ve-page.html b/org.eclipse.mylyn.bugzilla.tests/testdata/pages/ve-page.html
deleted file mode 100644
index e5423da71..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/pages/ve-page.html
+++ /dev/null
@@ -1,178 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0054)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=VE -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="VE_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="VE_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="VE_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=VE name=product>
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>VE</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=0.5.0>0.5.0</OPTION>
- <OPTION value=1.0.0>1.0.0</OPTION> <OPTION value=unspecified
- selected>unspecified</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=VE">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION value=CDE>CDE</OPTION>
- <OPTION value=Doc>Doc</OPTION> <OPTION value="Java Core">Java
- Core</OPTION> <OPTION value="Java Model (JEM)">Java Model (JEM)</OPTION>
- <OPTION value=JFC/Swing>JFC/Swing</OPTION> <OPTION
- value=SWT>SWT</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/1.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/1.html
deleted file mode 100644
index cf50a3d46..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/1.html
+++ /dev/null
@@ -1,377 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0050)https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 4548 - DCR: TableTree should support icon in 1st column (1G06WFT)</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="4548_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="4548_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="4548_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 4548</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>DCR: TableTree should support icon in 1st
- column (1G06WFT)</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug
-List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20020527161709 name=delta_ts> <INPUT type=hidden value=2
-name=longdesclength> <INPUT type=hidden value=4548 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548">4548</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All selected>All</OPTION>
- <OPTION value=Macintosh>Macintosh</OPTION> <OPTION value=PC>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>erich_gamma@ch.ibm.com (Erich Gamma) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT>AJDT</OPTION> <OPTION
- value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION> <OPTION
- value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
- value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
- value=Platform selected>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All selected>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION
- value="Windows XP">Windows XP</OPTION> <OPTION
- value="Windows All">Windows All</OPTION> <OPTION value="MacOS X">MacOS
- X</OPTION> <OPTION value=Linux>Linux</OPTION> <OPTION
- value=Linux-GTK>Linux-GTK</OPTION> <OPTION
- value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Ant>Ant</OPTION> <OPTION
- value=Compare>Compare</OPTION> <OPTION value=CVS>CVS</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Help>Help</OPTION> <OPTION value=Intro>Intro</OPTION> <OPTION
- value=Releng>Releng</OPTION> <OPTION value=Resources>Resources</OPTION>
- <OPTION value=Runtime>Runtime</OPTION> <OPTION
- value=Scripting>Scripting</OPTION> <OPTION value=Search>Search</OPTION>
- <OPTION value=SWT selected>SWT</OPTION> <OPTION value=Team>Team</OPTION>
- <OPTION value=Text>Text</OPTION> <OPTION value=UI>UI</OPTION> <OPTION
- value=Update>Update</OPTION> <OPTION value=WebDAV>WebDAV</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=2.0 selected>2.0</OPTION> <OPTION value=2.0.1>2.0.1</OPTION>
- <OPTION value=2.0.2>2.0.2</OPTION> <OPTION value=2.1>2.1</OPTION>
- <OPTION value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION>
- <OPTION value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION>
- <OPTION value=3.0.1>3.0.1</OPTION> <OPTION value=3.1>3.1</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>RESOLVED</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5 selected>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD>WONTFIX</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>veronika_irvine@ca.ibm.com (Veronika Irvine)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value="2.0 M1">2.0
- M1</OPTION> <OPTION value="2.0 M2">2.0 M2</OPTION> <OPTION
- value="2.0 M3">2.0 M3</OPTION> <OPTION value="2.0 M4">2.0 M4</OPTION>
- <OPTION value="2.0 M5">2.0 M5</OPTION> <OPTION value="2.0 M6">2.0
- M6</OPTION> <OPTION value="2.0 F1">2.0 F1</OPTION> <OPTION
- value="2.0 F2">2.0 F2</OPTION> <OPTION value="2.0 F3">2.0 F3</OPTION>
- <OPTION value="2.0 F4">2.0 F4</OPTION> <OPTION
- value=2.0.1>2.0.1</OPTION> <OPTION value=2.0.2>2.0.2</OPTION> <OPTION
- value=2.1>2.1</OPTION> <OPTION value="2.1 M1">2.1 M1</OPTION> <OPTION
- value="2.1 M2">2.1 M2</OPTION> <OPTION value="2.1 M3">2.1 M3</OPTION>
- <OPTION value="2.1 M4">2.1 M4</OPTION> <OPTION value="2.1 M5">2.1
- M5</OPTION> <OPTION value="2.1 RC1">2.1 RC1</OPTION> <OPTION
- value="2.1 RC2">2.1 RC2</OPTION> <OPTION value="2.1 RC3">2.1
- RC3</OPTION> <OPTION value="2.1 RC4">2.1 RC4</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION> <OPTION
- value="3.0 M1">3.0 M1</OPTION> <OPTION value="3.0 M2">3.0 M2</OPTION>
- <OPTION value="3.0 M3">3.0 M3</OPTION> <OPTION value="3.0 M4">3.0
- M4</OPTION> <OPTION value="3.0 M5">3.0 M5</OPTION> <OPTION
- value="3.0 M6">3.0 M6</OPTION> <OPTION value="3.0 M7">3.0 M7</OPTION>
- <OPTION value="3.0 M8">3.0 M8</OPTION> <OPTION value="3.0 M9">3.0
- M9</OPTION> <OPTION value="3.0 RC1">3.0 RC1</OPTION> <OPTION
- value="3.0 RC2">3.0 RC2</OPTION> <OPTION value="3.0 RC3">3.0
- RC3</OPTION> <OPTION value="3.0 RC4">3.0 RC4</OPTION> <OPTION
- value=3.0.1>3.0.1</OPTION> <OPTION value=3.0.2>3.0.2</OPTION> <OPTION
- value=3.1>3.1</OPTION> <OPTION value="3.1 M1">3.1 M1</OPTION> <OPTION
- value="3.1 M2">3.1 M2</OPTION> <OPTION value="3.1 M3">3.1 M3</OPTION>
- <OPTION value="3.1 M4">3.1 M4</OPTION> <OPTION value="3.1 M5">3.1
- M5</OPTION> <OPTION value="3.1 M6">3.1 M6</OPTION> <OPTION value=---
- selected>---</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="DCR: TableTree should support icon in 1st column (1G06WFT)"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=4548&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=4548&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 4548 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=4548">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 4548 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE>
-<TABLE>
- <TBODY>
- <TR>
- <TH><A href="https://bugs.eclipse.org/bugs/votehelp.html">Votes</A>: </TH>
- <TD>0&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_bug&amp;bug_id=4548">Show
- votes for this bug</A>&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user&amp;bug_id=4548">Vote
- for this bug</A> </TD></TR></TBODY></TABLE><BR><B>Additional Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>RESOLVED&nbsp;WONTFIX</B> <BR><INPUT type=radio value=reopen name=knob>
-Reopen bug <BR><INPUT type=radio value=verify name=knob> Mark bug as
-<B>VERIFIED</B><BR><INPUT type=radio value=close name=knob> Mark bug as
-<B>CLOSED</B><BR><INPUT type=submit value=Commit> <INPUT type=hidden
-value=process_bug name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=4548">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=4548">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2001-10-11 14:18 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>EG (8/24/00 3:41:25 PM)
- TableTree doesn't support showing an icon in the first column. The icon is eaten up
- by the +/- icon.
- Not being able to have an icon in the first column reduces the applicability
- of TableTree (we would like to use it in the Java plugin, but we can't).
-
-NOTES:
-
-VI (8/24/00 10:54:39 AM)
- TableTree is implemented using the Windows table widget and this only allows
- one image per column. Sorry, there's nothing we can do.
-
-AW (24.08.00 17:31:06)
- Why not combining the +/- icon with the client's icon into a single icon?
-
-EG (8/29/00 3:35:01 PM)
- JFace has support for compositing icons see:
- com.ibm.jface.examples.compositeimage.CompositeImageExample
-
-CM (3/17/01 5:29:49 PM)
- P1/M1 (April 1st, 2001)
- Need to know the priority of 1GAJ9KP: SWT:ALL - TableTree class has no selection support for the SWT.CHECK style
- because these two PRs may conflict.
-
-CM (3/28/01 5:09:33 PM)
- We investigated using the Windows "state image" feature in Table, but this is already being used by
- checkboxes if the Table is created with check style. It would also mean that we would have to provide
- platform-specific public API on Table to allow TableTree class to set/get state images. So we decided
- against this.
-
- VI is going to investigate merging the [+]/[-] images with the user's image. We would try to write it
- in such a way that only those who actually put an image in the first column would have to pay for
- the added slowness. We suspect there may be issues such as background color/transparency
- problems, hit test problems, selection highlight problems, and cheese problems, but we will have
- to try it first before we know for sure.
-
-VI (4/4/2001 10:41:59 AM)
- Two major issues which prevent us from merging the [+]/[-] with the user's image and using the normal first column image:
- 1) Images of different sizes can be added to the control, however the size of the image displayed in the associated
- Windows Common Control will be constrained to the size of the first image added to the ImageList.
- Images for all columns are added to the same ImageList and therefore must have the exact same height and WIDTH.
- This makes merging the +/- and the first column image have impact on every image in the TableTree
- 2) There is a limit to how may images I can cram in the ImageList. Having potentially 3 per row I think will quickly exceed the limit.
-
-VI (4/4/2001 05:20 PM)
-
- We have a PR that requests support for an image in the first column of a TableTree and I believe that you
- are the prime requestor.
-
- I have tried to make this work and below is the best I can do. As you can see, there is a limitation on the
- underlying native widget which is that all images in the TableTree must have the exact same height and width.
- Consequently, when I leave enough room to merge the +/- image with the image you wish to show in the first column,
- this causes all the other images in the TableTree to be stretched width wise.
-
- &lt;picture&gt;
-
- It is my opinion that the current TableTree can not be made to work any better than this. If this is not
- adequate for your use, the only alternative is to write a custom widget that does this and does not
- use the native widget. Writing a full custom widget is not trivial. It will probably require a month or
- two and will probably not give all the capability that is present in native List or Tree widgets (just
- because there are a lot of subtle things going on there and I won't have time to get them all). I need
- to know if I should commence with a custom widget. Also, as I have other responsibilities, Mike and I will
- have to discuss which of them will be set aside before I can do this work.
-
-VI (4/27/2001 8:42:19 AM)
- Have received no feedback requesting a custom Tree or implementation of the solution presented above.
- Moving to Inactive.</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548#c1" name=c1>#1</A> From
-<A href="mailto:veronika_irvine@ca.ibm.com">Veronika Irvine</A> 2002-05-27 16:17
-------- </I><PRE>java.lang.NullPointerException Closing this bug report. A new DCR should be raised from a better custom table
-tree.</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/2.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/2.html
deleted file mode 100644
index 6bae80545..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/2.html
+++ /dev/null
@@ -1,406 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0051)https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 76146 - NPE using quickfix in Aspect opened with java editor</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="76146_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="76146_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="76146_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 76146</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>NPE using quickfix in Aspect opened with java
- editor</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20041013045125 name=delta_ts> <INPUT type=hidden value=1
-name=longdesclength> <INPUT type=hidden value=76146 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146">76146</A> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>hawkinsh@uk.ibm.com (Helen Hawkins) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT selected>AJDT</OPTION>
- <OPTION value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION>
- <OPTION value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
- value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
- value=Platform>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=AJDT">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Core>Core</OPTION> <OPTION
- value=Doc>Doc</OPTION> <OPTION value=UI selected>UI</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.1.11>1.1.11</OPTION> <OPTION
- value=1.1.12 selected>1.1.12</OPTION> <OPTION value=1.1.3>1.1.3</OPTION>
- <OPTION value=1.1.4>1.1.4</OPTION> <OPTION value=1.1.7>1.1.7</OPTION>
- <OPTION value=1.2.0>1.2.0</OPTION> <OPTION value="1.2.0 M1">1.2.0
- M1</OPTION> <OPTION value=unspecified>unspecified</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>NEW</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD></TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>mchapman@uk.ibm.com (Matt Chapman)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value=---
- selected>---</OPTION> <OPTION value=1.1.12>1.1.12</OPTION> <OPTION
- value=1.1.13>1.1.13</OPTION> <OPTION value=1.1.3>1.1.3</OPTION> <OPTION
- value=1.1.4>1.1.4</OPTION> <OPTION value=1.2.0>1.2.0</OPTION> <OPTION
- value="1.2.0 M1">1.2.0 M1</OPTION> <OPTION value="1.2.0 M2">1.2.0
- M2</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="NPE using quickfix in Aspect opened with java editor"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76146&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76146&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 76146 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=76146">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 76146 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE><BR><B>Additional
-Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>NEW&nbsp;</B> <BR><INPUT type=radio value=accept name=knob> Accept bug
-(change status to <B>ASSIGNED</B>) <BR><INPUT type=radio value=resolve
-name=knob> Resolve bug, changing <A
-href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
-onchange=document.changeform.knob[2].checked=true name=resolution> <OPTION
- value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
- <OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
- <OPTION value=REMIND>REMIND</OPTION> <OPTION
- value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
-value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
-onchange="if (this.value != '')&#10; {document.changeform.knob[3].checked=true}"
-size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
-href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
-bug to <INPUT
-onchange="if ((this.value != 'mchapman@uk.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[4].checked=true; &#10; }"
-size=32 value=mchapman@uk.ibm.com name=assigned_to> <BR><INPUT type=radio
-value=reassignbycomponent name=knob> Reassign bug to owner of selected component
-<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
-name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=76146">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=76146">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2004-10-13 04:51 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>To recreate:
-
-- Check out the QuickFix project from ajdt.test project
-java.lang.NullPointerException- Open TestAspect.java in the Java Editor (right click &gt; open with &gt; Java
-Editor)
-- Click on the lightbulb with the error marker (the same line as File f = new
-File("tmp");
-java.lang.NullPointerException- An Internal Error appear in the Error log with the following stack trace:
-
-
-
-java.lang.NullPointerException
-at
-org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsSubProcessor.getT
-ypeProposals(UnresolvedElementsSubProcessor.java:395)
-at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.process
-(QuickFixProcessor.java:270)
-at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.getCorrections
-(QuickFixProcessor.java:202)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.collectCorr
-ections(JavaCorrectionProcessor.java:240)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.processAnno
-tations(JavaCorrectionProcessor.java:208)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.computeComp
-letionProposals(JavaCorrectionProcessor.java:177)
-at
-org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposal
-s(ContentAssistant.java:1472)
-at
-org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals
-(CompletionProposalPopup.java:242)
-at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
-(CompletionProposalPopup.java:238)
-at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run
-(CompletionProposalPopup.java:197)
-at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
-at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals
-(CompletionProposalPopup.java:192)
-at
-org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions
-(ContentAssistant.java:1320)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionAssistant.showPossibl
-eCompletions(JavaCorrectionAssistant.java:159)
-at
-org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewe
-r.doOperation(CompilationUnitEditor.java:184)
-at org.eclipse.jdt.internal.ui.javaeditor.JavaSelectAnnotationRulerAction.run
-(JavaSelectAnnotationRulerAction.java:78)
-at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run
-(AbstractRulerActionDelegate.java:99)
-at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:276)
-at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:238)
-at org.eclipse.ui.texteditor.AbstractTextEditor$11.triggerAction
-(AbstractTextEditor.java:2110)
-at org.eclipse.ui.texteditor.AbstractTextEditor$11.mouseUp
-(AbstractTextEditor.java:2117)
-at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:136)
-at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
-at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
-at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
-at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
-at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
-at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
-at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
-at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
-at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
-at org.eclipse.core.internal.runtime.PlatformActivator$1.run
-(PlatformActivator.java:335)
-at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
-at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
-at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-at sun.reflect.NativeMethodAccessorImpl.invoke
-(NativeMethodAccessorImpl.java:39)
-at sun.reflect.DelegatingMethodAccessorImpl.invoke
-(DelegatingMethodAccessorImpl.java:25)
-at java.lang.reflect.Method.invoke(Method.java:324)
-at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
-at org.eclipse.core.launcher.Main.run(Main.java:644)
-at org.eclipse.core.launcher.Main.main(Main.java:628)
-
-
-Looking at the jdt code in UnresolvedElementsSubProcessor.java, at line 395,
-the parent field is null:
-
- ASTNode parent= selectedNode.getParent();
- while (parent.getLength() == selectedNode.getLength()) { // line 395
- parent= parent.getParent();
- }
-
-java.lang.NullPointerException There just needs to be a null check as there is above:
-
-
- ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
- if (selectedNode == null) {
- return;
- }
- int kind= SimilarElementsRequestor.ALL_TYPES;
-
- ASTNode parent= selectedNode.getParent();
- while (parent.getLength() == selectedNode.getLength()) {
- parent= parent.getParent();
- }
-
-should become:
-
-
- ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
- if (selectedNode == null) {
- return;
- }
- int kind= SimilarElementsRequestor.ALL_TYPES;
-
- ASTNode parent= selectedNode.getParent();
- if (parent == null) {
- return;
- }
- while (parent.getLength() == selectedNode.getLength()) {
- parent= parent.getParent();
- }
-
-
-This needs to be raised as a jdt bug, since we don't pass through any ajdt
-code in order to get here.
-
-Raising this bug against ajdt is just for tracking.
-
-(note this happens on 1.1.12, but also on the latest AJDT dev build).</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/40152.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/40152.html
deleted file mode 100644
index fb15d0fa8..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/40152.html
+++ /dev/null
@@ -1,1228 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0051)https://bugs.eclipse.org/bugs/show_bug.cgi?id=40152 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 40152 - Junit tests fail on GTK</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=4862" rel=First><LINK href="show_bug.cgi?id=40059"
-rel=Prev><LINK href="show_bug.cgi?id=40723" rel=Next><LINK
-href="show_bug.cgi?id=79413" rel=Last><LINK href="buglist.cgi?regetlastlist=1"
-rel=Up><LINK href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="40152_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="40152_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="40152_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 40152</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>Junit tests fail on GTK</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug List:</B> (18 of
-183) <A href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=79413">Last</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40059">Prev</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40723">Next</A>
-&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20040525174037 name=delta_ts> <INPUT type=hidden value=2
-name=longdesclength> <INPUT type=hidden value=40152 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40152">40152</A> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>christophe_cornu@ca.ibm.com (Christophe Cornu) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT>AJDT</OPTION> <OPTION
- value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION> <OPTION
- value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
- value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
- value=Platform selected>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION
- value="Windows XP">Windows XP</OPTION> <OPTION
- value="Windows All">Windows All</OPTION> <OPTION value="MacOS X">MacOS
- X</OPTION> <OPTION value=Linux>Linux</OPTION> <OPTION value=Linux-GTK
- selected>Linux-GTK</OPTION> <OPTION
- value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Ant>Ant</OPTION> <OPTION
- value=Compare>Compare</OPTION> <OPTION value=CVS>CVS</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Help>Help</OPTION> <OPTION value=Intro>Intro</OPTION> <OPTION
- value=Releng>Releng</OPTION> <OPTION value=Resources>Resources</OPTION>
- <OPTION value=Runtime>Runtime</OPTION> <OPTION
- value=Scripting>Scripting</OPTION> <OPTION value=Search>Search</OPTION>
- <OPTION value=SWT selected>SWT</OPTION> <OPTION value=Team>Team</OPTION>
- <OPTION value=Text>Text</OPTION> <OPTION value=UI>UI</OPTION> <OPTION
- value=Update>Update</OPTION> <OPTION value=WebDAV>WebDAV</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=2.0>2.0</OPTION> <OPTION value=2.0.1>2.0.1</OPTION> <OPTION
- value=2.0.2>2.0.2</OPTION> <OPTION value=2.1>2.1</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0 selected>3.0</OPTION>
- <OPTION value=3.0.1>3.0.1</OPTION> <OPTION value=3.1>3.1</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>NEW</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD></TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION value=major
- selected>major</OPTION> <OPTION value=normal>normal</OPTION> <OPTION
- value=minor>minor</OPTION> <OPTION value=trivial>trivial</OPTION>
- <OPTION value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>felipe_heidrich@ca.ibm.com (Felipe Heidrich)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value="2.0 M1">2.0
- M1</OPTION> <OPTION value="2.0 M2">2.0 M2</OPTION> <OPTION
- value="2.0 M3">2.0 M3</OPTION> <OPTION value="2.0 M4">2.0 M4</OPTION>
- <OPTION value="2.0 M5">2.0 M5</OPTION> <OPTION value="2.0 M6">2.0
- M6</OPTION> <OPTION value="2.0 F1">2.0 F1</OPTION> <OPTION
- value="2.0 F2">2.0 F2</OPTION> <OPTION value="2.0 F3">2.0 F3</OPTION>
- <OPTION value="2.0 F4">2.0 F4</OPTION> <OPTION
- value=2.0.1>2.0.1</OPTION> <OPTION value=2.0.2>2.0.2</OPTION> <OPTION
- value=2.1>2.1</OPTION> <OPTION value="2.1 M1">2.1 M1</OPTION> <OPTION
- value="2.1 M2">2.1 M2</OPTION> <OPTION value="2.1 M3">2.1 M3</OPTION>
- <OPTION value="2.1 M4">2.1 M4</OPTION> <OPTION value="2.1 M5">2.1
- M5</OPTION> <OPTION value="2.1 RC1">2.1 RC1</OPTION> <OPTION
- value="2.1 RC2">2.1 RC2</OPTION> <OPTION value="2.1 RC3">2.1
- RC3</OPTION> <OPTION value="2.1 RC4">2.1 RC4</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION> <OPTION
- value="3.0 M1">3.0 M1</OPTION> <OPTION value="3.0 M2">3.0 M2</OPTION>
- <OPTION value="3.0 M3">3.0 M3</OPTION> <OPTION value="3.0 M4">3.0
- M4</OPTION> <OPTION value="3.0 M5">3.0 M5</OPTION> <OPTION
- value="3.0 M6">3.0 M6</OPTION> <OPTION value="3.0 M7">3.0 M7</OPTION>
- <OPTION value="3.0 M8">3.0 M8</OPTION> <OPTION value="3.0 M9">3.0
- M9</OPTION> <OPTION value="3.0 RC1">3.0 RC1</OPTION> <OPTION
- value="3.0 RC2">3.0 RC2</OPTION> <OPTION value="3.0 RC3">3.0
- RC3</OPTION> <OPTION value="3.0 RC4">3.0 RC4</OPTION> <OPTION
- value=3.0.1>3.0.1</OPTION> <OPTION value=3.0.2>3.0.2</OPTION> <OPTION
- value=3.1>3.1</OPTION> <OPTION value="3.1 M1">3.1 M1</OPTION> <OPTION
- value="3.1 M2">3.1 M2</OPTION> <OPTION value="3.1 M3">3.1 M3</OPTION>
- <OPTION value="3.1 M4">3.1 M4</OPTION> <OPTION value="3.1 M5">3.1
- M5</OPTION> <OPTION value="3.1 M6">3.1 M6</OPTION> <OPTION value=---
- selected>---</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60 value="Junit tests fail on GTK"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=40152&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=40152&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 40152 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=40152">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 40152 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE>
-<TABLE>
- <TBODY>
- <TR>
- <TH><A href="https://bugs.eclipse.org/bugs/votehelp.html">Votes</A>: </TH>
- <TD>0&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_bug&amp;bug_id=40152">Show
- votes for this bug</A>&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user&amp;bug_id=40152">Vote
- for this bug</A> </TD></TR></TBODY></TABLE><BR><B>Additional Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>NEW&nbsp;</B> <BR><INPUT type=radio value=accept name=knob> Accept bug
-(change status to <B>ASSIGNED</B>) <BR><INPUT type=radio value=resolve
-name=knob> Resolve bug, changing <A
-href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
-onchange=document.changeform.knob[2].checked=true name=resolution> <OPTION
- value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
- <OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
- <OPTION value=REMIND>REMIND</OPTION> <OPTION
- value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
-value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
-onchange="if (this.value != '')&#10; {document.changeform.knob[3].checked=true}"
-size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
-href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
-bug to <INPUT
-onchange="if ((this.value != 'felipe_heidrich@ca.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[4].checked=true; &#10; }"
-size=32 value=felipe_heidrich@ca.ibm.com name=assigned_to> <BR><INPUT type=radio
-value=reassignbycomponent name=knob> Reassign bug to owner of selected component
-<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
-name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=40152">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=40152">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40152#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2003-07-15 16:25 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>latest from head (20030715) generate about 30 errors/failures.
-
-.........................................
-.........................................
-.........................E................
-..........4
-5
-...............................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-...........F.....F...........F.E.E............
-.................F....F....................
-..........
-(&lt;unknown&gt;:6548): Gdk-CRITICAL **: file gdkdraw.c: line 238
-(gdk_drawable_get_display): assertion `GDK_IS_DRAWABLE (drawable)' failed
-
-(&lt;unknown&gt;:6548): Gdk-CRITICAL **: file gdkdisplay.c: line 498
-(gdk_display_get_window_at_pointer): assertion `GDK_IS_DISPLAY (display)'
-failed
-........
-(&lt;unknown&gt;:6548): Gdk-CRITICAL **: file gdkdraw.c: line 238
-(gdk_drawable_get_display): assertion `GDK_IS_DRAWABLE (drawable)' failed
-
-(&lt;unknown&gt;:6548): Gdk-CRITICAL **: file gdkdisplay.c: line 498
-(gdk_display_get_window_at_pointer): assertion `GDK_IS_DISPLAY (display)'
-failed
-.......................
-.........................................
-..............F...........................
-.........................................
-....................................F.....
-.........................................
-.........................................
-.........................................
-.......................................
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkwidget.c: line 5139
-(gtk_widget_set_size_request): assertion `width &gt;= -1' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkwidget.c: line 5139
-(gtk_widget_set_size_request): assertion `width &gt;= -1' failed
-..
-...................
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkwidget.c: line 5139
-(gtk_widget_set_size_request): assertion `width &gt;= -1' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkwidget.c: line 5139
-(gtk_widget_set_size_request): assertion `width &gt;= -1' failed
-......................
-.........................................
-..................................
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 9817
-(gtk_tree_view_get_path_at_pos): assertion `tree_view-&gt;priv-&gt;bin_window !=
-NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 9817
-(gtk_tree_view_get_path_at_pos): assertion `tree_view-&gt;priv-&gt;bin_window !=
-NULL' failed
-.......
-...
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkliststore.c: line 533
-(gtk_list_store_get_path): assertion `iter-&gt;stamp == GTK_LIST_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkliststore.c: line 533
-(gtk_list_store_get_path): assertion `iter-&gt;stamp == GTK_LIST_STORE
-(tree_model)-&gt;stamp' failed
-.........
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkliststore.c: line 533
-(gtk_list_store_get_path): assertion `iter-&gt;stamp == GTK_LIST_STORE
-(tree_model)-&gt;stamp' failed
-..
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 9817
-(gtk_tree_view_get_path_at_pos): assertion `tree_view-&gt;priv-&gt;bin_window !=
-NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 9817
-(gtk_tree_view_get_path_at_pos): assertion `tree_view-&gt;priv-&gt;bin_window !=
-NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 9817
-(gtk_tree_view_get_path_at_pos): assertion `tree_view-&gt;priv-&gt;bin_window !=
-NULL' failed
-F...........................
-.........................................
-........................................F.
-............F........F........F...F..........
-.........................................
-.........................................
-.....................F.F...................
-.........................................
-.........................................
-................................
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 9817
-(gtk_tree_view_get_path_at_pos): assertion `tree_view-&gt;priv-&gt;bin_window !=
-NULL' failed
-F.
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreestore.c: line 569
-(gtk_tree_store_get_path): assertion `iter-&gt;stamp == GTK_TREE_STORE
-(tree_model)-&gt;stamp' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 369
-(gtk_tree_path_get_depth): assertion `path != NULL' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreeview.c: line 8800
-(gtk_tree_view_scroll_to_cell): assertion `path != NULL || column != NULL'
-failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtktreemodel.c: line 400
-(gtk_tree_path_free): assertion `path != NULL' failed
-........
-.........................................
-.........................................
-...........................F..............
-.........................................
-.........................................
-.............
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkeditable.c: line 172
-(gtk_editable_delete_selection): assertion `GTK_IS_EDITABLE (editable)' failed
-
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkeditable.c: line 172
-(gtk_editable_delete_selection): assertion `GTK_IS_EDITABLE (editable)' failed
-F....F.......F.......F.E.......E..
-.........................................
-.........................................
-.............................
-(&lt;unknown&gt;:6548): Gtk-CRITICAL **: file gtkframe.c: line 362
-(gtk_frame_set_label_widget): assertion `label_widget == NULL || label_widget-
-&gt;parent == NULL' failed
-............
-.........................................
-.........................................
-................F.........................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.......................................F.F.
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-...........F.F.............................
-..F....F..E.E................................
-....F.F....................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.......
-Time: 111.199
-There were 7 errors:
-1) test_getFontData
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_graphics_Font)
-java.lang.NullPointerException
- at org.eclipse.swt.graphics.Font.dispose(Font.java:143)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_graphics_Font.test_getFontData
-(Test_org_eclipse_swt_graphics_Font.java:239)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_graphics_Font.runTest
-(Test_org_eclipse_swt_graphics_Font.java:308)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-2) test_setText$Ljava_lang_String
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem)
-org.eclipse.swt.SWTError: Cannot get text
- at org.eclipse.swt.SWT.error(SWT.java:2391)
- at org.eclipse.swt.SWT.error(SWT.java:2295)
- at org.eclipse.swt.widgets.Widget.error(Widget.java:375)
- at org.eclipse.swt.widgets.TableItem.getText(TableItem.java:350)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.test_setText
-$Ljava_lang_String(Test_org_eclipse_swt_widgets_TableItem.java:359)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.runTest
-(Test_org_eclipse_swt_widgets_TableItem.java:518)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-3) test_setTextILjava_lang_String
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem)
-org.eclipse.swt.SWTError: Cannot get text
- at org.eclipse.swt.SWT.error(SWT.java:2391)
- at org.eclipse.swt.SWT.error(SWT.java:2295)
- at org.eclipse.swt.widgets.Widget.error(Widget.java:375)
- at org.eclipse.swt.widgets.TableItem.getText(TableItem.java:350)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.test_setText
-ILjava_lang_String(Test_org_eclipse_swt_widgets_TableItem.java:396)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.runTest
-(Test_org_eclipse_swt_widgets_TableItem.java:519)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-4) test_removeII
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo)
-java.lang.IllegalArgumentException: Index out of bounds
- at org.eclipse.swt.SWT.error(SWT.java:2351)
- at org.eclipse.swt.SWT.error(SWT.java:2295)
- at org.eclipse.swt.widgets.Widget.error(Widget.java:375)
- at org.eclipse.swt.widgets.Combo.remove(Combo.java:938)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.test_removeII
-(Test_org_eclipse_swt_widgets_Combo.java:397)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.runTest
-(Test_org_eclipse_swt_widgets_Combo.java:688)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-5) test_setItemILjava_lang_String
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo)
-java.lang.ArrayIndexOutOfBoundsException: 0
- at org.eclipse.swt.widgets.Combo.setItem(Combo.java:1103)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.test_setItemILja
-va_lang_String(Test_org_eclipse_swt_widgets_Combo.java:503)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.runTest
-(Test_org_eclipse_swt_widgets_Combo.java:695)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-6) test_print
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-java.lang.NullPointerException
- at org.eclipse.swt.custom.StyledText$Printing.&lt;init&gt;
-(StyledText.java:200)
- at org.eclipse.swt.custom.StyledText.print(StyledText.java:5933)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_print
-(Test_org_eclipse_swt_custom_StyledText.java:1690)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4165)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-7) test_printLorg_eclipse_swt_printing_Printer
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-java.lang.NullPointerException
- at org.eclipse.swt.custom.StyledText$Printing.&lt;init&gt;
-(StyledText.java:200)
- at org.eclipse.swt.custom.StyledText.print(StyledText.java:5988)
- at org.eclipse.swt.custom.StyledText.print(StyledText.java:5963)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_printLo
-rg_eclipse_swt_printing_Printer
-(Test_org_eclipse_swt_custom_StyledText.java:1710)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4166)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-There were 30 failures:
-1) test_getBoundsI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem)
-junit.framework.AssertionFailedError: :a:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.test_getBoun
-dsI(Test_org_eclipse_swt_widgets_TableItem.java:85)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.runTest
-(Test_org_eclipse_swt_widgets_TableItem.java:501)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-2) test_getImageBoundsI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem)
-junit.framework.AssertionFailedError: :e:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.test_getImag
-eBoundsI(Test_org_eclipse_swt_widgets_TableItem.java:177)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.runTest
-(Test_org_eclipse_swt_widgets_TableItem.java:506)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-3) test_setImageIndentI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem)
-junit.framework.AssertionFailedError: expected:&lt;1&gt; but was:&lt;0&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.test_setImag
-eIndentI(Test_org_eclipse_swt_widgets_TableItem.java:338)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableItem.runTest
-(Test_org_eclipse_swt_widgets_TableItem.java:517)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-4) test_getWidth
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableColumn)
-junit.framework.AssertionFailedError: :a: width=0 should be=10
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableColumn.test_getWi
-dth(Test_org_eclipse_swt_widgets_TableColumn.java:122)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableColumn.runTest
-(Test_org_eclipse_swt_widgets_TableColumn.java:264)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-5) test_setAlignmentI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableColumn)
-junit.framework.AssertionFailedError: :c: Should not be allowed to set
-alignment of the first column
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableColumn.test_setAl
-ignmentI(Test_org_eclipse_swt_widgets_TableColumn.java:177)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TableColumn.runTest
-(Test_org_eclipse_swt_widgets_TableColumn.java:268)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-6) test_setDefaultItemLorg_eclipse_swt_widgets_MenuItem
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Menu)
-junit.framework.AssertionFailedError: expected:&lt;null&gt; but was:&lt;MenuItem {}&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Menu.test_setDefaultIt
-emLorg_eclipse_swt_widgets_MenuItem(Test_org_eclipse_swt_widgets_Menu.java:272)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Menu.runTest
-(Test_org_eclipse_swt_widgets_Menu.java:387)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-7) test_getMonitor
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Shell)
-junit.framework.AssertionFailedError
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Control.test_getMonito
-r(Test_org_eclipse_swt_widgets_Control.java:287)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Control.runTest
-(Test_org_eclipse_swt_widgets_Control.java:819)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Scrollable.runTest
-(Test_org_eclipse_swt_widgets_Scrollable.java:72)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Composite.runTest
-(Test_org_eclipse_swt_widgets_Composite.java:159)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Canvas.runTest
-(Test_org_eclipse_swt_widgets_Canvas.java:115)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Decorations.runTest
-(Test_org_eclipse_swt_widgets_Decorations.java:250)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Shell.runTest
-(Test_org_eclipse_swt_widgets_Shell.java:428)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-8) test_setTopIndexI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_List)
-junit.framework.AssertionFailedError: expected:&lt;0&gt; but was:&lt;1&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_List.test_setTopIndexI
-(Test_org_eclipse_swt_widgets_List.java:2019)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_List.runTest
-(Test_org_eclipse_swt_widgets_List.java:2144)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-9) test_getDoubleClickEnabled
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text)
-junit.framework.AssertionFailedError: expected:&lt;false&gt; but was:&lt;true&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.test_getDoubleCli
-ckEnabled(Test_org_eclipse_swt_widgets_Text.java:316)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.runTest
-(Test_org_eclipse_swt_widgets_Text.java:953)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-10) test_getTopIndex
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text)
-junit.framework.AssertionFailedError: expected:&lt;1&gt; but was:&lt;0&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.test_getTopIndex
-(Test_org_eclipse_swt_widgets_Text.java:424)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.runTest
-(Test_org_eclipse_swt_widgets_Text.java:966)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-11) test_setDoubleClickEnabledZ
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text)
-junit.framework.AssertionFailedError: expected:&lt;false&gt; but was:&lt;true&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.test_setDoubleCli
-ckEnabledZ(Test_org_eclipse_swt_widgets_Text.java:599)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.runTest
-(Test_org_eclipse_swt_widgets_Text.java:974)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-12) test_setTabsI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text)
-junit.framework.AssertionFailedError: expected:&lt;8&gt; but was:&lt;0&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.test_setTabsI
-(Test_org_eclipse_swt_widgets_Text.java:759)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.runTest
-(Test_org_eclipse_swt_widgets_Text.java:982)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-13) test_setTopIndexI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text)
-junit.framework.AssertionFailedError: expected:&lt;1&gt; but was:&lt;0&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.test_setTopIndexI
-(Test_org_eclipse_swt_widgets_Text.java:820)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Text.runTest
-(Test_org_eclipse_swt_widgets_Text.java:985)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-14) test_setMaximumI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar)
-junit.framework.AssertionFailedError: expected:&lt;1&gt; but was:&lt;10&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.check
-(Test_org_eclipse_swt_widgets_ScrollBar.java:67)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.report
-(Test_org_eclipse_swt_widgets_ScrollBar.java:61)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.test_setMaxi
-mumI(Test_org_eclipse_swt_widgets_ScrollBar.java:757)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.runTest
-(Test_org_eclipse_swt_widgets_ScrollBar.java:892)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-15) test_setMinimumI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar)
-junit.framework.AssertionFailedError: expected:&lt;10&gt; but was:&lt;9&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.check
-(Test_org_eclipse_swt_widgets_ScrollBar.java:68)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.report
-(Test_org_eclipse_swt_widgets_ScrollBar.java:61)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.test_setMini
-mumI(Test_org_eclipse_swt_widgets_ScrollBar.java:773)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ScrollBar.runTest
-(Test_org_eclipse_swt_widgets_ScrollBar.java:893)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-16) test_setTopItemLorg_eclipse_swt_widgets_TreeItem
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Tree)
-junit.framework.AssertionFailedError: expected:&lt;TreeItem {}&gt; but was:&lt;null&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Tree.test_setTopItemLo
-rg_eclipse_swt_widgets_TreeItem(Test_org_eclipse_swt_widgets_Tree.java:424)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Tree.runTest
-(Test_org_eclipse_swt_widgets_Tree.java:538)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-17) test_setSelectionI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TabFolder)
-junit.framework.AssertionFailedError: expected:&lt;0&gt; but was:&lt;1&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TabFolder.test_setSele
-ctionI(Test_org_eclipse_swt_widgets_TabFolder.java:307)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_TabFolder.runTest
-(Test_org_eclipse_swt_widgets_TabFolder.java:405)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-18) test_clearSelection
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo)
-junit.framework.AssertionFailedError: :d:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.test_clearSelect
-ion(Test_org_eclipse_swt_widgets_Combo.java:130)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.runTest
-(Test_org_eclipse_swt_widgets_Combo.java:669)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-19) test_deselectI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo)
-junit.framework.AssertionFailedError: :b:0
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.test_deselectI
-(Test_org_eclipse_swt_widgets_Combo.java:155)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.runTest
-(Test_org_eclipse_swt_widgets_Combo.java:673)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-20) test_getSelectionIndex
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo)
-junit.framework.AssertionFailedError: expected:&lt;1&gt; but was:&lt;0&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.test_getSelectio
-nIndex(Test_org_eclipse_swt_widgets_Combo.java:219)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.runTest
-(Test_org_eclipse_swt_widgets_Combo.java:680)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-21) test_removeI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo)
-junit.framework.AssertionFailedError: index 0 expected:&lt;0&gt; but was:&lt;-1&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.test_removeI
-(Test_org_eclipse_swt_widgets_Combo.java:356)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Combo.runTest
-(Test_org_eclipse_swt_widgets_Combo.java:687)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-22) test_getRowCount
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ToolBar)
-junit.framework.AssertionFailedError: :a:1
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ToolBar.test_getRowCou
-nt(Test_org_eclipse_swt_widgets_ToolBar.java:132)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_ToolBar.runTest
-(Test_org_eclipse_swt_widgets_ToolBar.java:206)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-23) test_setMaximumI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider)
-junit.framework.AssertionFailedError: setMaximum(11): Thumb Expected: 1
-Actual: 10
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.check
-(Test_org_eclipse_swt_widgets_Slider.java:67)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.report
-(Test_org_eclipse_swt_widgets_Slider.java:60)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.test_setMaximum
-I(Test_org_eclipse_swt_widgets_Slider.java:743)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.runTest
-(Test_org_eclipse_swt_widgets_Slider.java:836)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-24) test_setMinimumI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider)
-junit.framework.AssertionFailedError: setMinimum(91): Thumb Expected: 9
-Actual: 10
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.check
-(Test_org_eclipse_swt_widgets_Slider.java:67)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.report
-(Test_org_eclipse_swt_widgets_Slider.java:60)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.test_setMinimum
-I(Test_org_eclipse_swt_widgets_Slider.java:755)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_widgets_Slider.runTest
-(Test_org_eclipse_swt_widgets_Slider.java:837)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-25) test_copy
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-junit.framework.AssertionFailedError: :a:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_copy
-(Test_org_eclipse_swt_custom_StyledText.java:559)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4127)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-26) test_cut
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-junit.framework.AssertionFailedError: :a:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_cut
-(Test_org_eclipse_swt_custom_StyledText.java:619)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4128)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-27) test_getTopIndex
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-junit.framework.AssertionFailedError: :d:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_getTopI
-ndex(Test_org_eclipse_swt_custom_StyledText.java:1388)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4159)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-28) test_invokeActionI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-junit.framework.ComparisonFailure: expected:&lt;...
-...&gt; but was:&lt;......&gt;
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_invokeA
-ctionI(Test_org_eclipse_swt_custom_StyledText.java:1593)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4163)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-29) test_setTopIndexI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-junit.framework.AssertionFailedError: :e:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_setTopI
-ndexI(Test_org_eclipse_swt_custom_StyledText.java:3943)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4202)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-30) test_setTopPixelI
-(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText)
-junit.framework.AssertionFailedError: :f:
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.test_setTopP
-ixelI(Test_org_eclipse_swt_custom_StyledText.java:3972)
- at
-org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_StyledText.runTest
-(Test_org_eclipse_swt_custom_StyledText.java:4203)
- at org.eclipse.swt.tests.junit.AllTests.main(AllTests.java:25)
-
-FAILURES!!!
-Tests run: 4148, Failures: 30, Errors: 7
-
-
-Calls to warnUnimpl: 958</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40152#c1" name=c1>#1</A>
-From <A href="mailto:felipe_heidrich@ca.ibm.com">Felipe Heidrich</A> 2003-07-28
-17:17 ------- </I><PRE>I was able to get rid of the GTK warnings, we still have 2 errors and 28
-Failures.
-</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> (18 of 183) <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=79413">Last</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40059">Prev</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40723">Next</A>
-&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4548.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4548.html
deleted file mode 100644
index b7047a40b..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4548.html
+++ /dev/null
@@ -1,377 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0050)https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 4548 - DCR: TableTree should support icon in 1st column (1G06WFT)</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="4548_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="4548_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="4548_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 4548</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>DCR: TableTree should support icon in 1st
- column (1G06WFT)</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug
-List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20020527161709 name=delta_ts> <INPUT type=hidden value=2
-name=longdesclength> <INPUT type=hidden value=4548 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548">4548</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All selected>All</OPTION>
- <OPTION value=Macintosh>Macintosh</OPTION> <OPTION value=PC>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>erich_gamma@ch.ibm.com (Erich Gamma) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT>AJDT</OPTION> <OPTION
- value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION> <OPTION
- value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
- value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
- value=Platform selected>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All selected>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION
- value="Windows XP">Windows XP</OPTION> <OPTION
- value="Windows All">Windows All</OPTION> <OPTION value="MacOS X">MacOS
- X</OPTION> <OPTION value=Linux>Linux</OPTION> <OPTION
- value=Linux-GTK>Linux-GTK</OPTION> <OPTION
- value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Ant>Ant</OPTION> <OPTION
- value=Compare>Compare</OPTION> <OPTION value=CVS>CVS</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Help>Help</OPTION> <OPTION value=Intro>Intro</OPTION> <OPTION
- value=Releng>Releng</OPTION> <OPTION value=Resources>Resources</OPTION>
- <OPTION value=Runtime>Runtime</OPTION> <OPTION
- value=Scripting>Scripting</OPTION> <OPTION value=Search>Search</OPTION>
- <OPTION value=SWT selected>SWT</OPTION> <OPTION value=Team>Team</OPTION>
- <OPTION value=Text>Text</OPTION> <OPTION value=UI>UI</OPTION> <OPTION
- value=Update>Update</OPTION> <OPTION value=WebDAV>WebDAV</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=2.0 selected>2.0</OPTION> <OPTION value=2.0.1>2.0.1</OPTION>
- <OPTION value=2.0.2>2.0.2</OPTION> <OPTION value=2.1>2.1</OPTION>
- <OPTION value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION>
- <OPTION value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION>
- <OPTION value=3.0.1>3.0.1</OPTION> <OPTION value=3.1>3.1</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>RESOLVED</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5 selected>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD>WONTFIX</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>veronika_irvine@ca.ibm.com (Veronika Irvine)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value="2.0 M1">2.0
- M1</OPTION> <OPTION value="2.0 M2">2.0 M2</OPTION> <OPTION
- value="2.0 M3">2.0 M3</OPTION> <OPTION value="2.0 M4">2.0 M4</OPTION>
- <OPTION value="2.0 M5">2.0 M5</OPTION> <OPTION value="2.0 M6">2.0
- M6</OPTION> <OPTION value="2.0 F1">2.0 F1</OPTION> <OPTION
- value="2.0 F2">2.0 F2</OPTION> <OPTION value="2.0 F3">2.0 F3</OPTION>
- <OPTION value="2.0 F4">2.0 F4</OPTION> <OPTION
- value=2.0.1>2.0.1</OPTION> <OPTION value=2.0.2>2.0.2</OPTION> <OPTION
- value=2.1>2.1</OPTION> <OPTION value="2.1 M1">2.1 M1</OPTION> <OPTION
- value="2.1 M2">2.1 M2</OPTION> <OPTION value="2.1 M3">2.1 M3</OPTION>
- <OPTION value="2.1 M4">2.1 M4</OPTION> <OPTION value="2.1 M5">2.1
- M5</OPTION> <OPTION value="2.1 RC1">2.1 RC1</OPTION> <OPTION
- value="2.1 RC2">2.1 RC2</OPTION> <OPTION value="2.1 RC3">2.1
- RC3</OPTION> <OPTION value="2.1 RC4">2.1 RC4</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION> <OPTION
- value="3.0 M1">3.0 M1</OPTION> <OPTION value="3.0 M2">3.0 M2</OPTION>
- <OPTION value="3.0 M3">3.0 M3</OPTION> <OPTION value="3.0 M4">3.0
- M4</OPTION> <OPTION value="3.0 M5">3.0 M5</OPTION> <OPTION
- value="3.0 M6">3.0 M6</OPTION> <OPTION value="3.0 M7">3.0 M7</OPTION>
- <OPTION value="3.0 M8">3.0 M8</OPTION> <OPTION value="3.0 M9">3.0
- M9</OPTION> <OPTION value="3.0 RC1">3.0 RC1</OPTION> <OPTION
- value="3.0 RC2">3.0 RC2</OPTION> <OPTION value="3.0 RC3">3.0
- RC3</OPTION> <OPTION value="3.0 RC4">3.0 RC4</OPTION> <OPTION
- value=3.0.1>3.0.1</OPTION> <OPTION value=3.0.2>3.0.2</OPTION> <OPTION
- value=3.1>3.1</OPTION> <OPTION value="3.1 M1">3.1 M1</OPTION> <OPTION
- value="3.1 M2">3.1 M2</OPTION> <OPTION value="3.1 M3">3.1 M3</OPTION>
- <OPTION value="3.1 M4">3.1 M4</OPTION> <OPTION value="3.1 M5">3.1
- M5</OPTION> <OPTION value="3.1 M6">3.1 M6</OPTION> <OPTION value=---
- selected>---</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="DCR: TableTree should support icon in 1st column (1G06WFT)"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=4548&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=4548&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 4548 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=4548">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 4548 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE>
-<TABLE>
- <TBODY>
- <TR>
- <TH><A href="https://bugs.eclipse.org/bugs/votehelp.html">Votes</A>: </TH>
- <TD>0&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_bug&amp;bug_id=4548">Show
- votes for this bug</A>&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user&amp;bug_id=4548">Vote
- for this bug</A> </TD></TR></TBODY></TABLE><BR><B>Additional Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>RESOLVED&nbsp;WONTFIX</B> <BR><INPUT type=radio value=reopen name=knob>
-Reopen bug <BR><INPUT type=radio value=verify name=knob> Mark bug as
-<B>VERIFIED</B><BR><INPUT type=radio value=close name=knob> Mark bug as
-<B>CLOSED</B><BR><INPUT type=submit value=Commit> <INPUT type=hidden
-value=process_bug name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=4548">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=4548">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2001-10-11 14:18 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>EG (8/24/00 3:41:25 PM)
- TableTree doesn't support showing an icon in the first column. The icon is eaten up
- by the +/- icon.
- Not being able to have an icon in the first column reduces the applicability
- of TableTree (we would like to use it in the Java plugin, but we can't).
-
-NOTES:
-
-VI (8/24/00 10:54:39 AM)
- TableTree is implemented using the Windows table widget and this only allows
- one image per column. Sorry, there's nothing we can do.
-
-AW (24.08.00 17:31:06)
- Why not combining the +/- icon with the client's icon into a single icon?
-
-EG (8/29/00 3:35:01 PM)
- JFace has support for compositing icons see:
- com.ibm.jface.examples.compositeimage.CompositeImageExample
-
-CM (3/17/01 5:29:49 PM)
- P1/M1 (April 1st, 2001)
- Need to know the priority of 1GAJ9KP: SWT:ALL - TableTree class has no selection support for the SWT.CHECK style
- because these two PRs may conflict.
-
-CM (3/28/01 5:09:33 PM)
- We investigated using the Windows "state image" feature in Table, but this is already being used by
- checkboxes if the Table is created with check style. It would also mean that we would have to provide
- platform-specific public API on Table to allow TableTree class to set/get state images. So we decided
- against this.
-
- VI is going to investigate merging the [+]/[-] images with the user's image. We would try to write it
- in such a way that only those who actually put an image in the first column would have to pay for
- the added slowness. We suspect there may be issues such as background color/transparency
- problems, hit test problems, selection highlight problems, and cheese problems, but we will have
- to try it first before we know for sure.
-
-VI (4/4/2001 10:41:59 AM)
- Two major issues which prevent us from merging the [+]/[-] with the user's image and using the normal first column image:
- 1) Images of different sizes can be added to the control, however the size of the image displayed in the associated
- Windows Common Control will be constrained to the size of the first image added to the ImageList.
- Images for all columns are added to the same ImageList and therefore must have the exact same height and WIDTH.
- This makes merging the +/- and the first column image have impact on every image in the TableTree
- 2) There is a limit to how may images I can cram in the ImageList. Having potentially 3 per row I think will quickly exceed the limit.
-
-VI (4/4/2001 05:20 PM)
-
- We have a PR that requests support for an image in the first column of a TableTree and I believe that you
- are the prime requestor.
-
- I have tried to make this work and below is the best I can do. As you can see, there is a limitation on the
- underlying native widget which is that all images in the TableTree must have the exact same height and width.
- Consequently, when I leave enough room to merge the +/- image with the image you wish to show in the first column,
- this causes all the other images in the TableTree to be stretched width wise.
-
- &lt;picture&gt;
-
- It is my opinion that the current TableTree can not be made to work any better than this. If this is not
- adequate for your use, the only alternative is to write a custom widget that does this and does not
- use the native widget. Writing a full custom widget is not trivial. It will probably require a month or
- two and will probably not give all the capability that is present in native List or Tree widgets (just
- because there are a lot of subtle things going on there and I won't have time to get them all). I need
- to know if I should commence with a custom widget. Also, as I have other responsibilities, Mike and I will
- have to discuss which of them will be set aside before I can do this work.
-
-VI (4/27/2001 8:42:19 AM)
- Have received no feedback requesting a custom Tree or implementation of the solution presented above.
- Moving to Inactive.</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4548#c1" name=c1>#1</A> From
-<A href="mailto:veronika_irvine@ca.ibm.com">Veronika Irvine</A> 2002-05-27 16:17
-------- </I><PRE>Closing this bug report. A new DCR should be raised from a better custom table
-tree.</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4862.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4862.html
deleted file mode 100644
index 813a29a15..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/4862.html
+++ /dev/null
@@ -1,401 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0050)https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 4862 - Check for isDisposed() in dispose after sending Dispose Calback (1GLC25X)</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="4862_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="4862_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="4862_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 4862</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>Check for isDisposed() in dispose after
- sending Dispose Calback (1GLC25X)</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20040924100922 name=delta_ts> <INPUT type=hidden value=3
-name=longdesclength> <INPUT type=hidden value=4862 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862">4862</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All selected>All</OPTION>
- <OPTION value=Macintosh>Macintosh</OPTION> <OPTION value=PC>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>veronika_irvine@ca.ibm.com (Veronika Irvine) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT>AJDT</OPTION> <OPTION
- value=AspectJ>AspectJ</OPTION> <OPTION value=CDT>CDT</OPTION> <OPTION
- value=CME>CME</OPTION> <OPTION value=Community>Community</OPTION>
- <OPTION value=ECESIS>ECESIS</OPTION> <OPTION value=EMF>EMF</OPTION>
- <OPTION value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION>
- <OPTION value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
- value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
- value=Platform selected>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All selected>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION
- value="Windows XP">Windows XP</OPTION> <OPTION
- value="Windows All">Windows All</OPTION> <OPTION value="MacOS X">MacOS
- X</OPTION> <OPTION value=Linux>Linux</OPTION> <OPTION
- value=Linux-GTK>Linux-GTK</OPTION> <OPTION
- value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Ant>Ant</OPTION> <OPTION
- value=Compare>Compare</OPTION> <OPTION value=CVS>CVS</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Help>Help</OPTION> <OPTION value=Intro>Intro</OPTION> <OPTION
- value=Releng>Releng</OPTION> <OPTION value=Resources>Resources</OPTION>
- <OPTION value=Runtime>Runtime</OPTION> <OPTION
- value=Scripting>Scripting</OPTION> <OPTION value=Search>Search</OPTION>
- <OPTION value=SWT selected>SWT</OPTION> <OPTION value=Team>Team</OPTION>
- <OPTION value=Text>Text</OPTION> <OPTION value=UI>UI</OPTION> <OPTION
- value=Update>Update</OPTION> <OPTION value=WebDAV>WebDAV</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=2.0 selected>2.0</OPTION> <OPTION value=2.0.1>2.0.1</OPTION>
- <OPTION value=2.0.2>2.0.2</OPTION> <OPTION value=2.1>2.1</OPTION>
- <OPTION value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION>
- <OPTION value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION>
- <OPTION value=3.0.1>3.0.1</OPTION> <OPTION value=3.1>3.1</OPTION></SELECT>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><SELECT multiple size=5 name=cc> <OPTION
- value=steve_northover@ca.ibm.com>steve_northover@ca.ibm.com</OPTION></SELECT>
- <BR><INPUT type=checkbox name=removecc>Remove selected CCs <BR></TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>NEW</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD></TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>Silenio_Quarti@ca.ibm.com (Silenio Quarti)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value="2.0 M1">2.0
- M1</OPTION> <OPTION value="2.0 M2">2.0 M2</OPTION> <OPTION
- value="2.0 M3">2.0 M3</OPTION> <OPTION value="2.0 M4">2.0 M4</OPTION>
- <OPTION value="2.0 M5">2.0 M5</OPTION> <OPTION value="2.0 M6">2.0
- M6</OPTION> <OPTION value="2.0 F1">2.0 F1</OPTION> <OPTION
- value="2.0 F2">2.0 F2</OPTION> <OPTION value="2.0 F3">2.0 F3</OPTION>
- <OPTION value="2.0 F4">2.0 F4</OPTION> <OPTION
- value=2.0.1>2.0.1</OPTION> <OPTION value=2.0.2>2.0.2</OPTION> <OPTION
- value=2.1>2.1</OPTION> <OPTION value="2.1 M1">2.1 M1</OPTION> <OPTION
- value="2.1 M2">2.1 M2</OPTION> <OPTION value="2.1 M3">2.1 M3</OPTION>
- <OPTION value="2.1 M4">2.1 M4</OPTION> <OPTION value="2.1 M5">2.1
- M5</OPTION> <OPTION value="2.1 RC1">2.1 RC1</OPTION> <OPTION
- value="2.1 RC2">2.1 RC2</OPTION> <OPTION value="2.1 RC3">2.1
- RC3</OPTION> <OPTION value="2.1 RC4">2.1 RC4</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION> <OPTION
- value="3.0 M1">3.0 M1</OPTION> <OPTION value="3.0 M2">3.0 M2</OPTION>
- <OPTION value="3.0 M3">3.0 M3</OPTION> <OPTION value="3.0 M4">3.0
- M4</OPTION> <OPTION value="3.0 M5">3.0 M5</OPTION> <OPTION
- value="3.0 M6">3.0 M6</OPTION> <OPTION value="3.0 M7">3.0 M7</OPTION>
- <OPTION value="3.0 M8">3.0 M8</OPTION> <OPTION value="3.0 M9">3.0
- M9</OPTION> <OPTION value="3.0 RC1">3.0 RC1</OPTION> <OPTION
- value="3.0 RC2">3.0 RC2</OPTION> <OPTION value="3.0 RC3">3.0
- RC3</OPTION> <OPTION value="3.0 RC4">3.0 RC4</OPTION> <OPTION
- value=3.0.1>3.0.1</OPTION> <OPTION value=3.0.2>3.0.2</OPTION> <OPTION
- value=3.1>3.1</OPTION> <OPTION value="3.1 M1">3.1 M1</OPTION> <OPTION
- value="3.1 M2">3.1 M2</OPTION> <OPTION value="3.1 M3">3.1 M3</OPTION>
- <OPTION value="3.1 M4">3.1 M4</OPTION> <OPTION value="3.1 M5">3.1
- M5</OPTION> <OPTION value="3.1 M6">3.1 M6</OPTION> <OPTION value=---
- selected>---</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="Check for isDisposed() in dispose after sending Dispose Calback (1GLC25X)"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=4862&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=4862&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 4862 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=4862">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 4862 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE>
-<TABLE>
- <TBODY>
- <TR>
- <TH><A href="https://bugs.eclipse.org/bugs/votehelp.html">Votes</A>: </TH>
- <TD>0&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_bug&amp;bug_id=4862">Show
- votes for this bug</A>&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user&amp;bug_id=4862">Vote
- for this bug</A> </TD></TR></TBODY></TABLE><BR><B>Additional Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>NEW&nbsp;</B> <BR><INPUT type=radio value=accept name=knob> Accept bug
-(change status to <B>ASSIGNED</B>) <BR><INPUT type=radio value=resolve
-name=knob> Resolve bug, changing <A
-href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
-onchange=document.changeform.knob[2].checked=true name=resolution> <OPTION
- value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
- <OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
- <OPTION value=REMIND>REMIND</OPTION> <OPTION
- value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
-value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
-onchange="if (this.value != '')&#10; {document.changeform.knob[3].checked=true}"
-size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
-href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
-bug to <INPUT
-onchange="if ((this.value != 'Silenio_Quarti@ca.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[4].checked=true; &#10; }"
-size=32 value=Silenio_Quarti@ca.ibm.com name=assigned_to> <BR><INPUT type=radio
-value=reassignbycomponent name=knob> Reassign bug to owner of selected component
-<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
-name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=4862">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=4862">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2001-10-11 14:24 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>Run the following example, click on the button and you get the SWT Exception wdiget is disposed.
-See Stack trace below.
-In the dispose method of a widget, we need to check that the widget has not been disposed in the Dispose callback.
-
-public static void main(String args[]){
- Display display = new Display ();
- Shell shell = new Shell();
- shell.setLayout(new org.eclipse.swt.layout.GridLayout());
- shell.setBounds(100,30, 800,600);
- shell.open();
-
- final Composite panel = new Composite(shell, SWT.BORDER);
- panel.setBounds(20,430,100,100);
-
- final Button button = new Button(panel, 0);
- button.setText("dispose button");
- button.setBounds(7,7,80,70);
- final SelectionAdapter[] selectionListener = new SelectionAdapter[1];
- selectionListener[0] = new SelectionAdapter(){
- public void widgetSelected (org.eclipse.swt.events.SelectionEvent e){
- button.dispose();
- }
- };
- button.addSelectionListener(selectionListener[0]);
-
- final DisposeListener[] disposeListener = new DisposeListener[1];
- disposeListener[0] = new DisposeListener(){
- public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e){
- button.removeDisposeListener(disposeListener[0]);
- panel.dispose();
- }
- };
- button.addDisposeListener(disposeListener[0]);
-
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
-}
-
-
-org.eclipse.swt.SWTException: Widget is disposed
- at org.eclipse.swt.SWT.error(SWT.java:1818)
- at org.eclipse.swt.SWT.error(SWT.java:1750)
- at org.eclipse.swt.widgets.Widget.error(Widget.java:379)
- at org.eclipse.swt.widgets.Control.getDisplay(Control.java:597)
- at org.eclipse.swt.widgets.Control.unsubclass(Control.java:2365)
- at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:1247)
- at org.eclipse.swt.widgets.Button.releaseWidget(Button.java:344)
- at org.eclipse.swt.widgets.Widget.dispose(Widget.java:366)
- at veronika._Scrapbook$1.widgetSelected(_Scrapbook.java:43)
- at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:85)
- at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:54)
- at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:645)
- at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1359)
- at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1160)
- at veronika._Scrapbook.main(_Scrapbook.java:58)
-Exception in thread "main"
-
-NOTES:</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862#c1" name=c1>#1</A> From
-<A href="mailto:dj_houghton@ca.ibm.com">DJ Houghton</A> 2001-10-29 16:44 -------
-</I><PRE>PRODUCT VERSION:
-2.0 007
-
-</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4862#c2" name=c2>#2</A> From
-<A href="mailto:veronika_irvine@ca.ibm.com">Veronika Irvine</A> 2004-09-24 10:09
-------- </I><PRE>In 3.1, I get a different error now on Windows:
-
-java.lang.NullPointerException
- at org.eclipse.swt.widgets.Control.deregister(Control.java:498)
- at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:1496)
- at org.eclipse.swt.widgets.Button.releaseWidget(Button.java:364)
- at org.eclipse.swt.widgets.Widget.dispose(Widget.java:368)
- at veronika.Newsgroup$1.widgetSelected(Newsgroup.java:25)
- at org.eclipse.swt.widgets.TypedListener.handleEvent
-(TypedListener.java:89)
- at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
- at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
- at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2783)
- at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2442)
- at veronika.Newsgroup.main(Newsgroup.java:40)
-</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/67395.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/67395.html
deleted file mode 100644
index ec9911002..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/67395.html
+++ /dev/null
@@ -1,390 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0051)https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 67395 - NullPointerException @ org.eclipse.jdt.internal.debug.eval.ast.engine.ASTInstructionCompiler.containsALocalType</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="67395_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="67395_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="67395_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 67395</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>NullPointerException @
- org.eclipse.jdt.internal.debug.eval.ast.engine.ASTInstructionCompiler.containsALocalType</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug
-List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20041108112414 name=delta_ts> <INPUT type=hidden value=10
-name=longdesclength> <INPUT type=hidden value=67395 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395">67395</A> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>Leo.Kuznetsov@windriver.com (Leo Kuznetsov) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT>AJDT</OPTION> <OPTION
- value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION> <OPTION
- value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT selected>JDT</OPTION>
- <OPTION value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION>
- <OPTION value=Platform>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=JDT">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Core>Core</OPTION> <OPTION
- value=Debug selected>Debug</OPTION> <OPTION value=Doc>Doc</OPTION>
- <OPTION value=Text>Text</OPTION> <OPTION value=UI>UI</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=2.0>2.0</OPTION> <OPTION value=2.0.1>2.0.1</OPTION> <OPTION
- value=2.0.2>2.0.2</OPTION> <OPTION value=2.1>2.1</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=3.0 selected>3.0</OPTION> <OPTION value=3.0.1>3.0.1</OPTION>
- <OPTION value=3.1>3.1</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><SELECT multiple size=5 name=cc> <OPTION
- value=christof_marti@ch.ibm.com>christof_marti@ch.ibm.com</OPTION>
- <OPTION value=Darin_Wright@ca.ibm.com>Darin_Wright@ca.ibm.com</OPTION>
- <OPTION
- value=Michael.Scharf@windriver.com>Michael.Scharf@windriver.com</OPTION></SELECT>
- <BR><INPUT type=checkbox name=removecc>Remove selected CCs <BR></TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>ASSIGNED</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD></TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>luc_bourlier@us.ibm.com (Luc Bourlier)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value="2.0 M1">2.0
- M1</OPTION> <OPTION value="2.0 M2">2.0 M2</OPTION> <OPTION
- value="2.0 M3">2.0 M3</OPTION> <OPTION value="2.0 M4">2.0 M4</OPTION>
- <OPTION value="2.0 M5">2.0 M5</OPTION> <OPTION value="2.0 M6">2.0
- M6</OPTION> <OPTION value="2.0 F1">2.0 F1</OPTION> <OPTION
- value="2.0 F2">2.0 F2</OPTION> <OPTION value="2.0 F3">2.0 F3</OPTION>
- <OPTION value="2.0 F4">2.0 F4</OPTION> <OPTION
- value=2.0.1>2.0.1</OPTION> <OPTION value=2.0.2>2.0.2</OPTION> <OPTION
- value=2.1>2.1</OPTION> <OPTION value="2.1 M1">2.1 M1</OPTION> <OPTION
- value="2.1 M2">2.1 M2</OPTION> <OPTION value="2.1 M3">2.1 M3</OPTION>
- <OPTION value="2.1 M4">2.1 M4</OPTION> <OPTION value="2.1 M5">2.1
- M5</OPTION> <OPTION value="2.1 RC1">2.1 RC1</OPTION> <OPTION
- value="2.1 RC2">2.1 RC2</OPTION> <OPTION value="2.1 RC3">2.1
- RC3</OPTION> <OPTION value="2.1 RC4">2.1 RC4</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION> <OPTION
- value="3.0 M1">3.0 M1</OPTION> <OPTION value="3.0 M2">3.0 M2</OPTION>
- <OPTION value="3.0 M3">3.0 M3</OPTION> <OPTION value="3.0 M4">3.0
- M4</OPTION> <OPTION value="3.0 M5">3.0 M5</OPTION> <OPTION
- value="3.0 M6">3.0 M6</OPTION> <OPTION value="3.0 M7">3.0 M7</OPTION>
- <OPTION value="3.0 M8">3.0 M8</OPTION> <OPTION value="3.0 M9">3.0
- M9</OPTION> <OPTION value="3.0 RC1">3.0 RC1</OPTION> <OPTION
- value="3.0 RC2">3.0 RC2</OPTION> <OPTION value="3.0 RC3">3.0
- RC3</OPTION> <OPTION value="3.0 RC4">3.0 RC4</OPTION> <OPTION
- value=3.0.1>3.0.1</OPTION> <OPTION value=3.0.2>3.0.2</OPTION> <OPTION
- value=3.1>3.1</OPTION> <OPTION value="3.1 M1">3.1 M1</OPTION> <OPTION
- value="3.1 M2">3.1 M2</OPTION> <OPTION value="3.1 M3">3.1 M3</OPTION>
- <OPTION value="3.1 M4" selected>3.1 M4</OPTION> <OPTION
- value="3.1 M5">3.1 M5</OPTION> <OPTION value="3.1 M6">3.1 M6</OPTION>
- <OPTION value=--->---</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="NullPointerException @ org.eclipse.jdt.internal.debug.eval.ast.engine.ASTInstructionCompiler.containsALocalType"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=67395&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=67395&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 67395 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=67395">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 67395 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE>
-<TABLE>
- <TBODY>
- <TR>
- <TH><A href="https://bugs.eclipse.org/bugs/votehelp.html">Votes</A>: </TH>
- <TD>0&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_bug&amp;bug_id=67395">Show
- votes for this bug</A>&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user&amp;bug_id=67395">Vote
- for this bug</A> </TD></TR></TBODY></TABLE><BR><B>Additional Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>ASSIGNED&nbsp;</B> <BR><INPUT type=radio value=resolve name=knob> Resolve
-bug, changing <A
-href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
-onchange=document.changeform.knob[1].checked=true name=resolution> <OPTION
- value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
- <OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
- <OPTION value=REMIND>REMIND</OPTION> <OPTION
- value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
-value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
-onchange="if (this.value != '')&#10; {document.changeform.knob[2].checked=true}"
-size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
-href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
-bug to <INPUT
-onchange="if ((this.value != 'luc_bourlier@us.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[3].checked=true; &#10; }"
-size=32 value=luc_bourlier@us.ibm.com name=assigned_to> <BR><INPUT type=radio
-value=reassignbycomponent name=knob> Reassign bug to owner of selected component
-<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
-name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=67395">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=67395">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2004-06-15 18:14 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>java.lang.NullPointerException
-at
-org.eclipse.jdt.internal.debug.eval.ast.engine.ASTInstructionCompiler.containsA
-LocalType(ASTInstructionCompiler.java:331)
-at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTInstructionCompiler.visit
-(ASTInstructionCompiler.java:2075)
-at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:234)
-at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2456)
-at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2503)
-at org.eclipse.jdt.core.dom.ReturnStatement.accept0(ReturnStatement.java:133)
-at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2456)
-at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2526)
-at org.eclipse.jdt.core.dom.Block.accept0(Block.java:133)
-at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2456)
-at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2503)
-at org.eclipse.jdt.core.dom.MethodDeclaration.accept0
-(MethodDeclaration.java:499)
-at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2456)
-at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2526)
-at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:474)
-at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2456)
-at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2526)
-at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:290)
-at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2456)
-at
-org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.createExpres
-sionFromAST(ASTEvaluationEngine.java:251)
-at
-org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.getCompiledE
-xpression(ASTEvaluationEngine.java:156)
-at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.evaluate
-(ASTEvaluationEngine.java:73)
-at
-org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate$EvaluationRunnabl
-e.run(JavaWatchExpressionDelegate.java:144)
-at org.eclipse.jdt.internal.debug.core.model.JDIThread$ThreadJob.run
-(JDIThread.java:2510)
-at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)</PRE><BR><I>-------
-Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c1" name=c1>#1</A>
-From <A href="mailto:john_arthorne@ca.ibm.com">John Arthorne</A> 2004-06-15
-18:17 ------- </I><PRE>Please include the Eclipse build number in the bug report. Also, it looks like
-you are evaluating a watch expression. Please include/describe the expression,
-and say if it is reproducible.</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c2" name=c2>#2</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-06-16 13:38
-------- </I><PRE>Do you have the expression that caused this problem?</PRE><BR><I>-------
-Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c3" name=c3>#3</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-06-17 12:26
-------- </I><PRE>*** <STRIKE><A title="RESOLVED DUPLICATE - NPE while evaluating watch expression" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67664">Bug 67664</A></STRIKE> has been marked as a duplicate of this bug. ***</PRE><BR><I>-------
-Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c4" name=c4>#4</A>
-From <A href="mailto:Leo.Kuznetsov@windriver.com">Leo Kuznetsov</A> 2004-06-17
-15:53 ------- </I><PRE>This was a function call:
-
-Sequent.getCurrent().toDebugString()
-
-where toDebugString() returns String</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c5" name=c5>#5</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-06-23 09:24
-------- </I><PRE>Deferred</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c6" name=c6>#6</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-08-03 14:57
-------- </I><PRE>*** <STRIKE><A title="RESOLVED DUPLICATE - NPE from watch expression evaluation" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=70615">Bug 70615</A></STRIKE> has been marked as a duplicate of this bug. ***</PRE><BR><I>-------
-Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c7" name=c7>#7</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-08-03 14:57
-------- </I><PRE>open for 3.1</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c8" name=c8>#8</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-08-03 14:58
-------- </I><PRE>Luc, please advise if this should be fixed in 3.0.1</PRE><BR><I>-------
-Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67395#c9" name=c9>#9</A>
-From <A href="mailto:Darin_Wright@ca.ibm.com">Darin Wright</A> 2004-08-12 09:26
-------- </I><PRE>*** <STRIKE><A title="RESOLVED DUPLICATE - NPE in ASTInstructionCompiler.containsALocalType" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71851">Bug 71851</A></STRIKE> has been marked as a duplicate of this bug. ***</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76146.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76146.html
deleted file mode 100644
index f806fe8aa..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76146.html
+++ /dev/null
@@ -1,406 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0051)https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 76146 - NPE using quickfix in Aspect opened with java editor</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="76146_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="76146_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="76146_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 76146</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>NPE using quickfix in Aspect opened with java
- editor</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20041013045125 name=delta_ts> <INPUT type=hidden value=1
-name=longdesclength> <INPUT type=hidden value=76146 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146">76146</A> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>hawkinsh@uk.ibm.com (Helen Hawkins) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT selected>AJDT</OPTION>
- <OPTION value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION>
- <OPTION value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
- value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
- value=Platform>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=AJDT">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Core>Core</OPTION> <OPTION
- value=Doc>Doc</OPTION> <OPTION value=UI selected>UI</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.1.11>1.1.11</OPTION> <OPTION
- value=1.1.12 selected>1.1.12</OPTION> <OPTION value=1.1.3>1.1.3</OPTION>
- <OPTION value=1.1.4>1.1.4</OPTION> <OPTION value=1.1.7>1.1.7</OPTION>
- <OPTION value=1.2.0>1.2.0</OPTION> <OPTION value="1.2.0 M1">1.2.0
- M1</OPTION> <OPTION value=unspecified>unspecified</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>NEW</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD></TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>mchapman@uk.ibm.com (Matt Chapman)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value=---
- selected>---</OPTION> <OPTION value=1.1.12>1.1.12</OPTION> <OPTION
- value=1.1.13>1.1.13</OPTION> <OPTION value=1.1.3>1.1.3</OPTION> <OPTION
- value=1.1.4>1.1.4</OPTION> <OPTION value=1.2.0>1.2.0</OPTION> <OPTION
- value="1.2.0 M1">1.2.0 M1</OPTION> <OPTION value="1.2.0 M2">1.2.0
- M2</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="NPE using quickfix in Aspect opened with java editor"
- name=short_desc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76146&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76146&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 76146 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=76146">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 76146 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE><BR><B>Additional
-Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>NEW&nbsp;</B> <BR><INPUT type=radio value=accept name=knob> Accept bug
-(change status to <B>ASSIGNED</B>) <BR><INPUT type=radio value=resolve
-name=knob> Resolve bug, changing <A
-href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
-onchange=document.changeform.knob[2].checked=true name=resolution> <OPTION
- value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
- <OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
- <OPTION value=REMIND>REMIND</OPTION> <OPTION
- value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
-value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
-onchange="if (this.value != '')&#10; {document.changeform.knob[3].checked=true}"
-size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
-href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
-bug to <INPUT
-onchange="if ((this.value != 'mchapman@uk.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[4].checked=true; &#10; }"
-size=32 value=mchapman@uk.ibm.com name=assigned_to> <BR><INPUT type=radio
-value=reassignbycomponent name=knob> Reassign bug to owner of selected component
-<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
-name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=76146">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=76146">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2004-10-13 04:51 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>To recreate:
-
-- Check out the QuickFix project from ajdt.test project
-- Open TestAspect.java in the Java Editor (right click &gt; open with &gt; Java
-Editor)
-- Click on the lightbulb with the error marker (the same line as File f = new
-File("tmp");
-- An Internal Error appear in the Error log with the following stack trace:
-
-
-
-java.lang.NullPointerException
-at
-org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsSubProcessor.getT
-ypeProposals(UnresolvedElementsSubProcessor.java:395)
-at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.process
-(QuickFixProcessor.java:270)
-at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.getCorrections
-(QuickFixProcessor.java:202)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.collectCorr
-ections(JavaCorrectionProcessor.java:240)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.processAnno
-tations(JavaCorrectionProcessor.java:208)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.computeComp
-letionProposals(JavaCorrectionProcessor.java:177)
-at
-org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposal
-s(ContentAssistant.java:1472)
-at
-org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals
-(CompletionProposalPopup.java:242)
-at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
-(CompletionProposalPopup.java:238)
-at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run
-(CompletionProposalPopup.java:197)
-at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
-at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals
-(CompletionProposalPopup.java:192)
-at
-org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions
-(ContentAssistant.java:1320)
-at
-org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionAssistant.showPossibl
-eCompletions(JavaCorrectionAssistant.java:159)
-at
-org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewe
-r.doOperation(CompilationUnitEditor.java:184)
-at org.eclipse.jdt.internal.ui.javaeditor.JavaSelectAnnotationRulerAction.run
-(JavaSelectAnnotationRulerAction.java:78)
-at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run
-(AbstractRulerActionDelegate.java:99)
-at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:276)
-at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:238)
-at org.eclipse.ui.texteditor.AbstractTextEditor$11.triggerAction
-(AbstractTextEditor.java:2110)
-at org.eclipse.ui.texteditor.AbstractTextEditor$11.mouseUp
-(AbstractTextEditor.java:2117)
-at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:136)
-at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
-at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
-at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
-at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
-at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
-at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
-at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
-at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
-at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
-at org.eclipse.core.internal.runtime.PlatformActivator$1.run
-(PlatformActivator.java:335)
-at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
-at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
-at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-at sun.reflect.NativeMethodAccessorImpl.invoke
-(NativeMethodAccessorImpl.java:39)
-at sun.reflect.DelegatingMethodAccessorImpl.invoke
-(DelegatingMethodAccessorImpl.java:25)
-at java.lang.reflect.Method.invoke(Method.java:324)
-at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
-at org.eclipse.core.launcher.Main.run(Main.java:644)
-at org.eclipse.core.launcher.Main.main(Main.java:628)
-
-
-Looking at the jdt code in UnresolvedElementsSubProcessor.java, at line 395,
-the parent field is null:
-
- ASTNode parent= selectedNode.getParent();
- while (parent.getLength() == selectedNode.getLength()) { // line 395
- parent= parent.getParent();
- }
-
-There just needs to be a null check as there is above:
-
-
- ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
- if (selectedNode == null) {
- return;
- }
- int kind= SimilarElementsRequestor.ALL_TYPES;
-
- ASTNode parent= selectedNode.getParent();
- while (parent.getLength() == selectedNode.getLength()) {
- parent= parent.getParent();
- }
-
-should become:
-
-
- ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
- if (selectedNode == null) {
- return;
- }
- int kind= SimilarElementsRequestor.ALL_TYPES;
-
- ASTNode parent= selectedNode.getParent();
- if (parent == null) {
- return;
- }
- while (parent.getLength() == selectedNode.getLength()) {
- parent= parent.getParent();
- }
-
-
-This needs to be raised as a jdt bug, since we don't pass through any ajdt
-code in order to get here.
-
-Raising this bug against ajdt is just for tracking.
-
-(note this happens on 1.1.12, but also on the latest AJDT dev build).</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76388.html b/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76388.html
deleted file mode 100644
index 1e2c41aa0..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/testdata/reports-stacktrace/76388.html
+++ /dev/null
@@ -1,426 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0051)https://bugs.eclipse.org/bugs/show_bug.cgi?id=76388 -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 76388 - Assertion failed during pull up refactoring</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
-href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
-rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
-href="buglist.cgi?regetlastlist=1" rel=Contents>
-<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="76388_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="76388_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="76388_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
- 76388</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>Assertion failed during pull up
- refactoring</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug List:</B>
-<A href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
-<HR>
-
-<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
-value=20041019085725 name=delta_ts> <INPUT type=hidden value=3
-name=longdesclength> <INPUT type=hidden value=76388 name=id>
-<TABLE cellSpacing=1 cellPadding=1 border=0>
- <TBODY>
- <TR>
- <TD align=right><B>Bug#:</B> </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76388">76388</A> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Platform:</B> </TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Reporter:</B> </TD>
- <TD>silvio_boehler@ca.ibm.com (Silvio Böhler) </TD></TR>
- <TR>
- <TD align=right><B>Product:</B> </TD>
- <TD><SELECT name=product> <OPTION value=AJDT>AJDT</OPTION> <OPTION
- value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION> <OPTION
- value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
- value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
- <OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
- value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
- value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
- value=Hyades>Hyades</OPTION> <OPTION value=JDT selected>JDT</OPTION>
- <OPTION value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION>
- <OPTION value=Platform>Platform</OPTION> <OPTION
- value=Pollinate>Pollinate</OPTION> <OPTION
- value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
- <OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
- Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
- value=XSD>XSD</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>OS:</B> </TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION
- value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
- value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Add&nbsp;CC:</B> </TD>
- <TD><INPUT size=30 name=newcc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=JDT">Component</A>:
- </B></TD>
- <TD><SELECT name=component> <OPTION value=Core>Core</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Text>Text</OPTION> <OPTION value=UI selected>UI</OPTION></SELECT>
-</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B>Version:</B> </TD>
- <TD><SELECT name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=2.0>2.0</OPTION> <OPTION value=2.0.1>2.0.1</OPTION> <OPTION
- value=2.0.2>2.0.2</OPTION> <OPTION value=2.1>2.1</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=3.0 selected>3.0</OPTION> <OPTION value=3.0.1>3.0.1</OPTION>
- <OPTION value=3.1>3.1</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
- <TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
- <TD>NEW</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
- </TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
- value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
- </B></TD>
- <TD></TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
- </TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
- </B></TD>
- <TD>dirk_baeumer@ch.ibm.com (Dirk Baeumer)</TD>
- <TD>&nbsp;</TD>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
- Milestone</A>: </B></TD>
- <TD><SELECT name=target_milestone> <OPTION value="2.0 M1">2.0
- M1</OPTION> <OPTION value="2.0 M2">2.0 M2</OPTION> <OPTION
- value="2.0 M3">2.0 M3</OPTION> <OPTION value="2.0 M4">2.0 M4</OPTION>
- <OPTION value="2.0 M5">2.0 M5</OPTION> <OPTION value="2.0 M6">2.0
- M6</OPTION> <OPTION value="2.0 F1">2.0 F1</OPTION> <OPTION
- value="2.0 F2">2.0 F2</OPTION> <OPTION value="2.0 F3">2.0 F3</OPTION>
- <OPTION value="2.0 F4">2.0 F4</OPTION> <OPTION
- value=2.0.1>2.0.1</OPTION> <OPTION value=2.0.2>2.0.2</OPTION> <OPTION
- value=2.1>2.1</OPTION> <OPTION value="2.1 M1">2.1 M1</OPTION> <OPTION
- value="2.1 M2">2.1 M2</OPTION> <OPTION value="2.1 M3">2.1 M3</OPTION>
- <OPTION value="2.1 M4">2.1 M4</OPTION> <OPTION value="2.1 M5">2.1
- M5</OPTION> <OPTION value="2.1 RC1">2.1 RC1</OPTION> <OPTION
- value="2.1 RC2">2.1 RC2</OPTION> <OPTION value="2.1 RC3">2.1
- RC3</OPTION> <OPTION value="2.1 RC4">2.1 RC4</OPTION> <OPTION
- value=2.1.1>2.1.1</OPTION> <OPTION value=2.1.2>2.1.2</OPTION> <OPTION
- value=2.1.3>2.1.3</OPTION> <OPTION value=3.0>3.0</OPTION> <OPTION
- value="3.0 M1">3.0 M1</OPTION> <OPTION value="3.0 M2">3.0 M2</OPTION>
- <OPTION value="3.0 M3">3.0 M3</OPTION> <OPTION value="3.0 M4">3.0
- M4</OPTION> <OPTION value="3.0 M5">3.0 M5</OPTION> <OPTION
- value="3.0 M6">3.0 M6</OPTION> <OPTION value="3.0 M7">3.0 M7</OPTION>
- <OPTION value="3.0 M8">3.0 M8</OPTION> <OPTION value="3.0 M9">3.0
- M9</OPTION> <OPTION value="3.0 RC1">3.0 RC1</OPTION> <OPTION
- value="3.0 RC2">3.0 RC2</OPTION> <OPTION value="3.0 RC3">3.0
- RC3</OPTION> <OPTION value="3.0 RC4">3.0 RC4</OPTION> <OPTION
- value=3.0.1>3.0.1</OPTION> <OPTION value=3.0.2>3.0.2</OPTION> <OPTION
- value=3.1>3.1</OPTION> <OPTION value="3.1 M1">3.1 M1</OPTION> <OPTION
- value="3.1 M2">3.1 M2</OPTION> <OPTION value="3.1 M3">3.1 M3</OPTION>
- <OPTION value="3.1 M4">3.1 M4</OPTION> <OPTION value="3.1 M5">3.1
- M5</OPTION> <OPTION value="3.1 M6">3.1 M6</OPTION> <OPTION value=---
- selected>---</OPTION></SELECT> </TD>
- <TD>&nbsp;</TD></TR>
- <TR>
- <TD align=right><B>URL: </B></TD>
- <TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><B>Summary:</B> </TD>
- <TD colSpan=7><INPUT size=60
- value="Assertion failed during pull up refactoring" name=short_desc>
-</TD></TR>
- <TR>
- <TD align=right><B><A
- href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
- </B>
- <TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
-<TABLE cellSpacing=0 cellPadding=4 border=1>
- <TBODY>
- <TR>
- <TH align=left bgColor=#cccccc>Attachment</TH>
- <TH align=left bgColor=#cccccc>Type</TH>
- <TH align=left bgColor=#cccccc>Modified</TH>
- <TH align=left bgColor=#cccccc>Status</TH>
- <TH align=left bgColor=#cccccc>Actions</TH></TR>
- <TR>
- <TD colSpan=4><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76388&amp;action=enter">Create
- a New Attachment</A> (proposed patch, testcase, etc.) </TD>
- <TD><A
- href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76388&amp;action=viewall">View
- All</A> </TD></TR></TBODY></TABLE><BR>
-<TABLE>
- <TBODY>
- <TR>
- <TH align=right>Bug 76388 depends on:</TH>
- <TD></TD>
- <TD><INPUT name=dependson> </TD>
- <TD rowSpan=2><A
- href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=76388">Show
- dependency tree</A> </TD></TR>
- <TR>
- <TH align=right>Bug 76388 blocks:</TH>
- <TD></TD>
- <TD><INPUT name=blocked> </TD></TR></TBODY></TABLE>
-<TABLE>
- <TBODY>
- <TR>
- <TH><A href="https://bugs.eclipse.org/bugs/votehelp.html">Votes</A>: </TH>
- <TD>0&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_bug&amp;bug_id=76388">Show
- votes for this bug</A>&nbsp;&nbsp;&nbsp; <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user&amp;bug_id=76388">Vote
- for this bug</A> </TD></TR></TBODY></TABLE><BR><B>Additional Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
-<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
-<B>NEW&nbsp;</B> <BR><INPUT type=radio value=accept name=knob> Accept bug
-(change status to <B>ASSIGNED</B>) <BR><INPUT type=radio value=resolve
-name=knob> Resolve bug, changing <A
-href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
-onchange=document.changeform.knob[2].checked=true name=resolution> <OPTION
- value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
- <OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
- <OPTION value=REMIND>REMIND</OPTION> <OPTION
- value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
-value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
-onchange="if (this.value != '')&#10; {document.changeform.knob[3].checked=true}"
-size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
-href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
-bug to <INPUT
-onchange="if ((this.value != 'dirk_baeumer@ch.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[4].checked=true; &#10; }"
-size=32 value=dirk_baeumer@ch.ibm.com name=assigned_to> <BR><INPUT type=radio
-value=reassignbycomponent name=knob> Reassign bug to owner of selected component
-<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
-name=form_name>
-<P><FONT size=+1><B><A
-href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=76388">View Bug
-Activity</A> &nbsp; | &nbsp; <A
-href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=76388">Format For
-Printing</A> </B></FONT></P></FORM>
-<TABLE>
- <TBODY>
- <TR>
- <TD align=left><B><A
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76388#c0"
- name=c0>Description</A>: </B></TD>
- <TD align=right width="100%">Opened: 2004-10-15 15:30 </TD></TR></TBODY></TABLE>
-<HR>
-<!-- 1.0@bugzilla.org --><PRE>I was doing some pull up refactorings.
-
-!SESSION Oct 15, 2004 15:08:42.572 ---------------------------------------------
-eclipse.buildId=I200410130800
-java.fullversion=J2RE 1.4.2 IBM J9 2.2 Windows XP x86-32 j9n142-20040831 (JIT
-enabled)
-J9VM - 20040827_2136_lHdSMR
-JIT - r7_level20040827_1801
-BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
-
-!ENTRY org.eclipse.core.runtime 4 2 Oct 15, 2004 15:08:42.572
-!MESSAGE Problems occurred when invoking code from plug-in:
-"org.eclipse.core.runtime".
-!STACK 0
-org.eclipse.jface.text.Assert$AssertionFailedException: Assertion failed:
- at org.eclipse.jface.text.Assert.isTrue(Assert.java:177)
- at org.eclipse.jface.text.Assert.isTrue(Assert.java:162)
- at org.eclipse.text.edits.TextEdit.internalSetLength(TextEdit.java:712)
- at org.eclipse.text.edits.MultiTextEdit.defineRegion(MultiTextEdit.java:194)
- at org.eclipse.text.edits.TextEditProcessor.&lt;init&gt;(TextEditProcessor.java:65)
- at org.eclipse.text.edits.TextEditProcessor.&lt;init&gt;(TextEditProcessor.java:56)
- at
-org.eclipse.ltk.core.refactoring.TextChange.createTextEditProcessor(TextChange.java:638)
- at
-org.eclipse.ltk.core.refactoring.TextChange.getPreviewDocument(TextChange.java:611)
- at
-org.eclipse.ltk.core.refactoring.TextChange.getPreviewDocument(TextChange.java:538)
- at
-org.eclipse.ltk.core.refactoring.TextChange.getPreviewContent(TextChange.java:553)
- at
-org.eclipse.ltk.internal.ui.refactoring.TextChangePreviewViewer.setInput(TextChangePreviewViewer.java:190)
- at
-org.eclipse.ltk.internal.ui.refactoring.DefaultChangeElement.feedInput(DefaultChangeElement.java:57)
- at
-org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.showPreview(PreviewWizardPage.java:370)
- at
-org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.access$2(PreviewWizardPage.java:355)
- at
-org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage$2.selectionChanged(PreviewWizardPage.java:346)
- at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:163)
- at
-org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616)
- at org.eclipse.core.runtime.Platform.run(Platform.java:747)
- at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:161)
- at
-org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1613)
- at
-org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1304)
- at org.eclipse.jface.viewers.Viewer.setSelection(Viewer.java:380)
- at
-org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.setVisible(PreviewWizardPage.java:283)
- at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1024)
- at org.eclipse.jface.wizard.WizardDialog.access$2(WizardDialog.java:1007)
- at org.eclipse.jface.wizard.WizardDialog$4.run(WizardDialog.java:997)
- at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
- at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:995)
- at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:747)
- at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:338)
- at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:543)
- at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
- at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
- at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:800)
- at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2784)
- at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2443)
- at org.eclipse.jface.window.Window.runEventLoop(Window.java:706)
- at org.eclipse.jface.window.Window.open(Window.java:684)
- at
-org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:125)
- at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
- at
-org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:138)
- at
-org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:40)
- at org.eclipse.jdt.ui.actions.PullUpAction.startRefactoring(PullUpAction.java:209)
- at org.eclipse.jdt.ui.actions.PullUpAction.run(PullUpAction.java:151)
- at
-org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:216)
- at
-org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:188)
- at org.eclipse.jface.action.Action.runWithEvent(Action.java:988)
- at
-org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:946)
- at
-org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:896)
- at
-org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:810)
- at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
- at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:800)
- at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2784)
- at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2443)
- at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443)
- at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414)
- at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271)
- at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
- at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
- at
-org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
- at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
- at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
- at
-sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
- at java.lang.reflect.Method.invoke(Method.java:391)
- at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
- at org.eclipse.core.launcher.Main.run(Main.java:704)
- at org.eclipse.core.launcher.Main.main(Main.java:688)</PRE><BR><I>-------
-Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76388#c1" name=c1>#1</A>
-From <A href="mailto:dirk_baeumer@ch.ibm.com">Dirk Baeumer</A> 2004-10-19 06:06
-------- </I><PRE>Silvio, any steps to reproduce or any additional entries in the log that
-contain exceptions from text edits ?</PRE><BR><I>------- Additional Comment <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76388#c2" name=c2>#2</A>
-From <A href="mailto:silvio_boehler@ca.ibm.com">Silvio Böhler</A> 2004-10-19
-08:57 ------- </I><PRE>No further entries and no reproducable steps unfortunately, sorry.</PRE>
-<HR>
-<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
-href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
-not in your list) &nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
-href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
- </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center align=right><A
- href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
- | <A
- href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.ui/.classpath b/org.eclipse.mylyn.bugzilla.ui/.classpath
deleted file mode 100644
index 8dae74326..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.classpath
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="**/TasksUiImages"/>
- <accessrule kind="accessible" pattern="**/TaskListColorsAndFonts"/>
- <accessrule kind="accessible" pattern="**/TaskListPreferenceConstants"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <accessrules>
- <accessrule kind="nonaccessible" pattern="com/sun/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.bugzilla.ui/.cvsignore b/org.eclipse.mylyn.bugzilla.ui/.cvsignore
deleted file mode 100644
index ba077a403..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.bugzilla.ui/.project b/org.eclipse.mylyn.bugzilla.ui/.project
deleted file mode 100644
index 78cc25136..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.bugzilla.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1314ffa2f..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:46 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 78dfeb94a..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,31 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.bugzilla.ui; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.compare,
- org.eclipse.ui.views,
- org.eclipse.ui.forms,
- org.eclipse.jface.text,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.mylyn.bugzilla.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.mylyn.internal.bugzilla.ui;x-internal:=true,
- org.eclipse.mylyn.internal.bugzilla.ui.action;x-internal:=true,
- org.eclipse.mylyn.internal.bugzilla.ui.editor;x-internal:=true,
- org.eclipse.mylyn.internal.bugzilla.ui.search;x-internal:=true,
- org.eclipse.mylyn.internal.bugzilla.ui.tasklist;x-internal:=true,
- org.eclipse.mylyn.internal.bugzilla.ui.wizard;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ClassPath: .
-Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.bugzilla.ui/about.html b/org.eclipse.mylyn.bugzilla.ui/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.ui/build-user.xml b/org.eclipse.mylyn.bugzilla.ui/build-user.xml
deleted file mode 100644
index 6097713f2..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/build-user.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<target name="help">
- <echo message="Please run: $ ant -v -projecthelp"/>
-</target> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.ui/build.properties b/org.eclipse.mylyn.bugzilla.ui/build.properties
deleted file mode 100644
index d4538f49c..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2008 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
-###############################################################################
-
-bin.includes = META-INF/,\
- plugin.xml,\
- icons/,\
- about.html,\
- .,\
- plugin.properties
-src.includes = META-INF/,\
- about.html
-jre.compilation.profile = J2SE-1.5
-source.. = src/
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-comment.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-comment.gif
deleted file mode 100644
index 97bbdf7dd..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-comment.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-dirty.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-dirty.gif
deleted file mode 100644
index 8628881c7..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-dirty.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-favorite.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-favorite.gif
deleted file mode 100644
index 6830e3348..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-favorite.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-new.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-new.gif
deleted file mode 100644
index 312ca8f9d..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search-new.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search-new.gif
deleted file mode 100644
index 8ac5e5706..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search.gif
deleted file mode 100644
index b70606376..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-search.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-small.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-small.gif
deleted file mode 100644
index 761b283ff..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug-small.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug.gif
deleted file mode 100644
index 54525a775..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/bug.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-conflicting.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-conflicting.gif
deleted file mode 100644
index d13a35640..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-conflicting.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-incoming.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-incoming.gif
deleted file mode 100644
index f74cffb45..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-incoming.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-outgoing.gif b/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-outgoing.gif
deleted file mode 100644
index 0c5a35cfa..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/elcl16/overlay-outgoing.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-new.gif b/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-new.gif
deleted file mode 100644
index 04f3028c2..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-refresh.gif b/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-refresh.gif
deleted file mode 100644
index bb8538b39..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug-refresh.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug.gif b/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug.gif
deleted file mode 100644
index 71b1baba1..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-bug.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-remote.gif b/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-remote.gif
deleted file mode 100644
index d0d46a007..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-remote.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository-new.gif b/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository-new.gif
deleted file mode 100644
index 5f3396137..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository.gif b/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository.gif
deleted file mode 100644
index 78470a36f..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/etool16/task-repository.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/bugzilla-logo.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/bugzilla-logo.gif
deleted file mode 100644
index 1ac3a0327..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/bugzilla-logo.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bug.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bug.gif
deleted file mode 100644
index 692d2facd..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bug.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bugzilla.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bugzilla.gif
deleted file mode 100644
index f220eebc4..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-bugzilla.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-critical.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-critical.gif
deleted file mode 100644
index 41497b1df..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-critical.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-enhancement.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-enhancement.gif
deleted file mode 100644
index 9a75b1efe..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-enhancement.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-feature.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-feature.gif
deleted file mode 100644
index 45f7a7644..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-feature.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-major.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-major.gif
deleted file mode 100644
index 2ec19fb9d..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-major.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-minor.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-minor.gif
deleted file mode 100644
index 376dbb403..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-minor.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-normal.gif b/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-normal.gif
deleted file mode 100644
index d582fe0de..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/eview16/overlay-normal.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/find.gif b/org.eclipse.mylyn.bugzilla.ui/icons/find.gif
deleted file mode 100644
index 2b645a88f..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/find.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/icons/wizban/bug-wizard.gif b/org.eclipse.mylyn.bugzilla.ui/icons/wizban/bug-wizard.gif
deleted file mode 100644
index ec6d66ce3..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/icons/wizban/bug-wizard.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.bugzilla.ui/plugin.properties b/org.eclipse.mylyn.bugzilla.ui/plugin.properties
deleted file mode 100644
index 2f190eda4..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/plugin.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-#Properties file for org.eclipse.mylyn.bugzilla.ui
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Bugzilla Connector UI
-
-bugzilla.repository.name=Bugzilla Repository
-BugzillaRepositoryConnector.name=Bugzilla Repository Connector
-tasklist.BugzillaConnectorUi.name=Bugzilla Repository Ui
diff --git a/org.eclipse.mylyn.bugzilla.ui/plugin.xml b/org.eclipse.mylyn.bugzilla.ui/plugin.xml
deleted file mode 100644
index b8a00f2fe..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/plugin.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
- <extension
- id="org.eclipse.mylyn.bugzilla.repository"
- name="%bugzilla.repository.name"
- point="org.eclipse.mylyn.tasks.ui.repositories">
-
- <connectorCore
- class="org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector"
- id="org.eclipse.mylyn.bugzilla.tasklist.repositories"
- name="%BugzillaRepositoryConnector.name"/>
-
- <connectorUi
- brandingIcon="icons/eview16/bugzilla-logo.gif"
- class="org.eclipse.mylyn.internal.bugzilla.ui.tasklist.BugzillaConnectorUi"
- name="%tasklist.BugzillaConnectorUi.name"
- overlayIcon="icons/eview16/overlay-bugzilla.gif"/>
-
- <taskListMigrator
- class="org.eclipse.mylyn.internal.bugzilla.ui.tasklist.BugzillaTaskListMigrator"/>
- </extension>
- <extension
- point="org.eclipse.mylyn.bugzilla.core.languages">
- <!-- <language
- name="en">
- <languageAttribute command="error_login" response="Login"/>
- <languageAttribute command="error_login" response="log in"/>
- <languageAttribute command="error_login" response="check e-mail"/>
- <languageAttribute command="error_login" response="Invalid Username Or Password"/>
- <languageAttribute command="error_collision" response="Mid-air collision!"/>
- <languageAttribute command="error_comment_required" response="Comment Required"/>
- <languageAttribute command="error_logged_out" response="logged out"/>
- <languageAttribute command="bad_login" response="Login"/>
- <languageAttribute command="bad_login" response="log in"/>
- <languageAttribute command="bad_login" response="check e-mail"/>
- <languageAttribute command="bad_login" response="Invalid Username Or Password"/>
- <languageAttribute command="bad_login" response="error"/>
- <languageAttribute command="processed" response="processed"/>
- <languageAttribute command="changes_submitted" response="Changes submitted"/>
- <languageAttribute command="changes_submitted" response="added to Bug"/>
- </language>
- -->
- <language
- name="de">
- <languageAttribute command="error_login" response="Anmeldename erforderlich"/>
- <languageAttribute command="error_login" response="check e-mail"/>
- <languageAttribute command="error_login" response="Ungültiger Benutzername oder ungültiges Passwort"/>
- <languageAttribute command="error_collision" response="Kollision!"/>
- <languageAttribute command="error_comment_required" response="Kommentar erforderlich"/>
- <languageAttribute command="error_logged_out" response="Abgemeldet"/>
- <languageAttribute command="bad_login" response="Anmeldename erforderlich"/>
- <languageAttribute command="bad_login" response="check e-mail"/>
- <languageAttribute command="bad_login" response="Ungültiger Benutzername oder ungültiges Passwort"/>
- <languageAttribute command="bad_login" response="error"/>
- <languageAttribute command="processed" response="processed"/>
- <languageAttribute command="changes_submitted" response="Changes submitted"/>
- <languageAttribute command="changes_submitted" response="added to Bug"/>
- <languageAttribute command="bug" response="Bug"/>
- <languageAttribute command="bug" response="Issue"/>
- <languageAttribute command="submitted" response="Submitted"/>
- <languageAttribute command="submitted" response="posted"/>
- <languageAttribute command="suspicious_action" response="Suspicious action"/>
- </language>
- </extension>
-
- <extension
- point="org.eclipse.mylyn.tasks.ui.editors">
- <pageFactory
- class="org.eclipse.mylyn.internal.bugzilla.ui.editor.BugzillaTaskEditorPageFactory"
- id="org.eclipse.mylyn.bugzilla.ui.pageFactory">
- </pageFactory>
- </extension>
-
- <extension point = "org.eclipse.ui.popupMenus">
- <objectContribution
- adaptable="false"
- id="org.eclipse.mylyn.bugzilla.ui.contribution.attachment"
- objectClass="org.eclipse.mylyn.tasks.core.ITaskAttachment">
- <action
- class="org.eclipse.mylyn.internal.bugzilla.ui.action.BugzillaNotObsoleteAttachmentAction"
- enablesFor="*"
- id="org.eclipse.mylyn.bugzilla.ui.contribution.attachment.notobsolete"
- label="Mark not obsolete"
- menubarPath="org.eclipse.mylyn.bugzilla.ui.attachments.mark/markadditions"
- tooltip="Mark attachment as not obsolete">
- </action>
- <action
- class="org.eclipse.mylyn.internal.bugzilla.ui.action.BugzillaObsoleteAttachmentAction"
- enablesFor="*"
- id="org.eclipse.mylyn.bugzilla.ui.contribution.attachment.obsolete"
- label="Mark obsolete"
- menubarPath="org.eclipse.mylyn.bugzilla.ui.attachments.mark/markadditions"
- tooltip="Mark attachment as obsolete">
- </action>
- <menu
- id="org.eclipse.mylyn.bugzilla.ui.attachments.mark"
- label="Mark as"
- path="markadditions">
- </menu>
- </objectContribution>
- </extension>
-
-
-</plugin>
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaImages.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaImages.java
deleted file mode 100644
index b49311aee..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaImages.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Shawn Minto
- * @author Mik Kersten
- */
-public class BugzillaImages {
-
- private static ImageRegistry imageRegistry;
-
- private static final URL baseURL = BugzillaUiPlugin.getDefault().getBundle().getEntry("/icons/"); //$NON-NLS-1$
-
- public static final String T_ELCL = "elcl16"; //$NON-NLS-1$
-
- public static final String T_TOOL = "etool16"; //$NON-NLS-1$
-
- public static final String T_VIEW = "eview16"; //$NON-NLS-1$
-
- public static final ImageDescriptor OVERLAY_BUGZILLA = create(T_VIEW, "overlay-bugzilla.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor BUG = create(T_ELCL, "bug.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor BUG_COMMENT = create(T_ELCL, "bug-comment.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor REMOVE_ALL = create("", "remove-all.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor REMOVE = create("", "remove.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor SELECT_ALL = create("", "selectAll.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor OPEN = create("", "openresult.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor OVERLAY_CRITICAL = create(T_VIEW, "overlay-critical.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor OVERLAY_MAJOR = create(T_VIEW, "overlay-major.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor OVERLAY_ENHANCEMENT = create(T_VIEW, "overlay-enhancement.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor OVERLAY_MINOR = create(T_VIEW, "overlay-minor.gif"); //$NON-NLS-1$
-
- private static ImageDescriptor create(String prefix, String name) {
- try {
- return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
- } catch (MalformedURLException e) {
- return ImageDescriptor.getMissingImageDescriptor();
- }
- }
-
- private static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
- if (baseURL == null) {
- throw new MalformedURLException();
- }
-
- StringBuffer buffer = new StringBuffer(prefix);
- if (prefix != "") { //$NON-NLS-1$
- buffer.append('/');
- }
- buffer.append(name);
- return new URL(baseURL, buffer.toString());
- }
-
- private static ImageRegistry getImageRegistry() {
- if (imageRegistry == null) {
- imageRegistry = new ImageRegistry();
- }
-
- return imageRegistry;
- }
-
- /**
- * Lazily initializes image map.
- */
- public static Image getImage(ImageDescriptor imageDescriptor) {
- ImageRegistry imageRegistry = getImageRegistry();
- Image image = imageRegistry.get("" + imageDescriptor.hashCode()); //$NON-NLS-1$
- if (image == null) {
- image = imageDescriptor.createImage();
- imageRegistry.put("" + imageDescriptor.hashCode(), image); //$NON-NLS-1$
- }
- return image;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaSearchHandler.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaSearchHandler.java
deleted file mode 100644
index ee80ad0d4..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaSearchHandler.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.AbstractSearchHandler;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Robert Elves
- */
-@SuppressWarnings("restriction")
-public class BugzillaSearchHandler extends AbstractSearchHandler {
-
- @Override
- public String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public boolean queryForText(TaskRepository taskRepository, IRepositoryQuery query, TaskData taskData,
- String searchString) {
- try {
- String queryUrl = taskRepository.getRepositoryUrl()
- + "/buglist.cgi?long_desc_type=allwordssubstr&long_desc=" //$NON-NLS-1$
- + URLEncoder.encode(searchString, taskRepository.getCharacterEncoding());
- query.setUrl(queryUrl);
- } catch (UnsupportedEncodingException e) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiExtensionReader.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiExtensionReader.java
deleted file mode 100644
index 26bfa2dd3..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiExtensionReader.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.ui;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaLanguageSettings;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaUiExtensionReader {
-
- public static final String EXTENSION_LANGUAGES = "org.eclipse.mylyn.bugzilla.core.languages"; //$NON-NLS-1$
-
- public static final String EXTENSION_TMPL_LANGUAGE = "language"; //$NON-NLS-1$
-
- public static final String ATTR_LANG_VALUE = "value"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_NAME = "name"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_ERROR_LOGIN = "error_login"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_ERROR_COLLISION = "error_collision"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_ERROR_COMMENT_REQIRED = "error_comment_required"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_ERROR_LOGGED_OUT = "error_logged_out"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_BAD_LOGIN = "bad_login"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_PROCESSED = "processed"; //$NON-NLS-1$
-
- public static final String ELMNT_LANG_CHANGES_SUBMITTED = "changes_submitted"; //$NON-NLS-1$
-
- private static boolean coreExtensionsRead = false;
-
- public static void initStartupExtensions() {
- if (!coreExtensionsRead) {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
-
- IExtensionPoint templatesExtensionPoint = registry.getExtensionPoint(EXTENSION_LANGUAGES);
- IExtension[] templateExtensions = templatesExtensionPoint.getExtensions();
- for (IExtension templateExtension : templateExtensions) {
- IConfigurationElement[] elements = templateExtension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(EXTENSION_TMPL_LANGUAGE)) {
- readLanguageTemplate(element);
- }
- }
- }
-
- coreExtensionsRead = true;
- }
-
- }
-
- private static void readLanguageTemplate(IConfigurationElement element) {
- String languageName = element.getAttribute(ELMNT_LANG_NAME);
- if (languageName != null) {
- BugzillaLanguageSettings bugzillaLanguageSettings = new BugzillaLanguageSettings(languageName);
-
- for (IConfigurationElement configElement : element.getChildren()) {
- String name = configElement.getName();
- if (name != null && name.equals("languageAttribute")) { //$NON-NLS-1$
- String command = configElement.getAttribute("command"); //$NON-NLS-1$
- String response = configElement.getAttribute("response"); //$NON-NLS-1$
- bugzillaLanguageSettings.addLanguageAttribute(command, response);
- }
- }
- BugzillaRepositoryConnector.addLanguageSetting(bugzillaLanguageSettings);
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, BugzillaUiPlugin.ID_PLUGIN,
- "Could not load language template extension " + element.getName())); //$NON-NLS-1$
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiPlugin.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiPlugin.java
deleted file mode 100644
index 4c5248a69..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/BugzillaUiPlugin.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- *
- * @author Mik Kersten
- */
-public class BugzillaUiPlugin extends AbstractUIPlugin {
-
- public static final String ID_PLUGIN = "org.eclipse.mylyn.bugzilla.ui"; //$NON-NLS-1$
-
- public static final String SEARCH_PAGE_ID = BugzillaUiPlugin.ID_PLUGIN + ".search.bugzillaSearchPage"; //$NON-NLS-1$
-
- public static final String SEARCH_PAGE_CONTEXT = BugzillaUiPlugin.ID_PLUGIN + ".bugzillaSearchContext"; //$NON-NLS-1$
-
- public static final String EDITOR_PAGE_CONTEXT = BugzillaUiPlugin.ID_PLUGIN + ".bugzillaEditorContext"; //$NON-NLS-1$
-
- // The is's for hit markers used in the label provider and sorters
- public static final String HIT_MARKER_ATTR_ID = "taskId"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_REPOSITORY = "repository"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_HREF = "href"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_DESC = "summary"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_LABEL = "label"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_SEVERITY = "severity"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_PRIORITY = "priority"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_PLATFORM = "platform"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_STATE = "state"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_RESULT = "result"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_OWNER = "owner"; //$NON-NLS-1$
-
- public static final String HIT_MARKER_ATTR_QUERY = "query"; //$NON-NLS-1$
-
- /**
- * XXX: remove?
- */
- public static final String HIT_MARKER_ID = BugzillaUiPlugin.ID_PLUGIN + ".searchHit"; //$NON-NLS-1$
-
- private static BugzillaUiPlugin plugin;
-
- public static final char PREF_DELIM_REPOSITORY = ':';
-
- private static final int WRAP_LENGTH = 90;
-
- @SuppressWarnings("restriction")
- public BugzillaUiPlugin() {
- plugin = this;
- org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin.getDefault().addSearchHandler(new BugzillaSearchHandler());
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- getPreferenceStore().setDefault(IBugzillaConstants.MAX_RESULTS, 100);
-
- IPath repConfigCacheFile = getProductConfigurationCachePath();
- if (repConfigCacheFile != null) {
- BugzillaCorePlugin.setConfigurationCacheFile(repConfigCacheFile.toFile());
- }
-
- BugzillaRepositoryConnector bugzillaConnector = (BugzillaRepositoryConnector) TasksUi.getRepositoryManager()
- .getRepositoryConnector(BugzillaCorePlugin.CONNECTOR_KIND);
-
- TasksUi.getRepositoryManager().addListener(bugzillaConnector.getClientManager());
-
- // NOTE: initializing extensions in start(..) has caused race
- // conditions previously
- BugzillaUiExtensionReader.initStartupExtensions();
- }
-
- /**
- * Returns the path to the file cacheing the product configuration.
- */
- private static IPath getProductConfigurationCachePath() {
- IPath stateLocation = Platform.getStateLocation(BugzillaCorePlugin.getDefault().getBundle());
- IPath configFile = stateLocation.append("repositoryConfigurations"); //$NON-NLS-1$
- return configFile;
- }
-
- public int getMaxResults() {
- return getPreferenceStore().getInt(IBugzillaConstants.MAX_RESULTS);
- }
-
- /**
- * This method is called when the plug-in is stopped
- */
- @Override
- public void stop(BundleContext context) throws Exception {
-
- BugzillaRepositoryConnector bugzillaConnector = (BugzillaRepositoryConnector) TasksUi.getRepositoryManager()
- .getRepositoryConnector(BugzillaCorePlugin.CONNECTOR_KIND);
-
- TasksUi.getRepositoryManager().removeListener(bugzillaConnector.getClientManager());
-
- super.stop(context);
- plugin = null;
- }
-
- /**
- * Returns the shared instance.
- */
- public static BugzillaUiPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns an image descriptor for the image file at the given plug-in relative path.
- *
- * @param path
- * the path
- * @return the image descriptor
- */
- public static ImageDescriptor getImageDescriptor(String path) {
- return AbstractUIPlugin.imageDescriptorFromPlugin(ID_PLUGIN, path);
- }
-
- public static String[] getQueryOptions(String prefId, String[] selectedProducts,
- RepositoryConfiguration repositoryConfiguration) {
- List<String> options = new ArrayList<String>();
- if ((prefId.equals(IBugzillaConstants.VALUES_COMPONENT) || prefId.equals(IBugzillaConstants.VALUES_VERSION) || prefId.equals(IBugzillaConstants.VALUES_TARGET))
- && selectedProducts != null) {
- for (String product : selectedProducts) {
- if (prefId.equals(IBugzillaConstants.VALUES_COMPONENT)) {
- for (String option : repositoryConfiguration.getComponents(product)) {
- if (!options.contains(option)) {
- options.add(option);
- }
- }
- }
- if (prefId.equals(IBugzillaConstants.VALUES_VERSION)) {
- for (String option : repositoryConfiguration.getVersions(product)) {
- if (!options.contains(option)) {
- options.add(option);
- }
- }
- }
- if (prefId.equals(IBugzillaConstants.VALUES_TARGET)) {
- for (String option : repositoryConfiguration.getTargetMilestones(product)) {
- if (!options.contains(option)) {
- options.add(option);
- }
- }
- }
- }
- } else {
- if (prefId.equals(IBugzillaConstants.VALUES_COMPONENT)) {
- options = repositoryConfiguration.getComponents();
- }
- if (prefId.equals(IBugzillaConstants.VALUES_VERSION)) {
- options = repositoryConfiguration.getVersions();
- }
- if (prefId.equals(IBugzillaConstants.VALUES_TARGET)) {
- options = repositoryConfiguration.getTargetMilestones();
- }
- }
- return options.toArray(new String[options.size()]);
- }
-
- public static String getMostRecentQuery() {
- return plugin.getPreferenceStore().getString(IBugzillaConstants.MOST_RECENT_QUERY);
- }
-
- /**
- * Break text up into lines so that it is displayed properly in bugzilla
- *
- * @deprecated use {@link BugzillaClient#formatTextToLineWrap(String, boolean)} instead
- */
- @Deprecated
- public static String formatTextToLineWrap(String origText, boolean hardWrap) {
- // BugzillaServerVersion bugzillaServerVersion =
- // IBugzillaConstants.BugzillaServerVersion.fromString(repository
- // .getVersion());
- // if (bugzillaServerVersion != null &&
- // bugzillaServerVersion.compareTo(BugzillaServerVersion.SERVER_220) >=
- // 0) {
- // return origText;
- if (!hardWrap) {
- return origText;
- } else {
- String[] textArray = new String[(origText.length() / WRAP_LENGTH + 1) * 2];
- for (int i = 0; i < textArray.length; i++) {
- textArray[i] = null;
- }
- int j = 0;
- while (true) {
- int spaceIndex = origText.indexOf(" ", WRAP_LENGTH - 5); //$NON-NLS-1$
- if (spaceIndex == origText.length() || spaceIndex == -1) {
- textArray[j] = origText;
- break;
- }
- textArray[j] = origText.substring(0, spaceIndex);
- origText = origText.substring(spaceIndex + 1, origText.length());
- j++;
- }
-
- String newText = ""; //$NON-NLS-1$
-
- for (String element : textArray) {
- if (element == null) {
- break;
- }
- newText += element + "\n"; //$NON-NLS-1$
- }
- return newText;
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaNotObsoleteAttachmentAction.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaNotObsoleteAttachmentAction.java
deleted file mode 100644
index 9919b5cbf..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaNotObsoleteAttachmentAction.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.action;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaNotObsoleteAttachmentAction extends BugzillaUpdateAttachmentAction {
-
- public BugzillaNotObsoleteAttachmentAction() {
- super(false);
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaObsoleteAttachmentAction.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaObsoleteAttachmentAction.java
deleted file mode 100644
index c39f1f698..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaObsoleteAttachmentAction.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.action;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaObsoleteAttachmentAction extends BugzillaUpdateAttachmentAction {
-
- public BugzillaObsoleteAttachmentAction() {
- super(true);
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaUpdateAttachmentAction.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaUpdateAttachmentAction.java
deleted file mode 100644
index 2d1736dcf..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/BugzillaUpdateAttachmentAction.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.action;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.bugzilla.ui.editor.BugzillaTaskEditorPage;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-import org.eclipse.ui.forms.editor.IFormPage;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaUpdateAttachmentAction extends BaseSelectionListenerAction implements IViewActionDelegate {
-
- private ISelection currentSelection;
-
- private final boolean obsolete;
-
- public BugzillaUpdateAttachmentAction(boolean obsolete) {
- super("UpdateAttachmentAction"); //$NON-NLS-1$
- this.obsolete = obsolete;
- }
-
- public void init(IViewPart view) {
- // ignore
- }
-
- @SuppressWarnings("unchecked")
- public void run(IAction action) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- IWorkbenchPage page = window.getActivePage();
- IEditorPart activeEditor = page.getActiveEditor();
- if (activeEditor instanceof TaskEditor) {
- final TaskEditor taskEditor = (TaskEditor) activeEditor;
- IStructuredSelection selection = null;
- if (currentSelection instanceof IStructuredSelection) {
- selection = (IStructuredSelection) currentSelection;
- }
- if (selection == null || selection.isEmpty()) {
- return;
- }
- List<ITaskAttachment> attachment = selection.toList();
- if (attachment != null) {
- final UpdateAttachmentJob job = new UpdateAttachmentJob(attachment, taskEditor, obsolete);
- job.setUser(true);
- job.addJobChangeListener(new JobChangeAdapter() {
-
- @Override
- public void done(IJobChangeEvent event) {
- if (job.getError() != null) {
- IFormPage formPage = taskEditor.getActivePageInstance();
- if (formPage instanceof BugzillaTaskEditorPage) {
- final BugzillaTaskEditorPage bugzillaPage = (BugzillaTaskEditorPage) formPage;
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- bugzillaPage.getTaskEditor().setMessage(job.getError().getMessage(),
- IMessageProvider.ERROR);
- }
- });
- }
- }
- }
- });
- job.schedule();
- }
- }
- }
-
- @SuppressWarnings("unchecked")
- public void selectionChanged(IAction action, ISelection selection) {
- this.currentSelection = selection;
- IStructuredSelection sructuredSelection = null;
- if (selection instanceof IStructuredSelection) {
- sructuredSelection = (IStructuredSelection) currentSelection;
- }
- if (sructuredSelection == null || sructuredSelection.isEmpty()) {
- return;
- }
- List<ITaskAttachment> attachmentList = sructuredSelection.toList();
- action.setEnabled(false);
- for (ITaskAttachment taskAttachment : attachmentList) {
- TaskAttribute taskAttribute = taskAttachment.getTaskAttribute();
- TaskAttribute deprecated = taskAttribute.getMappedAttribute(TaskAttribute.ATTACHMENT_IS_DEPRECATED);
- if (deprecated != null && deprecated.getValue().equals("1") != obsolete) { //$NON-NLS-1$
- action.setEnabled(true);
- break;
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/Messages.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/Messages.java
deleted file mode 100644
index a61722195..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/Messages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.action;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.ui.action.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String BugzillaUpdateAttachmentAction_mark_not_obsolete;
-
- public static String BugzillaUpdateAttachmentAction_mark_obsolete;
-
- public static String UpdateAttachmentJob_obsolete_not_toggled;
-
- public static String UpdateAttachmentJob_obsolete_toggled_successfully;
-
- public static String UpdateAttachmentJob_update_attachments;
-
- public static String UpdateAttachmentJob_update_attachment;
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/UpdateAttachmentJob.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/UpdateAttachmentJob.java
deleted file mode 100644
index 8ae201039..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/UpdateAttachmentJob.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.action;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
-import org.eclipse.mylyn.internal.bugzilla.ui.editor.BugzillaTaskEditorPage;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Frank Becker
- */
-@SuppressWarnings("restriction")
-public class UpdateAttachmentJob extends Job {
-
- private final List<ITaskAttachment> attachment;
-
- private final TaskEditor editor;
-
- private final boolean obsolete;
-
- private IStatus error;
-
- public UpdateAttachmentJob(List<ITaskAttachment> attachment, TaskEditor editor, boolean obsolete) {
- super(Messages.UpdateAttachmentJob_update_attachment);
- this.attachment = attachment;
- this.editor = editor;
- this.obsolete = obsolete;
- }
-
- public IStatus getError() {
- return error;
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- final ITask task;
- task = editor.getTaskEditorInput().getTask();
-
- if (!task.getConnectorKind().equals(BugzillaCorePlugin.CONNECTOR_KIND)) {
- return Status.OK_STATUS;
- }
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- task.getConnectorKind());
- monitor.beginTask(Messages.UpdateAttachmentJob_update_attachments, attachment.size() * 10 + 10);
- try {
- for (ITaskAttachment taskAttachment : attachment) {
- TaskAttribute taskAttribute = taskAttachment.getTaskAttribute();
- TaskAttribute deprecated = taskAttribute.getMappedAttribute(TaskAttribute.ATTACHMENT_IS_DEPRECATED);
- if (deprecated != null) {
- if (deprecated.getValue().equals("1") && !obsolete) { //$NON-NLS-1$
- try {
- deprecated.setValue("0"); //$NON-NLS-1$
- ((BugzillaTaskDataHandler) connector.getTaskDataHandler()).postUpdateAttachment(
- taskAttachment.getTaskRepository(), taskAttribute, "update", monitor); //$NON-NLS-1$
- } catch (CoreException e) {
- error = e.getStatus();
- deprecated.setValue("1"); //$NON-NLS-1$
- return Status.OK_STATUS;
- }
- } else if (deprecated.getValue().equals("0") && obsolete) { //$NON-NLS-1$
- try {
- deprecated.setValue("1"); //$NON-NLS-1$
- ((BugzillaTaskDataHandler) connector.getTaskDataHandler()).postUpdateAttachment(
- taskAttachment.getTaskRepository(), taskAttribute, "update", monitor); //$NON-NLS-1$
- } catch (CoreException e) {
- error = e.getStatus();
- deprecated.setValue("0"); //$NON-NLS-1$
- return Status.OK_STATUS;
- }
- }
- }
- monitor.worked(10);
- }
-
- if (task != null) {
- if (connector != null) {
- TasksUiInternal.synchronizeTask(connector, task, true, new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- try {
- if (editor != null) {
- editor.refreshPages();
- editor.getEditorSite().getPage().activate(editor);
- IFormPage formPage = editor.getActivePageInstance();
- if (formPage instanceof BugzillaTaskEditorPage) {
- BugzillaTaskEditorPage bugzillaPage = (BugzillaTaskEditorPage) formPage;
- Control control = bugzillaPage.getPart(
- AbstractTaskEditorPage.ID_PART_ATTACHMENTS).getControl();
- if (control instanceof Section) {
- Section section = (Section) control;
- CommonFormUtil.setExpanded(section, true);
- }
- }
-
- }
- } finally {
- if (editor != null) {
- editor.showBusy(false);
- }
- }
- }
- });
- }
- });
- }
- monitor.worked(10);
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (editor != null) {
- editor.showBusy(true);
- }
- }
- });
- }
- } catch (OperationCanceledException e) {
- return Status.CANCEL_STATUS;
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/messages.properties b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/messages.properties
deleted file mode 100644
index 80f5eed5f..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/action/messages.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-BugzillaUpdateAttachmentAction_mark_not_obsolete=Mark not obsolete
-BugzillaUpdateAttachmentAction_mark_obsolete=Mark obsolete
-UpdateAttachmentJob_obsolete_not_toggled=Obsolete not toggled successful
-UpdateAttachmentJob_obsolete_toggled_successfully=Obsolete toggeled successfully
-UpdateAttachmentJob_update_attachment=Update attachment
-UpdateAttachmentJob_update_attachments=Update attachments
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaCcAttributeEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaCcAttributeEditor.java
deleted file mode 100644
index 303cdf34a..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaCcAttributeEditor.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaCcAttributeEditor extends AbstractAttributeEditor {
-
- private List list;
-
- private TaskAttribute attrRemoveCc;
-
- public BugzillaCcAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.MULTIPLE, ColumnSpan.SINGLE));
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- list = new List(parent, SWT.FLAT | SWT.MULTI | SWT.V_SCROLL);
- toolkit.adapt(list, true, true);
- list.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- list.setFont(JFaceResources.getDefaultFont());
- GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(list);
-
- TaskAttribute attrUserCC = getTaskAttribute();
- if (attrUserCC != null) {
- for (String value : attrUserCC.getValues()) {
- list.add(value);
- }
- }
-
- attrRemoveCc = getModel().getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.REMOVECC.getKey());
-
- if (attrRemoveCc == null) {
- attrRemoveCc = BugzillaTaskDataHandler.createAttribute(getModel().getTaskData(), BugzillaAttribute.REMOVECC);
- }
-
- for (String item : attrRemoveCc.getValues()) {
- int i = list.indexOf(item);
- if (i != -1) {
- list.select(i);
- }
- }
-
- list.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- for (String cc : list.getItems()) {
- int index = list.indexOf(cc);
- if (list.isSelected(index)) {
- java.util.List<String> remove = attrRemoveCc.getValues();
- if (!remove.contains(cc)) {
- attrRemoveCc.addValue(cc);
- }
- } else {
- attrRemoveCc.removeValue(cc);
- }
- }
- getModel().attributeChanged(attrRemoveCc);
- }
- });
-
- list.showSelection();
-
- setControl(list);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaKeywordAttributeEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaKeywordAttributeEditor.java
deleted file mode 100644
index d3a1b5ea9..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaKeywordAttributeEditor.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaKeywordAttributeEditor extends AbstractAttributeEditor {
-
- private Text keywordsText;
-
- public BugzillaKeywordAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.SINGLE, ColumnSpan.MULTIPLE));
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Composite keywordComposite = toolkit.createComposite(parent);
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 1;
- keywordComposite.setLayout(layout);
-
- keywordsText = toolkit.createText(keywordComposite, getTaskAttribute().getValue());
- GridData keywordsData = new GridData(GridData.FILL_HORIZONTAL);
- keywordsText.setLayoutData(keywordsData);
- keywordsText.setEditable(false);
-
- Button changeKeywordsButton = toolkit.createButton(keywordComposite, Messages.BugzillaKeywordAttributeEditor_Edit_, SWT.FLAT);
- GridData keyWordsButtonData = new GridData();
- changeKeywordsButton.setLayoutData(keyWordsButtonData);
- changeKeywordsButton.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
-
- String keywords = getTaskAttribute().getValue();
-
- Shell shell = null;
- if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
- shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- } else {
- shell = new Shell(PlatformUI.getWorkbench().getDisplay());
- }
-
- List<String> validKeywords = new ArrayList<String>();
- try {
- validKeywords = BugzillaCorePlugin.getRepositoryConfiguration(getModel().getTaskRepository(),
- false, new NullProgressMonitor()).getKeywords();
- } catch (Exception ex) {
- // ignore
- }
-
- KeywordsDialog keywordsDialog = new KeywordsDialog(shell, keywords, validKeywords);
- int responseCode = keywordsDialog.open();
-
- String newKeywords = keywordsDialog.getSelectedKeywordsString();
- if (responseCode == Window.OK && keywords != null) {
- keywordsText.setText(newKeywords);
- getAttributeMapper().setValue(getTaskAttribute(), newKeywords);
- attributeChanged();
- } else {
- return;
- }
-
- }
-
- });
- setControl(keywordComposite);
- }
-
- @Override
- protected void decorateIncoming(Color color) {
- if (keywordsText != null && !keywordsText.isDisposed()) {
- keywordsText.setBackground(color);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java
deleted file mode 100644
index dab471107..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaPeoplePart extends AbstractTaskEditorPart {
-
- private static final int COLUMN_MARGIN = 5;
-
- public BugzillaPeoplePart() {
- setPartName(Messages.BugzillaPeoplePart_People);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute) {
- AbstractAttributeEditor editor = createAttributeEditor(attribute);
- if (editor != null) {
- editor.createLabelControl(composite, toolkit);
- GridDataFactory.defaultsFor(editor.getLabelControl()).indent(COLUMN_MARGIN, 0).applyTo(
- editor.getLabelControl());
- editor.createControl(composite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- if (attribute.getId().equals(BugzillaAttribute.CC.getKey())) {
- GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).hint(130, 95).applyTo(
- editor.getControl());
- } else {
- GridDataFactory.fillDefaults()
- .grab(true, false)
- .align(SWT.FILL, SWT.TOP)
- .hint(130, SWT.DEFAULT)
- .applyTo(editor.getControl());
- }
- }
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Section section = createSection(parent, toolkit, true);
- Composite peopleComposite = toolkit.createComposite(section);
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 5;
- peopleComposite.setLayout(layout);
-
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
- TaskAttribute assignee = getTaskData().getRoot().getAttribute(BugzillaAttribute.SET_DEFAULT_ASSIGNEE.getKey());
- if (assignee != null) {
- addAttribute(peopleComposite, toolkit, assignee);
- }
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.QA_CONTACT.getKey()));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.NEWCC.getKey()));
- addSelfToCC(peopleComposite);
- TaskAttribute cc = getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.CC.getKey());
- if (cc != null) {
- addAttribute(peopleComposite, toolkit, cc);
- toolkit.createLabel(peopleComposite, ""); //$NON-NLS-1$
- Label label = toolkit.createLabel(peopleComposite, Messages.BugzillaPeoplePart__Select_to_remove_);
- GridDataFactory.fillDefaults().indent(0, 5).align(SWT.CENTER, SWT.CENTER).applyTo(label);
- }
-
- toolkit.paintBordersFor(peopleComposite);
- section.setClient(peopleComposite);
- setSection(toolkit, section);
- }
-
- /**
- * Creates a check box for adding the repository user to the cc list. Does nothing if the repository does not have a
- * valid username, the repository user is the assignee, reporter or already on the the cc list.
- */
- protected void addSelfToCC(Composite composite) {
-
- TaskRepository repository = this.getTaskEditorPage().getTaskRepository();
-
- if (repository.getUserName() == null) {
- return;
- }
-
- TaskAttribute root = getTaskData().getRoot();
- TaskAttribute owner = root.getMappedAttribute(TaskAttribute.USER_ASSIGNED);
- if (owner != null && owner.getValue().indexOf(repository.getUserName()) != -1) {
- return;
- }
-
- TaskAttribute reporter = root.getMappedAttribute(TaskAttribute.USER_REPORTER);
- if (reporter != null && reporter.getValue().indexOf(repository.getUserName()) != -1) {
- return;
- }
-
- TaskAttribute ccAttribute = root.getMappedAttribute(TaskAttribute.USER_CC);
- if (ccAttribute != null && ccAttribute.getValues().contains(repository.getUserName())) {
- return;
- }
-
- FormToolkit toolkit = getManagedForm().getToolkit();
- TaskAttribute attrAddToCC = getTaskData().getRoot().getMappedAttribute(TaskAttribute.ADD_SELF_CC);
- if (attrAddToCC == null) {
- attrAddToCC = BugzillaTaskDataHandler.createAttribute(getTaskData(), BugzillaAttribute.ADDSELFCC);
- }
- addAttribute(composite, toolkit, attrAddToCC);
- }
-
-// protected void addCCList(Composite attributesComposite) {
-//
-// RepositoryTaskAttribute addCCattribute = taskData.getAttribute(RepositoryTaskAttribute.NEW_CC);
-// if (addCCattribute == null) {
-// // TODO: remove once TRAC is priming taskData with NEW_CC attribute
-// taskData.setAttributeValue(RepositoryTaskAttribute.NEW_CC, "");
-// addCCattribute = taskData.getAttribute(RepositoryTaskAttribute.NEW_CC);
-// }
-// if (addCCattribute != null) {
-// Label label = createLabel(attributesComposite, addCCattribute);
-// GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(label);
-// Text text = createTextField(attributesComposite, addCCattribute, SWT.FLAT);
-// GridDataFactory.fillDefaults().hint(150, SWT.DEFAULT).applyTo(text);
-//
-// if (hasContentAssist(addCCattribute)) {
-// ContentAssistCommandAdapter adapter = applyContentAssist(text,
-// createContentProposalProvider(addCCattribute));
-// ILabelProvider propsalLabelProvider = createProposalLabelProvider(addCCattribute);
-// if (propsalLabelProvider != null) {
-// adapter.setLabelProvider(propsalLabelProvider);
-// }
-// adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-// }
-// }
-//
-// TaskAttribute CCattribute = getTaskData().getAttribute(TaskAttribute.USER_CC);
-// if (CCattribute != null) {
-// Label label = createLabel(attributesComposite, CCattribute);
-// GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.TOP).applyTo(label);
-// ccList = new org.eclipse.swt.widgets.List(attributesComposite, SWT.MULTI | SWT.V_SCROLL);// SWT.BORDER
-// ccList.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-// ccList.setFont(TEXT_FONT);
-// GridData ccListData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-// ccListData.horizontalSpan = 1;
-// ccListData.widthHint = 150;
-// ccListData.heightHint = 95;
-// ccList.setLayoutData(ccListData);
-// if (hasChanged(taskData.getAttribute(RepositoryTaskAttribute.USER_CC))) {
-// ccList.setBackground(colorIncoming);
-// }
-// java.util.List<String> ccs = taskData.getCc();
-// if (ccs != null) {
-// for (String cc : ccs) {
-// ccList.add(cc);
-// }
-// }
-// java.util.List<String> removedCCs = taskData.getAttributeValues(RepositoryTaskAttribute.REMOVE_CC);
-// if (removedCCs != null) {
-// for (String item : removedCCs) {
-// int i = ccList.indexOf(item);
-// if (i != -1) {
-// ccList.select(i);
-// }
-// }
-// }
-// ccList.addSelectionListener(new SelectionListener() {
-//
-// public void widgetSelected(SelectionEvent e) {
-// for (String cc : ccList.getItems()) {
-// int index = ccList.indexOf(cc);
-// if (ccList.isSelected(index)) {
-// List<String> remove = taskData.getAttributeValues(RepositoryTaskAttribute.REMOVE_CC);
-// if (!remove.contains(cc)) {
-// taskData.addAttributeValue(RepositoryTaskAttribute.REMOVE_CC, cc);
-// }
-// } else {
-// taskData.removeAttributeValue(RepositoryTaskAttribute.REMOVE_CC, cc);
-// }
-// }
-// attributeChanged(taskData.getAttribute(RepositoryTaskAttribute.REMOVE_CC));
-// }
-//
-// public void widgetDefaultSelected(SelectionEvent e) {
-// }
-// });
-// toolkit.createLabel(attributesComposite, "");
-// label = toolkit.createLabel(attributesComposite, "(Select to remove)");
-// GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(label);
-// }
-
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPlanningEditorPart.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPlanningEditorPart.java
deleted file mode 100644
index 5dde706bf..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPlanningEditorPart.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import java.util.EnumSet;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaPlanningEditorPart extends AbstractTaskEditorPart {
-
- private boolean hasIncoming;
-
- private static final Set<BugzillaAttribute> PLANNING_ATTRIBUTES = EnumSet.of(BugzillaAttribute.ACTUAL_TIME,
- BugzillaAttribute.ESTIMATED_TIME, BugzillaAttribute.WORK_TIME, BugzillaAttribute.REMAINING_TIME,
- BugzillaAttribute.DEADLINE);
-
- public BugzillaPlanningEditorPart() {
- setPartName(Messages.BugzillaPlanningEditorPart_Team_Planning);
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- initialize();
- Section timeSection = createSection(parent, toolkit, hasIncoming);
-
- GridLayout gl = new GridLayout();
- GridData gd = new GridData(SWT.FILL, SWT.NONE, false, false);
- gd.horizontalSpan = 4;
- timeSection.setLayout(gl);
- timeSection.setLayoutData(gd);
-
- Composite timeComposite = toolkit.createComposite(timeSection);
- gl = new GridLayout(6, false);
- timeComposite.setLayout(gl);
- gd = new GridData();
- gd.horizontalSpan = 4;
- timeComposite.setLayoutData(gd);
-
- TaskAttribute attribute = getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.DEADLINE.getKey());
- if (attribute != null) {
- AbstractAttributeEditor attributeEditor = createAttributeEditor(attribute);
- attributeEditor.createLabelControl(timeComposite, toolkit);
- attributeEditor.createControl(timeComposite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(attributeEditor);
- }
-
- attribute = getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey());
- AbstractAttributeEditor attributeEditor = createAttributeEditor(attribute);
- attributeEditor.createLabelControl(timeComposite, toolkit);
- attributeEditor.createControl(timeComposite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(attributeEditor);
-
- Label label = toolkit.createLabel(timeComposite, Messages.BugzillaPlanningEditorPart_Current_Estimate);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- float total = 0;
- try {
- TaskAttribute attrActualTime = getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.ACTUAL_TIME.getKey());
- float actual = 0;
- if (attrActualTime != null) {
- actual = Float.parseFloat(attrActualTime.getValue());
- }
- TaskAttribute attrRemainingTime = getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.REMAINING_TIME.getKey());
- float remaining = 0;
- if (attrRemainingTime != null) {
- remaining = Float.parseFloat(attrRemainingTime.getValue());
- }
- total = actual + remaining;
- } catch (Exception e) {
- // ignore NumberFormatException
- }
-
- Text currentEstimate = toolkit.createText(timeComposite, "" + total, SWT.FLAT | SWT.READ_ONLY); //$NON-NLS-1$
- currentEstimate.setFont(TEXT_FONT);
- toolkit.adapt(currentEstimate, false, false);
- currentEstimate.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE);
- currentEstimate.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- attribute = getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.ACTUAL_TIME.getKey());
- if (attribute != null) {
- attributeEditor = createAttributeEditor(attribute);
- attributeEditor.createLabelControl(timeComposite, toolkit);
- attributeEditor.createControl(timeComposite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(attributeEditor);
- }
-
- // Add Time
- TaskAttribute addTimeAttribute = getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.WORK_TIME.getKey());
- if (addTimeAttribute == null) {
- addTimeAttribute = BugzillaTaskDataHandler.createAttribute(getTaskData(), BugzillaAttribute.WORK_TIME);
-
- }
- if (addTimeAttribute != null) {
- addTimeAttribute.setValue("0"); //$NON-NLS-1$
- attributeEditor = createAttributeEditor(addTimeAttribute);
- attributeEditor.createLabelControl(timeComposite, toolkit);
- attributeEditor.createControl(timeComposite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(attributeEditor);
- }
-
- attribute = getTaskData().getRoot().getAttribute(BugzillaAttribute.REMAINING_TIME.getKey());
- if (attribute != null) {
- attributeEditor = createAttributeEditor(attribute);
- attributeEditor.createLabelControl(timeComposite, toolkit);
- attributeEditor.createControl(timeComposite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(attributeEditor);
- }
-
- timeSection.setClient(timeComposite);
- toolkit.paintBordersFor(timeComposite);
- setSection(toolkit, timeSection);
-
- }
-
- private void initialize() {
- hasIncoming = false;
- Map<String, TaskAttribute> attributes = getTaskData().getRoot().getAttributes();
- for (TaskAttribute attribute : attributes.values()) {
-
- BugzillaAttribute bugzillaAttribute = BugzillaAttribute.UNKNOWN;
- try {
- bugzillaAttribute = BugzillaAttribute.valueOf(attribute.getId().trim().toUpperCase(Locale.ENGLISH));
- } catch (RuntimeException e) {
- if (e instanceof IllegalArgumentException) {
- // ignore unrecognized tags
- continue;
- }
- throw e;
- }
-
- if (PLANNING_ATTRIBUTES.contains(bugzillaAttribute)) {
- if (getModel().hasIncomingChanges(attribute)) {
- hasIncoming = true;
- }
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPage.java
deleted file mode 100644
index 82bbe4796..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPage.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCustomField;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMetaData;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModelEvent;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModelListener;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.mylyn.tasks.ui.editors.AttributeEditorFactory;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorPartDescriptor;
-
-/**
- * @author Rob Elves
- * @since 3.0
- */
-public class BugzillaTaskEditorPage extends AbstractTaskEditorPage {
-
- public static final String ID_PART_BUGZILLA_PLANNING = "org.eclipse.mylyn.bugzilla.ui.editors.part.planning"; //$NON-NLS-1$
-
- public static final String ID_PART_BUGZILLA_FLAGS = "org.eclipse.mylyn.bugzilla.ui.editors.part.flags"; //$NON-NLS-1$
-
- private final Map<TaskAttribute, AbstractAttributeEditor> attributeEditorMap;
-
- private TaskDataModelListener productListener;
-
- public BugzillaTaskEditorPage(TaskEditor editor) {
- this(editor, BugzillaCorePlugin.CONNECTOR_KIND);
- }
-
- /**
- * Call this constructor if extending the Bugzilla connector
- *
- * @param editor
- * @param connectorKind
- */
- public BugzillaTaskEditorPage(TaskEditor editor, String connectorKind) {
- super(editor, connectorKind);
- this.attributeEditorMap = new HashMap<TaskAttribute, AbstractAttributeEditor>();
- // disabled, see bug 274790
- //setNeedsFooter(true);
- }
-
- @Override
- protected Set<TaskEditorPartDescriptor> createPartDescriptors() {
- Set<TaskEditorPartDescriptor> descriptors = super.createPartDescriptors();
-
- // remove unnecessary default editor parts
- for (TaskEditorPartDescriptor taskEditorPartDescriptor : descriptors) {
- if (taskEditorPartDescriptor.getId().equals(ID_PART_PEOPLE)) {
- descriptors.remove(taskEditorPartDescriptor);
- break;
- }
- }
-
- // Add Bugzilla Planning part
- try {
- TaskData data = TasksUi.getTaskDataManager().getTaskData(getTask());
- if (data != null) {
- TaskAttribute attrEstimatedTime = data.getRoot().getMappedAttribute(
- BugzillaAttribute.ESTIMATED_TIME.getKey());
- if (attrEstimatedTime != null) {
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_BUGZILLA_PLANNING) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new BugzillaPlanningEditorPart();
- }
- }.setPath(PATH_ATTRIBUTES));
- }
- }
- } catch (CoreException e) {
- // ignore
- }
-
- // Add the updated Bugzilla people part
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_PEOPLE) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new BugzillaPeoplePart();
- }
- }.setPath(PATH_PEOPLE));
-
- return descriptors;
- }
-
- @Override
- protected AttributeEditorFactory createAttributeEditorFactory() {
- AttributeEditorFactory factory = new AttributeEditorFactory(getModel(), getTaskRepository(), getEditorSite()) {
- @Override
- public AbstractAttributeEditor createEditor(String type, final TaskAttribute taskAttribute) {
- AbstractAttributeEditor editor;
- if (IBugzillaConstants.EDITOR_TYPE_KEYWORDS.equals(type)) {
- editor = new BugzillaKeywordAttributeEditor(getModel(), taskAttribute);
- } else if (IBugzillaConstants.EDITOR_TYPE_REMOVECC.equals(type)) {
- editor = new BugzillaCcAttributeEditor(getModel(), taskAttribute);
- } else if (IBugzillaConstants.EDITOR_TYPE_VOTES.equals(type)) {
- editor = new BugzillaVotesEditor(getModel(), taskAttribute);
- } else if (IBugzillaConstants.EDITOR_TYPE_FLAG.equals(type)) {
- editor = new FlagAttributeEditor(getModel(), taskAttribute);
- } else {
- editor = super.createEditor(type, taskAttribute);
- if (TaskAttribute.TYPE_BOOLEAN.equals(type)) {
- editor.setDecorationEnabled(false);
- }
- }
-
- if (editor != null && taskAttribute.getId().startsWith(BugzillaCustomField.CUSTOM_FIELD_PREFIX)) {
- editor.setLayoutHint(new LayoutHint(editor.getLayoutHint()) {
-
- @Override
- public int getPriority() {
- return super.getPriority() * 10;
- }
- });
- }
-
- TaskAttributeMetaData properties = taskAttribute.getMetaData();
- if (editor != null && IBugzillaConstants.EDITOR_TYPE_FLAG.equals(properties.getType())) {
- editor.setLayoutHint(new LayoutHint(editor.getLayoutHint()) {
-
- @Override
- public int getPriority() {
- return super.getPriority() * 5;
- }
- });
- }
- BugzillaTaskEditorPage.this.addToAttributeEditorMap(taskAttribute, editor);
- return editor;
- }
- };
- return factory;
- }
-
- @Override
- public void doSubmit() {
- TaskAttribute summaryAttribute = getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.SUMMARY);
- if (summaryAttribute != null && summaryAttribute.getValue().length() == 0) {
- getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_enter_a_short_summary_before_submitting,
- IMessageProvider.ERROR);
- AbstractTaskEditorPart part = getPart(ID_PART_SUMMARY);
- if (part != null) {
- part.setFocus();
- }
- return;
- }
-
- TaskAttribute componentAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.COMPONENT.getKey());
- if (componentAttribute != null && componentAttribute.getValue().length() == 0) {
- getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_select_a_component_before_submitting,
- IMessageProvider.ERROR);
- AbstractTaskEditorPart part = getPart(ID_PART_ATTRIBUTES);
- if (part != null) {
- part.setFocus();
- }
- return;
- }
-
- TaskAttribute descriptionAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
- TaskAttribute.DESCRIPTION);
- if (descriptionAttribute != null && descriptionAttribute.getValue().length() == 0
- && getModel().getTaskData().isNew()) {
- getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_enter_a_description_before_submitting,
- IMessageProvider.ERROR);
- AbstractTaskEditorPart descriptionPart = getPart(ID_PART_DESCRIPTION);
- if (descriptionPart != null) {
- descriptionPart.setFocus();
- }
- return;
- }
-
- if (getModel().getTaskData().isNew()) {
- TaskAttribute productAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
- TaskAttribute.PRODUCT);
- if (productAttribute != null && productAttribute.getValue().length() > 0) {
- getModel().getTaskRepository().setProperty(IBugzillaConstants.LAST_PRODUCT_SELECTION,
- productAttribute.getValue());
- }
- TaskAttribute componentSelectedAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
- TaskAttribute.COMPONENT);
- if (componentSelectedAttribute != null && componentSelectedAttribute.getValue().length() > 0) {
- getModel().getTaskRepository().setProperty(IBugzillaConstants.LAST_COMPONENT_SELECTION,
- componentSelectedAttribute.getValue());
- }
- }
-
- // Force the most recent known good token onto the outgoing task data to ensure submit
- // bug#263318
- TaskAttribute attrToken = getModel().getTaskData().getRoot().getAttribute(BugzillaAttribute.TOKEN.getKey());
- if (attrToken != null) {
- attrToken.setValue(getModel().getTask().getAttribute(BugzillaAttribute.TOKEN.getKey()));
- }
-
- super.doSubmit();
- }
-
- @Override
- protected void createParts() {
- attributeEditorMap.clear();
- super.createParts();
- }
-
- @Override
- protected TaskDataModel createModel(TaskEditorInput input) throws CoreException {
- TaskDataModel model = super.createModel(input);
- productListener = new ProductSelectionListener();
- model.addModelListener(productListener);
- return model;
- }
-
- /**
- * @since 3.1
- */
- private void addToAttributeEditorMap(TaskAttribute attribute, AbstractAttributeEditor editor) {
- if (attributeEditorMap.containsKey(attribute)) {
- attributeEditorMap.remove(attribute);
- }
- attributeEditorMap.put(attribute, editor);
- }
-
- /**
- * @since 3.1
- */
- private AbstractAttributeEditor getEditorForAttribute(TaskAttribute attribute) {
- return attributeEditorMap.get(attribute);
- }
-
- private void refresh(TaskAttribute attributeComponent) {
- AbstractAttributeEditor editor = getEditorForAttribute(attributeComponent);
- if (editor != null) {
- try {
- editor.refresh();
- } catch (UnsupportedOperationException e) {
- // ignore
- }
- }
- }
-
- private class ProductSelectionListener extends TaskDataModelListener {
- @Override
- public void attributeChanged(TaskDataModelEvent event) {
- TaskAttribute taskAttribute = event.getTaskAttribute();
- if (taskAttribute != null) {
- if (taskAttribute.getId().equals(BugzillaAttribute.PRODUCT.getKey())) {
- RepositoryConfiguration repositoryConfiguration = null;
- try {
- repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(
- getModel().getTaskRepository(), false, new NullProgressMonitor());
- } catch (CoreException e) {
- StatusHandler.log(new RepositoryStatus(getTaskRepository(), IStatus.ERROR,
- BugzillaUiPlugin.ID_PLUGIN, 0, "Failed to obtain repository configuration", e)); //$NON-NLS-1$
- getTaskEditor().setMessage("Problem occured when updating attributes", IMessageProvider.ERROR); //$NON-NLS-1$
- return;
- }
-
- TaskAttribute attributeComponent = taskAttribute.getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.COMPONENT.getKey());
- if (attributeComponent != null) {
- List<String> optionValues = repositoryConfiguration.getComponents(taskAttribute.getValue());
- Collections.sort(optionValues);
- attributeComponent.clearOptions();
- for (String option : optionValues) {
- attributeComponent.putOption(option, option);
- }
- if (optionValues.size() == 1) {
- attributeComponent.setValue(optionValues.get(0));
- } else {
- attributeComponent.setValue(""); //$NON-NLS-1$
- }
- refresh(attributeComponent);
- }
-
- TaskAttribute attributeTargetMilestone = taskAttribute.getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.TARGET_MILESTONE.getKey());
- if (attributeTargetMilestone != null) {
- List<String> optionValues = repositoryConfiguration.getTargetMilestones(taskAttribute.getValue());
- Collections.sort(optionValues);
- attributeTargetMilestone.clearOptions();
- for (String option : optionValues) {
- attributeTargetMilestone.putOption(option, option);
- }
- if (optionValues.size() == 1) {
- attributeTargetMilestone.setValue(optionValues.get(0));
- } else {
- attributeTargetMilestone.setValue("---"); //$NON-NLS-1$
- }
- refresh(attributeTargetMilestone);
- }
-
- TaskAttribute attributeVersion = taskAttribute.getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.VERSION.getKey());
- if (attributeVersion != null) {
- List<String> optionValues = repositoryConfiguration.getVersions(taskAttribute.getValue());
- Collections.sort(optionValues);
- attributeVersion.clearOptions();
- for (String option : optionValues) {
- attributeVersion.putOption(option, option);
- }
- if (optionValues.size() == 1) {
- attributeVersion.setValue(optionValues.get(0));
- } else {
- attributeVersion.setValue("unspecified"); //$NON-NLS-1$
- }
- refresh(attributeVersion);
- }
-
- TaskAttribute attributeDefaultAssignee = taskAttribute.getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.SET_DEFAULT_ASSIGNEE.getKey());
- if (attributeDefaultAssignee != null) {
- attributeDefaultAssignee.setValue("1"); //$NON-NLS-1$
- refresh(attributeDefaultAssignee);
- }
-
-/*
- * add confirm_product_change to avoid verification page on submit
- */
- TaskAttribute attributeConfirmeProductChange = taskAttribute.getTaskData()
- .getRoot()
- .getMappedAttribute(BugzillaAttribute.CONFIRM_PRODUCT_CHANGE.getKey());
- if (attributeConfirmeProductChange == null) {
- attributeConfirmeProductChange = BugzillaTaskDataHandler.createAttribute(
- taskAttribute.getTaskData().getRoot(), BugzillaAttribute.CONFIRM_PRODUCT_CHANGE);
- }
- if (attributeConfirmeProductChange != null) {
- attributeConfirmeProductChange.setValue("1"); //$NON-NLS-1$
- }
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPageFactory.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPageFactory.java
deleted file mode 100644
index 23b977679..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPageFactory.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.forms.editor.IFormPage;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaTaskEditorPageFactory extends AbstractTaskEditorPageFactory {
-
- @Override
- public boolean canCreatePageFor(TaskEditorInput input) {
- if (input.getTask().getConnectorKind().equals(BugzillaCorePlugin.CONNECTOR_KIND)
- || TasksUiUtil.isOutgoingNewTask(input.getTask(), BugzillaCorePlugin.CONNECTOR_KIND)) {
- return true;
- }
- return false;
- }
-
- @Override
- public IFormPage createPage(TaskEditor parentEditor) {
- return new BugzillaTaskEditorPage(parentEditor);
- }
-
- @Override
- public String[] getConflictingIds(TaskEditorInput input) {
- if (!input.getTask().getConnectorKind().equals(BugzillaCorePlugin.CONNECTOR_KIND)) {
- return new String[] { ITasksUiConstants.ID_PAGE_PLANNING };
- }
- return null;
- }
-
- @Override
- public int getPriority() {
- return PRIORITY_TASK;
- }
-
- @Override
- public Image getPageImage() {
- return CommonImages.getImage(TasksUiImages.REPOSITORY_SMALL);
- }
-
- @Override
- public String getPageText() {
- return "Bugzilla"; //$NON-NLS-1$
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaVotesEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaVotesEditor.java
deleted file mode 100644
index d2ba620e2..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaVotesEditor.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaVotesEditor extends AbstractAttributeEditor {
-
- // Copy from <code>TaskEditorAttributePart</code>
- private static final int LABEL_WIDTH = 100;
-
- // Copy from TaskEditorAttributePart
- private static final int COLUMN_GAP = 5;
-
- public BugzillaVotesEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- }
-
- private Hyperlink voteControl;
-
- private Label hiddenLabel;
-
- private Hyperlink showVotes;
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- ((GridData) getLabelControl().getLayoutData()).exclude = true;
- showVotes = toolkit.createHyperlink(parent, getTaskAttribute().getValue(), SWT.NONE);
- showVotes.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- showVotes.setToolTipText(Messages.BugzillaVotesEditor_Show_votes);
- showVotes.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TasksUiUtil.openUrl(getTaskAttribute().getTaskData().getRepositoryUrl()
- + IBugzillaConstants.URL_SHOW_VOTES + getTaskAttribute().getTaskData().getTaskId());
- }
- });
- setControl(showVotes);
- }
-
- @Override
- public void createLabelControl(Composite composite, FormToolkit toolkit) {
- voteControl = toolkit.createHyperlink(composite, getLabel(), SWT.NONE);
- voteControl.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- voteControl.setToolTipText(Messages.BugzillaVotesEditor_Vote);
- voteControl.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TasksUiUtil.openUrl(getTaskAttribute().getTaskData().getRepositoryUrl() + IBugzillaConstants.URL_VOTE
- + getTaskAttribute().getTaskData().getTaskId());
- }
- });
-
- GridData gd = GridDataFactory.fillDefaults()
- .align(SWT.RIGHT, SWT.CENTER)
- .hint(LABEL_WIDTH, SWT.DEFAULT)
- .create();
-
- gd.horizontalIndent = COLUMN_GAP;
- gd.widthHint = LABEL_WIDTH + COLUMN_GAP;
-
- voteControl.setLayoutData(gd);
-
- hiddenLabel = toolkit.createLabel(composite, ""); //$NON-NLS-1$
- GridData data = new GridData();
- data.exclude = true;
- hiddenLabel.setLayoutData(data);
- }
-
- @Override
- protected void decorateOutgoing(Color color) {
- // ignore
- }
-
- @Override
- public Label getLabelControl() {
- return hiddenLabel;
- }
-
- public String getValue() {
- return getAttributeMapper().getValue(getTaskAttribute());
- }
-
- public void setValue(String text) {
- getAttributeMapper().setValue(getTaskAttribute(), text);
- attributeChanged();
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/FlagAttributeEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/FlagAttributeEditor.java
deleted file mode 100644
index 47bca654e..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/FlagAttributeEditor.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.ui.editor;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Frank Becker
- */
-public class FlagAttributeEditor extends AbstractAttributeEditor {
-
- private String[] values;
-
- private CCombo combo;
-
- private Text requesteeText;
-
- public FlagAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.SINGLE, ColumnSpan.SINGLE));
- if (taskAttribute.getAttribute("state") != null) { //$NON-NLS-1$
- setReadOnly(taskAttribute.getAttribute("state").getMetaData().isReadOnly()); //$NON-NLS-1$
- }
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Composite composite = toolkit.createComposite(parent);
- GridLayout layout = new GridLayout(3, false);
- layout.marginWidth = 1;
- composite.setLayout(layout);
- if (isReadOnly()) {
- Text text = new Text(composite, SWT.FLAT | SWT.READ_ONLY);
- toolkit.adapt(text, false, false);
- text.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE);
- text.setText(getValueLabel());
- String tooltip = getTaskAttribute().getMetaData().getLabel();
- if (tooltip != null) {
- text.setToolTipText(tooltip);
- }
- } else {
- combo = new CCombo(composite, SWT.FLAT | SWT.READ_ONLY);
- toolkit.adapt(combo, false, false);
- combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- String tooltip = getTaskAttribute().getMetaData().getLabel();
- if (tooltip != null) {
- combo.setToolTipText(tooltip);
- }
-
- Map<String, String> labelByValue = getAttributeMapper().getAssoctiatedAttribute(getTaskAttribute())
- .getOptions();
- if (labelByValue != null) {
- values = labelByValue.keySet().toArray(new String[0]);
- for (String value : values) {
- combo.add(labelByValue.get(value));
- }
- }
-
- select(getValue(), getValueLabel());
-
- if (values != null) {
- combo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- int index = combo.getSelectionIndex();
- if (index > -1) {
- Assert.isNotNull(values);
- Assert.isLegal(index >= 0 && index <= values.length - 1);
- setValue(values[index]);
- if (requesteeText != null) {
- requesteeText.setEnabled(values[index].equals("?")); //$NON-NLS-1$
- }
- }
- }
- });
- }
- TaskAttribute requestee = getTaskAttribute().getAttribute("requestee"); //$NON-NLS-1$
- if (requestee != null && !requestee.getMetaData().isReadOnly()) {
- requesteeText = toolkit.createText(composite, requestee.getValue());
- requesteeText.setEnabled("?".equals(getValueLabel())); //$NON-NLS-1$
- GridData requesteeData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- requesteeData.widthHint = 78;
- requesteeText.setLayoutData(requesteeData);
- requesteeText.addFocusListener(new FocusListener() {
-
- public void focusGained(FocusEvent e) {
- }
-
- public void focusLost(FocusEvent e) {
- setRequestee(requesteeText.getText());
- }
- });
- }
- }
- toolkit.paintBordersFor(composite);
- setControl(composite);
- }
-
- public String getValue() {
-// return getAttributeMapper().getValue(getTaskAttribute());
- return getAttributeMapper().getValue(getAttributeMapper().getAssoctiatedAttribute(getTaskAttribute()));
- }
-
- public String getValueLabel() {
-// return getAttributeMapper().getValueLabel(getTaskAttribute());
- return getAttributeMapper().getValueLabel(getAttributeMapper().getAssoctiatedAttribute(getTaskAttribute()));
- }
-
- private void select(String value, String label) {
- if (values != null) {
- for (int i = 0; i < values.length; i++) {
- if (values[i].equals(value)) {
- combo.select(i);
- break;
- }
- }
- } else {
- combo.setText(label);
- }
- }
-
- public void setRequestee(String value) {
- TaskAttribute requestee = getTaskAttribute().getAttribute("requestee"); //$NON-NLS-1$
- if (requestee != null) {
- getAttributeMapper().setValue(getTaskAttribute().getAttribute("requestee"), value); //$NON-NLS-1$
- attributeChanged();
- }
- }
-
- public void setValue(String value) {
- getAttributeMapper().setValue(getAttributeMapper().getAssoctiatedAttribute(getTaskAttribute()), value);
- attributeChanged();
- }
-
- @Override
- public String getLabel() {
- String label = getAttributeMapper().getLabel(getAttributeMapper().getAssoctiatedAttribute(getTaskAttribute()));
- if (label != null) {
- label.replace("&", "&&"); //$NON-NLS-1$//$NON-NLS-2$
- } else {
- label = ""; //$NON-NLS-1$
- }
-
- TaskAttribute setter = getTaskAttribute().getAttribute("setter"); //$NON-NLS-1$
- if (setter != null) {
- String setterValue = setter.getValue();
- if (setterValue != null && !setterValue.equals("")) { //$NON-NLS-1$
- if (setterValue.indexOf("@") != 0) { //$NON-NLS-1$
- setterValue = setterValue.substring(0, setterValue.indexOf("@")); //$NON-NLS-1$
- }
- label = setterValue + ": " + label; //$NON-NLS-1$
- }
- }
- return label;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/KeywordsDialog.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/KeywordsDialog.java
deleted file mode 100644
index 396920aff..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/KeywordsDialog.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author Shawn Minto
- */
-public class KeywordsDialog extends Dialog {
-
- private final List<String> selectedKeywords;
-
- private final List<String> validKeywords;
-
- private CheckboxTableViewer keyWordsList;
-
- public KeywordsDialog(Shell shell, String selectedKeywords, java.util.List<String> validKeywords) {
- super(shell);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- StringTokenizer st = new StringTokenizer(selectedKeywords, ",", false); //$NON-NLS-1$
- this.selectedKeywords = new ArrayList<String>();
- while (st.hasMoreTokens()) {
- String s = st.nextToken().trim();
- this.selectedKeywords.add(s);
- }
-
- this.validKeywords = validKeywords;
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- getShell().setText(Messages.KeywordsDialog_Select_Keywords);
-
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- GridData gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
- composite.setLayoutData(gd);
-
- keyWordsList = CheckboxTableViewer.newCheckList(composite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- GridData keyWordsTextData = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
- keyWordsTextData.heightHint = 175;
- keyWordsTextData.widthHint = 160;
- keyWordsList.getTable().setLayoutData(keyWordsTextData);
-
- if (validKeywords != null) {
-
- keyWordsList.setContentProvider(new ITreeContentProvider() {
-
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof Collection<?>) {
- return ((Collection<?>) parentElement).toArray();
- }
- return null;
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return false;
- }
-
- public Object[] getElements(Object inputElement) {
- return getChildren(inputElement);
- }
-
- public void dispose() {
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-
- });
-
- Set<String> invalidKeywords = new HashSet<String>();
-
- keyWordsList.setInput(validKeywords);
-
- for (String keyword : selectedKeywords) {
- if (!keyWordsList.setChecked(keyword, true)) {
- invalidKeywords.add(keyword);
- }
- }
-
- selectedKeywords.removeAll(invalidKeywords);
-
- }
-
- keyWordsList.addCheckStateListener(new KeywordListener());
-
- parent.pack();
-
- applyDialogFont(composite);
-
- return composite;
- }
-
- protected class KeywordListener implements ICheckStateListener {
-
- public void checkStateChanged(CheckStateChangedEvent event) {
- if (event.getChecked()) {
- selectedKeywords.add((String) event.getElement());
- } else {
- selectedKeywords.remove(event.getElement());
- }
- }
-
- }
-
- public List<String> getSelectedKeywords() {
- return selectedKeywords;
- }
-
- public String getSelectedKeywordsString() {
- StringBuffer keywords = new StringBuffer();
-
- for (String sel : selectedKeywords) {
- keywords.append(sel);
- keywords.append(","); //$NON-NLS-1$
- }
-
- String keywordsString = keywords.toString();
-
- if (keywordsString.endsWith(",")) { //$NON-NLS-1$
- keywordsString = keywordsString.substring(0, keywordsString.length() - 1);
- }
-
- return keywordsString;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/Messages.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/Messages.java
deleted file mode 100644
index edbecef51..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/Messages.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.editor;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.ui.editor.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String BugzillaFlagPart_flags;
-
- public static String BugzillaKeywordAttributeEditor_Edit_;
-
- public static String BugzillaPeoplePart_People;
-
- public static String BugzillaPeoplePart__Select_to_remove_;
-
- public static String BugzillaPlanningEditorPart_Current_Estimate;
-
- public static String BugzillaPlanningEditorPart_Team_Planning;
-
- public static String BugzillaTaskEditorPage_Please_enter_a_description_before_submitting;
-
- public static String BugzillaTaskEditorPage_Please_enter_a_short_summary_before_submitting;
-
- public static String BugzillaTaskEditorPage_Please_select_a_component_before_submitting;
-
- public static String BugzillaVotesEditor_Show_votes;
-
- public static String BugzillaVotesEditor_Vote;
-
- public static String KeywordsDialog_Select_Keywords;
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/messages.properties b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/messages.properties
deleted file mode 100644
index 1644c5bfc..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/messages.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-BugzillaFlagPart_flags=Flags
-BugzillaKeywordAttributeEditor_Edit_=Edit...
-
-BugzillaPeoplePart_People=People
-BugzillaPeoplePart__Select_to_remove_=(Select to remove)
-
-BugzillaPlanningEditorPart_Current_Estimate=Current Estimate:
-BugzillaPlanningEditorPart_Team_Planning=Team Planning
-
-BugzillaTaskEditorPage_Please_enter_a_description_before_submitting=Please enter a description before submitting
-BugzillaTaskEditorPage_Please_enter_a_short_summary_before_submitting=Please enter a short summary before submitting
-BugzillaTaskEditorPage_Please_select_a_component_before_submitting=Please select a component before submitting
-
-BugzillaVotesEditor_Show_votes=Show votes
-BugzillaVotesEditor_Vote=Vote
-
-KeywordsDialog_Select_Keywords=Select Keywords
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
deleted file mode 100644
index 719aa056c..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java
+++ /dev/null
@@ -1,1960 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.ui.search;
-
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.DialogSettings;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.fieldassist.ComboContentAdapter;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin;
-import org.eclipse.mylyn.internal.bugzilla.ui.editor.KeywordsDialog;
-import org.eclipse.mylyn.internal.tasks.ui.util.WebBrowserDialog;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
-
-/**
- * Bugzilla search page
- *
- * @author Mik Kersten (hardening of prototype)
- * @author Frank Becker
- */
-public class BugzillaSearchPage extends AbstractRepositoryQueryPage implements Listener {
-
- private static final int HEIGHT_ATTRIBUTE_COMBO = 70;
-
- // protected Combo repositoryCombo = null;
-
- private static ArrayList<BugzillaSearchData> previousSummaryPatterns = new ArrayList<BugzillaSearchData>(20);
-
- private static ArrayList<BugzillaSearchData> previousEmailPatterns = new ArrayList<BugzillaSearchData>(20);
-
- private static ArrayList<BugzillaSearchData> previousEmailPatterns2 = new ArrayList<BugzillaSearchData>(20);
-
- private static ArrayList<BugzillaSearchData> previousCommentPatterns = new ArrayList<BugzillaSearchData>(20);
-
- private static ArrayList<BugzillaSearchData> previousKeywords = new ArrayList<BugzillaSearchData>(20);
-
- private boolean firstTime = true;
-
- private IDialogSettings fDialogSettings;
-
- private static final String[] patternOperationText = { Messages.BugzillaSearchPage_all_words,
- Messages.BugzillaSearchPage_any_word, Messages.BugzillaSearchPage_regexp,
- Messages.BugzillaSearchPage_notregexp };
-
- private static final String[] patternOperationValues = { "allwordssubstr", "anywordssubstr", "regexp", "notregexp" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- private static final String[] emailOperationText = { Messages.BugzillaSearchPage_substring,
- Messages.BugzillaSearchPage_exact, Messages.BugzillaSearchPage_regexp,
- Messages.BugzillaSearchPage_notregexp };
-
- private static final String[] emailOperationValues = { "substring", "exact", "regexp", "notregexp" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- private static final String[] keywordOperationText = { Messages.BugzillaSearchPage_all,
- Messages.BugzillaSearchPage_any, Messages.BugzillaSearchPage_none };
-
- private static final String[] keywordOperationValues = { "allwords", "anywords", "nowords" }; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-
- private static final String[] emailRoleValues = { "emailassigned_to1", "emailreporter1", "emailcc1", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "emaillongdesc1" }; //$NON-NLS-1$
-
- private static final String[] emailRoleValues2 = { "emailassigned_to2", "emailreporter2", "emailcc2", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "emaillongdesc2" }; //$NON-NLS-1$
-
- // dialog store id constants
- private final static String DIALOG_BOUNDS_KEY = "ResizableDialogBounds"; //$NON-NLS-1$
-
- private static final String X = "x"; //$NON-NLS-1$
-
- private static final String Y = "y"; //$NON-NLS-1$
-
- private static final String WIDTH = "width"; //$NON-NLS-1$
-
- private static final String HEIGHT = "height"; //$NON-NLS-1$
-
- private IRepositoryQuery originalQuery = null;
-
- protected boolean restoring = false;
-
- private boolean restoreQueryOptions = true;
-
- protected Combo summaryPattern;
-
- protected Combo summaryOperation;
-
- protected List product;
-
- protected List os;
-
- protected List hardware;
-
- protected List priority;
-
- protected List severity;
-
- protected List resolution;
-
- protected List status;
-
- protected Combo commentOperation;
-
- protected Combo commentPattern;
-
- protected List component;
-
- protected List version;
-
- protected List target;
-
- protected Combo emailOperation;
-
- protected Combo emailOperation2;
-
- protected Combo emailPattern;
-
- protected Combo emailPattern2;
-
- protected Button[] emailButtons;
-
- protected Button[] emailButtons2;
-
- private Combo keywords;
-
- private Combo keywordsOperation;
-
- protected Text daysText;
-
- // /** File containing saved queries */
- // protected static SavedQueryFile input;
-
- // /** "Remember query" button */
- // protected Button saveButton;
-
- // /** "Saved queries..." button */
- // protected Button loadButton;
-
- // /** Run a remembered query */
- // protected boolean rememberedQuery = false;
-
- /** Index of the saved query to run */
- protected int selIndex;
-
- // --------------- Configuration handling --------------
-
- // Dialog store taskId constants
- protected final static String PAGE_NAME = "BugzillaSearchPage"; //$NON-NLS-1$
-
- private static final String STORE_PRODUCT_ID = PAGE_NAME + ".PRODUCT"; //$NON-NLS-1$
-
- private static final String STORE_COMPONENT_ID = PAGE_NAME + ".COMPONENT"; //$NON-NLS-1$
-
- private static final String STORE_VERSION_ID = PAGE_NAME + ".VERSION"; //$NON-NLS-1$
-
- private static final String STORE_MSTONE_ID = PAGE_NAME + ".MILESTONE"; //$NON-NLS-1$
-
- private static final String STORE_STATUS_ID = PAGE_NAME + ".STATUS"; //$NON-NLS-1$
-
- private static final String STORE_RESOLUTION_ID = PAGE_NAME + ".RESOLUTION"; //$NON-NLS-1$
-
- private static final String STORE_SEVERITY_ID = PAGE_NAME + ".SEVERITY"; //$NON-NLS-1$
-
- private static final String STORE_PRIORITY_ID = PAGE_NAME + ".PRIORITY"; //$NON-NLS-1$
-
- private static final String STORE_HARDWARE_ID = PAGE_NAME + ".HARDWARE"; //$NON-NLS-1$
-
- private static final String STORE_OS_ID = PAGE_NAME + ".OS"; //$NON-NLS-1$
-
- private static final String STORE_SUMMARYMATCH_ID = PAGE_NAME + ".SUMMARYMATCH"; //$NON-NLS-1$
-
- private static final String STORE_COMMENTMATCH_ID = PAGE_NAME + ".COMMENTMATCH"; //$NON-NLS-1$
-
- private static final String STORE_EMAILMATCH_ID = PAGE_NAME + ".EMAILMATCH"; //$NON-NLS-1$
-
- private static final String STORE_EMAIL2MATCH_ID = PAGE_NAME + ".EMAIL2MATCH"; //$NON-NLS-1$
-
- private static final String STORE_EMAILBUTTON_ID = PAGE_NAME + ".EMAILATTR"; //$NON-NLS-1$
-
- private static final String STORE_EMAIL2BUTTON_ID = PAGE_NAME + ".EMAIL2ATTR"; //$NON-NLS-1$
-
- private static final String STORE_SUMMARYTEXT_ID = PAGE_NAME + ".SUMMARYTEXT"; //$NON-NLS-1$
-
- private static final String STORE_COMMENTTEXT_ID = PAGE_NAME + ".COMMENTTEXT"; //$NON-NLS-1$
-
- private static final String STORE_EMAILADDRESS_ID = PAGE_NAME + ".EMAILADDRESS"; //$NON-NLS-1$
-
- private static final String STORE_EMAIL2ADDRESS_ID = PAGE_NAME + ".EMAIL2ADDRESS"; //$NON-NLS-1$
-
- private static final String STORE_KEYWORDS_ID = PAGE_NAME + ".KEYWORDS"; //$NON-NLS-1$
-
- private static final String STORE_KEYWORDSMATCH_ID = PAGE_NAME + ".KEYWORDSMATCH"; //$NON-NLS-1$
-
- // private static final String STORE_REPO_ID = PAGE_NAME + ".REPO";
-
- private RepositoryConfiguration repositoryConfiguration;
-
- private final SelectionAdapter updateActionSelectionAdapter = new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (isControlCreated()) {
- setPageComplete(isPageComplete());
- }
- }
- };
-
- private Text queryTitle;
-
- private final class ModifyListenerImplementation implements ModifyListener {
- public void modifyText(ModifyEvent e) {
- if (isControlCreated()) {
- setPageComplete(isPageComplete());
- }
- }
- }
-
- @Override
- public void setPageComplete(boolean complete) {
- super.setPageComplete(complete);
- if (getSearchContainer() != null) {
- getSearchContainer().setPerformActionEnabled(complete);
- }
- }
-
- private static class BugzillaSearchData {
- /** Pattern to match on */
- String pattern;
-
- /** Pattern matching criterion */
- int operation;
-
- BugzillaSearchData(String pattern, int operation) {
- this.pattern = pattern;
- this.operation = operation;
- }
- }
-
- public BugzillaSearchPage(TaskRepository repository) {
- super(Messages.BugzillaSearchPage_Bugzilla_Query, repository);
- // setTitle(TITLE);
- // setDescription(DESCRIPTION);
- // setImageDescriptor(TaskListImages.BANNER_REPOSITORY);
- // setPageComplete(false);
-// try {
-// repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(repository, false);
-// } catch (final CoreException e) {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// MessageDialog.openError(Display.getDefault().getActiveShell(), "Bugzilla Search Page",
-// "Unable to get configuration. Ensure proper repository configuration in "
-// + TasksUiPlugin.LABEL_VIEW_REPOSITORIES + ".\n\n");
-// }
-// });
-// }
- }
-
- public BugzillaSearchPage(TaskRepository repository, IRepositoryQuery origQuery) {
- super(Messages.BugzillaSearchPage_Bugzilla_Query, repository, origQuery);
- originalQuery = origQuery;
- setDescription(Messages.BugzillaSearchPage_Select_the_Bugzilla_query_parameters);
- // setTitle(TITLE);
- // setDescription(DESCRIPTION);
- // setPageComplete(false);
-// try {
-// repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(repository, false);
-// } catch (final CoreException e) {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// MessageDialog.openError(Display.getDefault().getActiveShell(), "Bugzilla Search Page",
-// "Unable to get configuration. Ensure proper repository configuration in "
-// + TasksUiPlugin.LABEL_VIEW_REPOSITORIES + ".\n\n");
-// }
-// });
-// }
- }
-
- public void createControl(Composite parent) {
- readConfiguration();
-
- Composite control = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(1, false);
- layout.marginHeight = 0;
- control.setLayout(layout);
- control.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL));
-
-// if (scontainer == null) {
- // Not presenting in search pane so want query title
-// super.createControl(control);
-// Label lblName = new Label(control, SWT.NONE);
-// final GridData gridData = new GridData();
-// lblName.setLayoutData(gridData);
-// lblName.setText("Query Title:");
-//
-// title = new Text(control, SWT.BORDER);
-// title.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-// title.addModifyListener(new ModifyListener() {
-// public void modifyText(ModifyEvent e) {
-// setPageComplete(isPageComplete());
-// }
-// });
-// }
-
- // else {
- // // if (repository == null) {
- // // search pane so add repository selection
- // createRepositoryGroup(control);
- // }
- createOptionsGroup(control);
- createSearchGroup(control);
-
- // createSaveQuery(control);
- // createMaxHits(control);
- // input = new SavedQueryFile(BugzillaPlugin.getDefault().getStateLocation().toString(), "/queries");
- // createUpdate(control);
- // if (originalQuery != null) {
- // try {
- // updateDefaults(originalQuery.getQueryUrl(), String.valueOf(originalQuery.getMaxHits()));
- // } catch (UnsupportedEncodingException e) {
- // // ignore
- // }
- // }
- Dialog.applyDialogFont(control);
- setControl(control);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(control, BugzillaUiPlugin.SEARCH_PAGE_CONTEXT);
- restoreBounds();
- }
-
- protected void createOptionsGroup(Composite control) {
- GridLayout sashFormLayout = new GridLayout();
- sashFormLayout.numColumns = 4;
- sashFormLayout.marginHeight = 5;
- sashFormLayout.marginWidth = 5;
- sashFormLayout.horizontalSpacing = 5;
-
- final Composite composite = new Composite(control, SWT.NONE);
- composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- final GridLayout gridLayout = new GridLayout();
- gridLayout.marginBottom = 8;
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- gridLayout.numColumns = 4;
- composite.setLayout(gridLayout);
-
- if (!inSearchContainer()) {
- final Label queryTitleLabel = new Label(composite, SWT.NONE);
- queryTitleLabel.setText(Messages.BugzillaSearchPage_Query_Title);
-
- queryTitle = new Text(composite, SWT.BORDER);
- queryTitle.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
- if (originalQuery != null) {
- queryTitle.setText(originalQuery.getSummary());
- }
- queryTitle.addModifyListener(new ModifyListenerImplementation());
- queryTitle.setFocus();
- }
-
- // Info text
- Label labelSummary = new Label(composite, SWT.LEFT);
- labelSummary.setText(Messages.BugzillaSearchPage_Summary);
-// labelSummary.setLayoutData(new GridData(LABEL_WIDTH, SWT.DEFAULT));
- //labelSummary.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- // Pattern combo
- summaryPattern = new Combo(composite, SWT.SINGLE | SWT.BORDER);
- summaryPattern.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
- summaryPattern.addModifyListener(new ModifyListenerImplementation());
- summaryPattern.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleWidgetSelected(summaryPattern, summaryOperation, previousSummaryPatterns);
- }
- });
-
- summaryOperation = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
- summaryOperation.setItems(patternOperationText);
- summaryOperation.setText(patternOperationText[0]);
- summaryOperation.select(0);
-
- // Info text
- Label labelComment = new Label(composite, SWT.LEFT);
- labelComment.setText(Messages.BugzillaSearchPage_Comment);
- //labelComment.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- // Comment pattern combo
- commentPattern = new Combo(composite, SWT.SINGLE | SWT.BORDER);
- commentPattern.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
- commentPattern.addModifyListener(new ModifyListenerImplementation());
- commentPattern.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleWidgetSelected(commentPattern, commentOperation, previousCommentPatterns);
- }
- });
-
- commentOperation = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
- commentOperation.setItems(patternOperationText);
- commentOperation.setText(patternOperationText[0]);
- commentOperation.select(0);
-
- Label labelEmail = new Label(composite, SWT.LEFT);
- labelEmail.setText(Messages.BugzillaSearchPage_Email);
- //labelEmail.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- // pattern combo
- emailPattern = new Combo(composite, SWT.SINGLE | SWT.BORDER);
- emailPattern.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- emailPattern.addModifyListener(new ModifyListenerImplementation());
- emailPattern.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleWidgetSelected(emailPattern, emailOperation, previousEmailPatterns);
- }
- });
- IContentProposalProvider proposalProvider = TasksUi.getUiFactory().createPersonContentProposalProvider(
- getTaskRepository());
- ILabelProvider proposalLabelProvider = TasksUi.getUiFactory().createPersonContentProposalLabelProvider(
- getTaskRepository());
-
- ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(emailPattern, new ComboContentAdapter(),
- proposalProvider, ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, new char[0], true);
- adapter.setLabelProvider(proposalLabelProvider);
- adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-
- Composite emailComposite = new Composite(composite, SWT.NONE);
- emailComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- GridLayout emailLayout = new GridLayout();
- emailLayout.marginWidth = 0;
- emailLayout.marginHeight = 0;
- emailLayout.horizontalSpacing = 2;
- emailLayout.numColumns = 4;
- emailComposite.setLayout(emailLayout);
-
- Button button0 = new Button(emailComposite, SWT.CHECK);
- button0.setText(Messages.BugzillaSearchPage_owner);
-
- Button button1 = new Button(emailComposite, SWT.CHECK);
- button1.setText(Messages.BugzillaSearchPage_reporter);
-
- Button button2 = new Button(emailComposite, SWT.CHECK);
- button2.setText(Messages.BugzillaSearchPage_cc);
-
- Button button3 = new Button(emailComposite, SWT.CHECK);
- button3.setText(Messages.BugzillaSearchPage_commenter);
-
- emailButtons = new Button[] { button0, button1, button2, button3 };
-
- // operation combo
- emailOperation = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
- emailOperation.setItems(emailOperationText);
- emailOperation.setText(emailOperationText[0]);
- emailOperation.select(0);
-
- // Email2
-
- Label labelEmail2 = new Label(composite, SWT.LEFT);
- labelEmail2.setText(Messages.BugzillaSearchPage_Email_2);
- //labelEmail.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- // pattern combo
- emailPattern2 = new Combo(composite, SWT.SINGLE | SWT.BORDER);
- emailPattern2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- emailPattern2.addModifyListener(new ModifyListenerImplementation());
- emailPattern2.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleWidgetSelected(emailPattern2, emailOperation2, previousEmailPatterns2);
- }
- });
- ContentAssistCommandAdapter adapter2 = new ContentAssistCommandAdapter(emailPattern2,
- new ComboContentAdapter(), proposalProvider, ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS,
- new char[0], true);
- adapter.setLabelProvider(proposalLabelProvider);
- adapter2.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-
- Composite emailComposite2 = new Composite(composite, SWT.NONE);
- emailComposite2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
- GridLayout emailLayout2 = new GridLayout();
- emailLayout2.marginWidth = 0;
- emailLayout2.marginHeight = 0;
- emailLayout2.horizontalSpacing = 2;
- emailLayout2.numColumns = 4;
- emailComposite2.setLayout(emailLayout2);
-
- Button e2button0 = new Button(emailComposite2, SWT.CHECK);
- e2button0.setText(Messages.BugzillaSearchPage_owner);
-
- Button e2button1 = new Button(emailComposite2, SWT.CHECK);
- e2button1.setText(Messages.BugzillaSearchPage_reporter);
-
- Button e2button2 = new Button(emailComposite2, SWT.CHECK);
- e2button2.setText(Messages.BugzillaSearchPage_cc);
-
- Button e2button3 = new Button(emailComposite2, SWT.CHECK);
- e2button3.setText(Messages.BugzillaSearchPage_commenter);
-
- emailButtons2 = new Button[] { e2button0, e2button1, e2button2, e2button3 };
-
- // operation combo
- emailOperation2 = new Combo(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
- emailOperation2.setItems(emailOperationText);
- emailOperation2.setText(emailOperationText[0]);
- emailOperation2.select(0);
-
- /////
-
- Label labelKeywords = new Label(composite, SWT.NONE);
- labelKeywords.setText(Messages.BugzillaSearchPage_Keywords);
-// labelKeywords.setLayoutData(new GridData(LABEL_WIDTH, SWT.DEFAULT));
- //labelKeywords.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-
- Composite keywordsComposite = new Composite(composite, SWT.NONE);
- keywordsComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 3, 1));
- GridLayout keywordsLayout = new GridLayout();
- keywordsLayout.marginWidth = 0;
- keywordsLayout.marginHeight = 0;
- keywordsLayout.numColumns = 3;
- keywordsComposite.setLayout(keywordsLayout);
-
- keywordsOperation = new Combo(keywordsComposite, SWT.READ_ONLY);
- keywordsOperation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- keywordsOperation.setItems(keywordOperationText);
- keywordsOperation.setText(keywordOperationText[0]);
- keywordsOperation.select(0);
-
- keywords = new Combo(keywordsComposite, SWT.NONE);
- keywords.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- keywords.addModifyListener(new ModifyListenerImplementation());
- keywords.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleWidgetSelected(keywords, keywordsOperation, previousKeywords);
- }
- });
-
- Button keywordsSelectButton = new Button(keywordsComposite, SWT.NONE);
- keywordsSelectButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (repositoryConfiguration != null && getShell() != null) {
- KeywordsDialog dialog = new KeywordsDialog(getShell(), keywords.getText(), //
- repositoryConfiguration.getKeywords());
- if (dialog.open() == Window.OK) {
- keywords.setText(dialog.getSelectedKeywordsString());
- }
- }
- }
- });
- keywordsSelectButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- keywordsSelectButton.setText(Messages.BugzillaSearchPage_Select_);
- SashForm sashForm = new SashForm(control, SWT.VERTICAL);
- sashForm.setLayout(sashFormLayout);
- final GridData gd_sashForm = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_sashForm.widthHint = 500;
- sashForm.setLayoutData(gd_sashForm);
-
- GridLayout topLayout = new GridLayout();
- topLayout.numColumns = 4;
- SashForm topForm = new SashForm(sashForm, SWT.NONE);
- GridData topLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
- topLayoutData.widthHint = 500;
- topForm.setLayoutData(topLayoutData);
- topForm.setLayout(topLayout);
-
- GridLayout productLayout = new GridLayout();
- productLayout.marginWidth = 0;
- productLayout.marginHeight = 0;
- productLayout.horizontalSpacing = 0;
- Composite productComposite = new Composite(topForm, SWT.NONE);
- productComposite.setLayout(productLayout);
-
- Label productLabel = new Label(productComposite, SWT.LEFT);
- productLabel.setText(Messages.BugzillaSearchPage_Product);
- productLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- GridData productLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
- productLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
- product = new List(productComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- product.setLayoutData(productLayoutData);
- product.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (product.getSelectionIndex() != -1) {
- String[] selectedProducts = product.getSelection();
- updateAttributesFromConfiguration(selectedProducts);
- } else {
- updateAttributesFromConfiguration(null);
- }
- if (restoring) {
- restoring = false;
- restoreWidgetValues();
- }
- setPageComplete(isPageComplete());
- }
- });
-
- GridLayout componentLayout = new GridLayout();
- componentLayout.marginWidth = 0;
- componentLayout.marginHeight = 0;
- componentLayout.horizontalSpacing = 0;
- Composite componentComposite = new Composite(topForm, SWT.NONE);
- componentComposite.setLayout(componentLayout);
-
- Label componentLabel = new Label(componentComposite, SWT.LEFT);
- componentLabel.setText(Messages.BugzillaSearchPage_Component);
- componentLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- component = new List(componentComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- GridData componentLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
- componentLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
- component.setLayoutData(componentLayoutData);
- component.addSelectionListener(updateActionSelectionAdapter);
-
- Composite versionComposite = new Composite(topForm, SWT.NONE);
- GridLayout versionLayout = new GridLayout();
- versionLayout.marginWidth = 0;
- versionLayout.marginHeight = 0;
- versionLayout.horizontalSpacing = 0;
- versionComposite.setLayout(versionLayout);
-
- Label versionLabel = new Label(versionComposite, SWT.LEFT);
- versionLabel.setText(Messages.BugzillaSearchPage_Version);
- versionLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- version = new List(versionComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- GridData versionLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
- versionLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
- version.setLayoutData(versionLayoutData);
- version.addSelectionListener(updateActionSelectionAdapter);
-
- Composite milestoneComposite = new Composite(topForm, SWT.NONE);
- GridLayout milestoneLayout = new GridLayout();
- milestoneLayout.marginWidth = 0;
- milestoneLayout.marginHeight = 0;
- milestoneLayout.horizontalSpacing = 0;
- milestoneComposite.setLayout(milestoneLayout);
-
- Label milestoneLabel = new Label(milestoneComposite, SWT.LEFT);
- milestoneLabel.setText(Messages.BugzillaSearchPage_Milestone);
- milestoneLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- target = new List(milestoneComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- GridData targetLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
- targetLayoutData.heightHint = HEIGHT_ATTRIBUTE_COMBO;
- target.setLayoutData(targetLayoutData);
- target.addSelectionListener(updateActionSelectionAdapter);
-
- SashForm bottomForm = new SashForm(sashForm, SWT.NONE);
- GridLayout bottomLayout = new GridLayout();
- bottomLayout.numColumns = 6;
- bottomForm.setLayout(bottomLayout);
- GridData bottomLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1);
- bottomLayoutData.heightHint = 119;
- bottomLayoutData.widthHint = 400;
- bottomForm.setLayoutData(bottomLayoutData);
-
- Composite statusComposite = new Composite(bottomForm, SWT.NONE);
- GridLayout statusLayout = new GridLayout();
- statusLayout.marginTop = 7;
- statusLayout.marginWidth = 0;
- statusLayout.horizontalSpacing = 0;
- statusLayout.marginHeight = 0;
- statusComposite.setLayout(statusLayout);
-
- Label statusLabel = new Label(statusComposite, SWT.LEFT);
- statusLabel.setText(Messages.BugzillaSearchPage_Status);
- statusLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- status = new List(statusComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- final GridData gd_status = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_status.heightHint = 60;
- status.setLayoutData(gd_status);
- status.addSelectionListener(updateActionSelectionAdapter);
-
- Composite resolutionComposite = new Composite(bottomForm, SWT.NONE);
- GridLayout resolutionLayout = new GridLayout();
- resolutionLayout.marginTop = 7;
- resolutionLayout.marginWidth = 0;
- resolutionLayout.marginHeight = 0;
- resolutionLayout.horizontalSpacing = 0;
- resolutionComposite.setLayout(resolutionLayout);
-
- Label resolutionLabel = new Label(resolutionComposite, SWT.LEFT);
- resolutionLabel.setText(Messages.BugzillaSearchPage_Resolution);
- resolutionLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- resolution = new List(resolutionComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- final GridData gd_resolution = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_resolution.heightHint = 60;
- resolution.setLayoutData(gd_resolution);
- resolution.addSelectionListener(updateActionSelectionAdapter);
-
- Composite priorityComposite = new Composite(bottomForm, SWT.NONE);
- GridLayout priorityLayout = new GridLayout();
- priorityLayout.marginTop = 7;
- priorityLayout.marginWidth = 0;
- priorityLayout.marginHeight = 0;
- priorityLayout.horizontalSpacing = 0;
- priorityComposite.setLayout(priorityLayout);
-
- Label priorityLabel = new Label(priorityComposite, SWT.LEFT);
- priorityLabel.setText(Messages.BugzillaSearchPage_PROORITY);
- priorityLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- priority = new List(priorityComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- final GridData gd_priority = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_priority.heightHint = 60;
- priority.setLayoutData(gd_priority);
- priority.addSelectionListener(updateActionSelectionAdapter);
-
- Composite severityComposite = new Composite(bottomForm, SWT.NONE);
- GridLayout severityLayout = new GridLayout();
- severityLayout.marginTop = 7;
- severityLayout.marginWidth = 0;
- severityLayout.marginHeight = 0;
- severityLayout.horizontalSpacing = 0;
- severityComposite.setLayout(severityLayout);
-
- Label severityLabel = new Label(severityComposite, SWT.LEFT);
- severityLabel.setText(Messages.BugzillaSearchPage_Severity);
- severityLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- severity = new List(severityComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- final GridData gd_severity = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_severity.heightHint = 60;
- severity.setLayoutData(gd_severity);
- severity.addSelectionListener(updateActionSelectionAdapter);
-
- Composite hardwareComposite = new Composite(bottomForm, SWT.NONE);
- GridLayout hardwareLayout = new GridLayout();
- hardwareLayout.marginTop = 7;
- hardwareLayout.marginWidth = 0;
- hardwareLayout.marginHeight = 0;
- hardwareLayout.horizontalSpacing = 0;
- hardwareComposite.setLayout(hardwareLayout);
-
- Label hardwareLabel = new Label(hardwareComposite, SWT.LEFT);
- hardwareLabel.setText(Messages.BugzillaSearchPage_Hardware);
- hardwareLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- hardware = new List(hardwareComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- final GridData gd_hardware = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_hardware.heightHint = 60;
- hardware.setLayoutData(gd_hardware);
- hardware.addSelectionListener(updateActionSelectionAdapter);
-
- Composite osComposite = new Composite(bottomForm, SWT.NONE);
- GridLayout osLayout = new GridLayout();
- osLayout.marginTop = 7;
- osLayout.marginWidth = 0;
- osLayout.marginHeight = 0;
- osLayout.horizontalSpacing = 0;
- osComposite.setLayout(osLayout);
-
- Label osLabel = new Label(osComposite, SWT.LEFT);
- osLabel.setText(Messages.BugzillaSearchPage_Operating_System);
- osLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- os = new List(osComposite, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- final GridData gd_os = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd_os.heightHint = 60;
- os.setLayoutData(gd_os);
- os.addSelectionListener(updateActionSelectionAdapter);
- bottomForm.setWeights(new int[] { 88, 90, 50, 77, 88, 85 });
- }
-
- private void createSearchGroup(Composite control) {
- Composite composite = new Composite(control, SWT.NONE);
- composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- GridLayout gridLayout = new GridLayout();
- gridLayout.marginTop = 7;
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- gridLayout.numColumns = 2;
- composite.setLayout(gridLayout);
-
- Label changedInTheLabel = new Label(composite, SWT.LEFT);
- changedInTheLabel.setLayoutData(new GridData());
- changedInTheLabel.setText(Messages.BugzillaSearchPage_Changed_in);
-
- Composite updateComposite = new Composite(composite, SWT.NONE);
- updateComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- GridLayout updateLayout = new GridLayout(3, false);
- updateLayout.marginWidth = 0;
- updateLayout.horizontalSpacing = 0;
- updateLayout.marginHeight = 0;
- updateComposite.setLayout(updateLayout);
-
- daysText = new Text(updateComposite, SWT.BORDER);
- daysText.setLayoutData(new GridData(40, SWT.DEFAULT));
- daysText.setTextLimit(5);
- daysText.addListener(SWT.Modify, this);
-
- Label label = new Label(updateComposite, SWT.LEFT);
- label.setText(Messages.BugzillaSearchPage_days);
-
- Button updateButton = new Button(updateComposite, SWT.PUSH);
- updateButton.setText(Messages.BugzillaSearchPage_Update_Attributes_from_Repository);
- updateButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
- updateButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (getTaskRepository() != null) {
-// try {
-
- updateConfiguration(true);
-
-// } catch (final CoreException e1) {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// MessageDialog.openError(Display.getDefault().getActiveShell(), "Bugzilla Search Page",
-// "Unable to get configuration. Ensure proper repository configuration in "
-// + TasksUiPlugin.LABEL_VIEW_REPOSITORIES + ".\n\n");
-// }
-// });
-// }
- } else {
- MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
- IBugzillaConstants.TITLE_MESSAGE_DIALOG,
- Messages.BugzillaSearchPage_No_repository_available);
- }
- }
- });
- }
-
- /**
- * Creates the buttons for remembering a query and accessing previously saved queries.
- */
- protected Control createSaveQuery(Composite control) {
- GridLayout layout;
- GridData gd;
-
- Group group = new Group(control, SWT.NONE);
- layout = new GridLayout(3, false);
- group.setLayout(layout);
- group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- gd = new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- gd.horizontalSpan = 2;
- group.setLayoutData(gd);
-
- // loadButton = new Button(group, SWT.PUSH | SWT.LEFT);
- // loadButton.setText("Saved Queries...");
- // final BugzillaSearchPage bsp = this;
- // loadButton.addSelectionListener(new SelectionAdapter() {
- //
- // @Override
- // public void widgetSelected(SelectionEvent event) {
- // GetQueryDialog qd = new GetQueryDialog(getShell(), "Saved Queries",
- // input);
- // if (qd.open() == InputDialog.OK) {
- // selIndex = qd.getSelected();
- // if (selIndex != -1) {
- // rememberedQuery = true;
- // performAction();
- // bsp.getShell().close();
- // }
- // }
- // }
- // });
- // loadButton.setEnabled(true);
- // loadButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
- //
- // saveButton = new Button(group, SWT.PUSH | SWT.LEFT);
- // saveButton.setText("Remember...");
- // saveButton.addSelectionListener(new SelectionAdapter() {
- //
- // @Override
- // public void widgetSelected(SelectionEvent event) {
- // SaveQueryDialog qd = new SaveQueryDialog(getShell(), "Remember Query");
- // if (qd.open() == InputDialog.OK) {
- // String qName = qd.getText();
- // if (qName != null && qName.compareTo("") != 0) {
- // try {
- // input.add(getQueryParameters().toString(), qName, summaryPattern.getText());
- // } catch (UnsupportedEncodingException e) {
- // /*
- // * Do nothing. Every implementation of the Java
- // * platform is required to support the standard
- // * charset "UTF-8"
- // */
- // }
- // }
- // }
- // }
- // });
- // saveButton.setEnabled(true);
- // saveButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-
- return group;
- }
-
- // public static SavedQueryFile getInput() {
- // return input;
- // }
-
- private void handleWidgetSelected(Combo widget, Combo operation, ArrayList<BugzillaSearchData> history) {
- if (widget.getSelectionIndex() < 0) {
- return;
- }
- int index = history.size() - 1 - widget.getSelectionIndex();
- BugzillaSearchData patternData = history.get(index);
- if (patternData == null || !widget.getText().equals(patternData.pattern)) {
- return;
- }
- widget.setText(patternData.pattern);
- operation.setText(operation.getItem(patternData.operation));
- }
-
- // TODO: avoid overriding?
- @Override
- public boolean performSearch() {
- if (restoreQueryOptions) {
- saveState();
- }
-
- getPatternData(summaryPattern, summaryOperation, previousSummaryPatterns);
- getPatternData(commentPattern, commentOperation, previousCommentPatterns);
- getPatternData(emailPattern, emailOperation, previousEmailPatterns);
- getPatternData(emailPattern2, emailOperation2, previousEmailPatterns2);
- getPatternData(keywords, keywordsOperation, previousKeywords);
-
- String summaryText = summaryPattern.getText();
- BugzillaUiPlugin.getDefault().getPreferenceStore().setValue(IBugzillaConstants.MOST_RECENT_QUERY, summaryText);
-
- return super.performSearch();
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (visible && summaryPattern != null) {
- if (firstTime) {
- // Set<TaskRepository> repositories = TasksUiPlugin.getRepositoryManager().getRepositories(BugzillaCorePlugin.REPOSITORY_KIND);
- // String[] repositoryUrls = new String[repositories.size()];
- // int i = 0;
- // int indexToSelect = 0;
- // for (Iterator<TaskRepository> iter = repositories.iterator(); iter.hasNext();) {
- // TaskRepository currRepsitory = iter.next();
- // // if (i == 0 && repository == null) {
- // // repository = currRepsitory;
- // // indexToSelect = 0;
- // // }
- // if (repository != null && repository.equals(currRepsitory)) {
- // indexToSelect = i;
- // }
- // repositoryUrls[i] = currRepsitory.getUrl();
- // i++;
- // }
-
- // IDialogSettings settings = getDialogSettings();
- // if (repositoryCombo != null) {
- // repositoryCombo.setItems(repositoryUrls);
- // if (repositoryUrls.length == 0) {
- // MessageDialog.openInformation(Display.getCurrent().getActiveShell(), IBugzillaConstants.TITLE_MESSAGE_DIALOG,
- // TaskRepositoryManager.MESSAGE_NO_REPOSITORY);
- // } else {
- // String selectRepo = settings.get(STORE_REPO_ID);
- // if (selectRepo != null && repositoryCombo.indexOf(selectRepo) > -1) {
- // repositoryCombo.setText(selectRepo);
- // repository = TasksUiPlugin.getRepositoryManager().getRepository(
- // BugzillaCorePlugin.REPOSITORY_KIND, repositoryCombo.getText());
- // if (repository == null) {
- // repository = TasksUiPlugin.getRepositoryManager().getDefaultRepository( BugzillaCorePlugin.REPOSITORY_KIND);
- // }
- // } else {
- // repositoryCombo.select(indexToSelect);
- // }
- // updateAttributesFromRepository(repositoryCombo.getText(), null, false);
- // }
- // }
-
- firstTime = false;
- // Set item and text here to prevent page from resizing
- for (String searchPattern : getPreviousPatterns(previousSummaryPatterns)) {
- summaryPattern.add(searchPattern);
- }
- // summaryPattern.setItems(getPreviousPatterns(previousSummaryPatterns));
- for (String comment : getPreviousPatterns(previousCommentPatterns)) {
- commentPattern.add(comment);
- }
- // commentPattern.setItems(getPreviousPatterns(previousCommentPatterns));
- for (String email : getPreviousPatterns(previousEmailPatterns)) {
- emailPattern.add(email);
- }
-
- for (String email : getPreviousPatterns(previousEmailPatterns2)) {
- emailPattern2.add(email);
- }
-
- // emailPattern.setItems(getPreviousPatterns(previousEmailPatterns));
- for (String keyword : getPreviousPatterns(previousKeywords)) {
- keywords.add(keyword);
- }
-
- // TODO: update status, resolution, severity etc if possible...
- if (getTaskRepository() != null) {
- updateAttributesFromConfiguration(null);
- if (product.getItemCount() == 0) {
- try {
- repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(
- getTaskRepository(), true, new NullProgressMonitor());
- updateAttributesFromConfiguration(null);
- } catch (final CoreException e1) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- MessageDialog.openError(Display.getDefault().getActiveShell(),
- Messages.BugzillaSearchPage_Bugzilla_Search_Page, MessageFormat.format(
- Messages.BugzillaSearchPage_Unable_to_get_configuration_X,
- Messages.BugzillaSearchPage_Task_Repositories)
- + "\n\n"); //$NON-NLS-1$
- }
- });
- }
- }
- }
- if (originalQuery != null) {
- try {
- updateDefaults(originalQuery.getUrl());
- } catch (UnsupportedEncodingException e) {
- // ignore
- }
- }
- }
-
- /*
- * hack: we have to select the correct product, then update the
- * attributes so the component/version/milestone lists have the
- * proper values, then we can restore all the widget selections.
- */
- if (getTaskRepository() != null) {
- IDialogSettings settings = getDialogSettings();
- String repoId = "." + getTaskRepository().getRepositoryUrl(); //$NON-NLS-1$
- if (getWizard() == null && restoreQueryOptions && settings.getArray(STORE_PRODUCT_ID + repoId) != null
- && product != null) {
- product.setSelection(nonNullArray(settings, STORE_PRODUCT_ID + repoId));
- if (product.getSelection().length > 0) {
- updateAttributesFromConfiguration(product.getSelection());
- }
- restoreWidgetValues();
- }
- }
- setPageComplete(isPageComplete());
- if (getWizard() == null) {
- // TODO: wierd check
- summaryPattern.setFocus();
- }
- }
- super.setVisible(visible);
- }
-
- /**
- * Returns <code>true</code> if at least some parameter is given to query on.
- */
- private boolean canQuery() {
- if (isControlCreated()) {
- return product.getSelectionCount() > 0 || component.getSelectionCount() > 0
- || version.getSelectionCount() > 0 || target.getSelectionCount() > 0
- || status.getSelectionCount() > 0 || resolution.getSelectionCount() > 0
- || severity.getSelectionCount() > 0 || priority.getSelectionCount() > 0
- || hardware.getSelectionCount() > 0 || os.getSelectionCount() > 0
- || summaryPattern.getText().length() > 0 || commentPattern.getText().length() > 0
- || emailPattern.getText().length() > 0 || emailPattern2.getText().length() > 0
- || keywords.getText().length() > 0;
- } else {
- return false;
- }
- }
-
- @Override
- public boolean isPageComplete() {
- if (daysText != null) {
- String days = daysText.getText();
- if (days.length() > 0) {
- try {
- if (Integer.parseInt(days) < 0) {
- throw new NumberFormatException();
- }
- } catch (NumberFormatException ex) {
- setErrorMessage(NLS.bind(Messages.BugzillaSearchPage_Number_of_days_must_be_a_positive_integer,
- days));
- return false;
- }
- }
- }
- return getWizard() == null ? canQuery() : canQuery() && super.isPageComplete();
- }
-
- /**
- * Return search pattern data and update search history list. An existing entry will be updated or a new one
- * created.
- */
- private BugzillaSearchData getPatternData(Combo widget, Combo operation,
- ArrayList<BugzillaSearchData> previousSearchQueryData) {
- String pattern = widget.getText();
- if (pattern == null || pattern.trim().equals("")) { //$NON-NLS-1$
- return null;
- }
- BugzillaSearchData match = null;
- int i = previousSearchQueryData.size() - 1;
- while (i >= 0) {
- match = previousSearchQueryData.get(i);
- if (pattern.equals(match.pattern)) {
- break;
- }
- i--;
- }
- if (i >= 0 && match != null) {
- match.operation = operation.getSelectionIndex();
- // remove - will be added last (see below)
- previousSearchQueryData.remove(match);
- } else {
- match = new BugzillaSearchData(widget.getText(), operation.getSelectionIndex());
- }
- previousSearchQueryData.add(match);
- return match;
- }
-
- /**
- * Returns an array of previous summary patterns
- */
- private String[] getPreviousPatterns(ArrayList<BugzillaSearchData> patternHistory) {
- int size = patternHistory.size();
- String[] patterns = new String[size];
- for (int i = 0; i < size; i++) {
- patterns[i] = (patternHistory.get(size - 1 - i)).pattern;
- }
- return patterns;
- }
-
- public String getSearchURL(TaskRepository repository) {
- return getQueryURL(repository, getQueryParameters());
- }
-
- protected String getQueryURL(TaskRepository repository, StringBuilder params) {
- StringBuilder url = new StringBuilder(getQueryURLStart(repository).toString());
- url.append(params);
-
- // HACK make sure that the searches come back sorted by priority. This
- // should be a search option though
- url.append("&order=Importance"); //$NON-NLS-1$
- // url.append(BugzillaRepositoryUtil.contentTypeRDF);
- return url.toString();
- }
-
- /**
- * Creates the bugzilla query URL start.
- *
- * Example: https://bugs.eclipse.org/bugs/buglist.cgi?
- */
- private StringBuilder getQueryURLStart(TaskRepository repository) {
- StringBuilder sb = new StringBuilder(repository.getRepositoryUrl());
-
- if (sb.charAt(sb.length() - 1) != '/') {
- sb.append('/');
- }
- sb.append("buglist.cgi?"); //$NON-NLS-1$
- return sb;
- }
-
- /**
- * Goes through the query form and builds up the query parameters.
- *
- * Example: short_desc_type=substring&amp;short_desc=bla&amp; ... TODO: The encoding here should match
- * TaskRepository.getCharacterEncoding()
- *
- * @throws UnsupportedEncodingException
- */
- protected StringBuilder getQueryParameters() {
- StringBuilder sb = new StringBuilder();
-
- sb.append("short_desc_type="); //$NON-NLS-1$
- sb.append(patternOperationValues[summaryOperation.getSelectionIndex()]);
- appendToBuffer(sb, "&short_desc=", summaryPattern.getText()); //$NON-NLS-1$
-
- int[] selected = product.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&product=", product.getItem(element)); //$NON-NLS-1$
- }
-
- selected = component.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&component=", component.getItem(element)); //$NON-NLS-1$
- }
-
- selected = version.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&version=", version.getItem(element)); //$NON-NLS-1$
- }
-
- selected = target.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&target_milestone=", target.getItem(element)); //$NON-NLS-1$
- }
-
- sb.append("&long_desc_type="); //$NON-NLS-1$
- sb.append(patternOperationValues[commentOperation.getSelectionIndex()]);
- appendToBuffer(sb, "&long_desc=", commentPattern.getText()); //$NON-NLS-1$
-
- selected = status.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&bug_status=", status.getItem(element)); //$NON-NLS-1$
- }
-
- selected = resolution.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&resolution=", resolution.getItem(element)); //$NON-NLS-1$
- }
-
- selected = severity.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&bug_severity=", severity.getItem(element)); //$NON-NLS-1$
- }
-
- selected = priority.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&priority=", priority.getItem(element)); //$NON-NLS-1$
- }
-
- selected = hardware.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&ref_platform=", hardware.getItem(element)); //$NON-NLS-1$
- }
-
- selected = os.getSelectionIndices();
- for (int element : selected) {
- appendToBuffer(sb, "&op_sys=", os.getItem(element)); //$NON-NLS-1$
- }
-
- if (emailPattern.getText() != null && !emailPattern.getText().trim().equals("")) { //$NON-NLS-1$
- boolean selectionMade = false;
- for (Button button : emailButtons) {
- if (button.getSelection()) {
- selectionMade = true;
- break;
- }
- }
- if (selectionMade) {
- for (int i = 0; i < emailButtons.length; i++) {
- if (emailButtons[i].getSelection()) {
- sb.append("&"); //$NON-NLS-1$
- sb.append(emailRoleValues[i]);
- sb.append("=1"); //$NON-NLS-1$
- }
- }
- sb.append("&emailtype1="); //$NON-NLS-1$
- sb.append(emailOperationValues[emailOperation.getSelectionIndex()]);
- appendToBuffer(sb, "&email1=", emailPattern.getText()); //$NON-NLS-1$
- }
- }
-
- if (emailPattern2.getText() != null && !emailPattern2.getText().trim().equals("")) { //$NON-NLS-1$
- boolean selectionMade = false;
- for (Button button : emailButtons2) {
- if (button.getSelection()) {
- selectionMade = true;
- break;
- }
- }
- if (selectionMade) {
- for (int i = 0; i < emailButtons2.length; i++) {
- if (emailButtons2[i].getSelection()) {
- sb.append("&"); //$NON-NLS-1$
- sb.append(emailRoleValues2[i]);
- sb.append("=1"); //$NON-NLS-1$
- }
- }
- sb.append("&emailtype2="); //$NON-NLS-1$
- sb.append(emailOperationValues[emailOperation2.getSelectionIndex()]);
- appendToBuffer(sb, "&email2=", emailPattern2.getText()); //$NON-NLS-1$
- }
- }
-
- if (daysText.getText() != null && !daysText.getText().equals("")) { //$NON-NLS-1$
- try {
- Integer.parseInt(daysText.getText());
- appendToBuffer(sb, "&changedin=", daysText.getText()); //$NON-NLS-1$
- } catch (NumberFormatException ignored) {
- // this means that the days is not a number, so don't worry
- }
- }
-
- if (keywords.getText() != null && !keywords.getText().trim().equals("")) { //$NON-NLS-1$
- sb.append("&keywords_type="); //$NON-NLS-1$
- sb.append(keywordOperationValues[keywordsOperation.getSelectionIndex()]);
- appendToBuffer(sb, "&keywords=", keywords.getText().replace(',', ' ')); //$NON-NLS-1$
- }
-
- return sb;
- }
-
- private void appendToBuffer(StringBuilder sb, String key, String value) {
- sb.append(key);
- try {
- sb.append(URLEncoder.encode(value, getTaskRepository().getCharacterEncoding()));
- } catch (UnsupportedEncodingException e) {
- sb.append(value);
- }
- }
-
- @Override
- public IDialogSettings getDialogSettings() {
- IDialogSettings settings = BugzillaUiPlugin.getDefault().getDialogSettings();
- fDialogSettings = settings.getSection(PAGE_NAME);
- if (fDialogSettings == null) {
- fDialogSettings = settings.addNewSection(PAGE_NAME);
- }
- return fDialogSettings;
- }
-
- /**
- * Initializes itself from the stored page settings.
- */
- private void readConfiguration() {
- getDialogSettings();
- }
-
- private void updateAttributesFromConfiguration(String[] selectedProducts) {
- if (repositoryConfiguration == null) {
- updateConfiguration(false);
- }
- if (repositoryConfiguration != null) {
- String[] saved_product = product.getSelection();
- String[] saved_component = component.getSelection();
- String[] saved_version = version.getSelection();
- String[] saved_target = target.getSelection();
- String[] saved_status = status.getSelection();
- String[] saved_resolution = resolution.getSelection();
- String[] saved_severity = severity.getSelection();
- String[] saved_priority = priority.getSelection();
- String[] saved_hardware = hardware.getSelection();
- String[] saved_os = os.getSelection();
-
- if (selectedProducts == null) {
- java.util.List<String> products = repositoryConfiguration.getProducts();
- String[] productsList = products.toArray(new String[products.size()]);
- Arrays.sort(productsList, String.CASE_INSENSITIVE_ORDER);
- product.setItems(productsList);
- }
-
- String[] componentsList = BugzillaUiPlugin.getQueryOptions(IBugzillaConstants.VALUES_COMPONENT,
- selectedProducts, repositoryConfiguration);
- Arrays.sort(componentsList, String.CASE_INSENSITIVE_ORDER);
- component.setItems(componentsList);
-
- version.setItems(BugzillaUiPlugin.getQueryOptions(IBugzillaConstants.VALUES_VERSION, selectedProducts,
- repositoryConfiguration));
- target.setItems(BugzillaUiPlugin.getQueryOptions(IBugzillaConstants.VALUES_TARGET, selectedProducts,
- repositoryConfiguration));
- status.setItems(convertStringListToArray(repositoryConfiguration.getStatusValues()));
- resolution.setItems(convertStringListToArray(repositoryConfiguration.getResolutions()));
- severity.setItems(convertStringListToArray(repositoryConfiguration.getSeverities()));
- priority.setItems(convertStringListToArray(repositoryConfiguration.getPriorities()));
- hardware.setItems(convertStringListToArray(repositoryConfiguration.getPlatforms()));
- os.setItems(convertStringListToArray(repositoryConfiguration.getOSs()));
-
- setSelection(product, saved_product);
- setSelection(component, saved_component);
- setSelection(version, saved_version);
- setSelection(target, saved_target);
- setSelection(status, saved_status);
- setSelection(resolution, saved_resolution);
- setSelection(severity, saved_severity);
- setSelection(priority, saved_priority);
- setSelection(hardware, saved_hardware);
- setSelection(os, saved_os);
- }
- }
-
- @Override
- public boolean canFlipToNextPage() {
- // if (getErrorMessage() != null)
- // return false;
- //
- // return true;
- return false;
- }
-
- public void handleEvent(Event event) {
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- /**
- * TODO: get rid of this?
- */
- public void updateDefaults(String startingUrl) throws UnsupportedEncodingException {
- // String serverName = startingUrl.substring(0,
- // startingUrl.indexOf("?"));
-
- startingUrl = startingUrl.substring(startingUrl.indexOf("?") + 1); //$NON-NLS-1$
- String[] options = startingUrl.split("&"); //$NON-NLS-1$
- for (String option : options) {
- String key = option.substring(0, option.indexOf("=")); //$NON-NLS-1$
- String value = URLDecoder.decode(option.substring(option.indexOf("=") + 1), //$NON-NLS-1$
- getTaskRepository().getCharacterEncoding());
- if (key == null) {
- continue;
- }
-
- if (key.equals("short_desc")) { //$NON-NLS-1$
- summaryPattern.setText(value);
- } else if (key.equals("short_desc_type")) { //$NON-NLS-1$
- if (value.equals("allwordssubstr")) { //$NON-NLS-1$
- value = "all words"; //$NON-NLS-1$
- } else if (value.equals("anywordssubstr")) { //$NON-NLS-1$
- value = "any word"; //$NON-NLS-1$
- }
- int index = 0;
- for (String item : summaryOperation.getItems()) {
- if (item.compareTo(value) == 0) {
- break;
- }
- index++;
- }
- if (index < summaryOperation.getItemCount()) {
- summaryOperation.select(index);
- }
- } else if (key.equals("product")) { //$NON-NLS-1$
- String[] sel = product.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- product.setSelection(selList.toArray(sel));
- updateAttributesFromConfiguration(selList.toArray(sel));
- } else if (key.equals("component")) { //$NON-NLS-1$
- String[] sel = component.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- component.setSelection(selList.toArray(sel));
- } else if (key.equals("version")) { //$NON-NLS-1$
- String[] sel = version.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- version.setSelection(selList.toArray(sel));
- } else if (key.equals("target_milestone")) { // XXX //$NON-NLS-1$
- String[] sel = target.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- target.setSelection(selList.toArray(sel));
- } else if (key.equals("version")) { //$NON-NLS-1$
- String[] sel = version.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- version.setSelection(selList.toArray(sel));
- } else if (key.equals("long_desc_type")) { //$NON-NLS-1$
- if (value.equals("allwordssubstr")) { //$NON-NLS-1$
- value = "all words"; //$NON-NLS-1$
- } else if (value.equals("anywordssubstr")) { //$NON-NLS-1$
- value = "any word"; //$NON-NLS-1$
- }
- int index = 0;
- for (String item : commentOperation.getItems()) {
- if (item.compareTo(value) == 0) {
- break;
- }
- index++;
- }
- if (index < commentOperation.getItemCount()) {
- commentOperation.select(index);
- }
- } else if (key.equals("long_desc")) { //$NON-NLS-1$
- commentPattern.setText(value);
- } else if (key.equals("bug_status")) { //$NON-NLS-1$
- String[] sel = status.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- status.setSelection(selList.toArray(sel));
- } else if (key.equals("resolution")) { //$NON-NLS-1$
- String[] sel = resolution.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- resolution.setSelection(selList.toArray(sel));
- } else if (key.equals("bug_severity")) { //$NON-NLS-1$
- String[] sel = severity.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- severity.setSelection(selList.toArray(sel));
- } else if (key.equals("priority")) { //$NON-NLS-1$
- String[] sel = priority.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- priority.setSelection(selList.toArray(sel));
- } else if (key.equals("ref_platform")) { //$NON-NLS-1$
- String[] sel = hardware.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- hardware.setSelection(selList.toArray(sel));
- } else if (key.equals("op_sys")) { //$NON-NLS-1$
- String[] sel = os.getSelection();
- java.util.List<String> selList = Arrays.asList(sel);
- selList = new ArrayList<String>(selList);
- selList.add(value);
- sel = new String[selList.size()];
- os.setSelection(selList.toArray(sel));
- } else if (key.equals("emailassigned_to1")) { // HACK: email //$NON-NLS-1$
- // buttons
- // assumed to be
- // in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons[0].setSelection(true);
- } else {
- emailButtons[0].setSelection(false);
- }
- } else if (key.equals("emailreporter1")) { // HACK: email //$NON-NLS-1$
- // buttons assumed
- // to be in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons[1].setSelection(true);
- } else {
- emailButtons[1].setSelection(false);
- }
- } else if (key.equals("emailcc1")) { // HACK: email buttons //$NON-NLS-1$
- // assumed to be in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons[2].setSelection(true);
- } else {
- emailButtons[2].setSelection(false);
- }
- } else if (key.equals("emaillongdesc1")) { // HACK: email //$NON-NLS-1$
- // buttons assumed
- // to be in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons[3].setSelection(true);
- } else {
- emailButtons[3].setSelection(false);
- }
- } else if (key.equals("emailtype1")) { //$NON-NLS-1$
- int index = 0;
- for (String item : emailOperation.getItems()) {
- if (item.compareTo(value) == 0) {
- break;
- }
- index++;
- }
- if (index < emailOperation.getItemCount()) {
- emailOperation.select(index);
- }
- } else if (key.equals("email1")) { //$NON-NLS-1$
- emailPattern.setText(value);
- } else if (key.equals("emailassigned_to2")) { // HACK: email //$NON-NLS-1$
- // buttons
- // assumed to be
- // in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons2[0].setSelection(true);
- } else {
- emailButtons2[0].setSelection(false);
- }
- } else if (key.equals("emailreporter2")) { // HACK: email //$NON-NLS-1$
- // buttons assumed
- // to be in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons2[1].setSelection(true);
- } else {
- emailButtons2[1].setSelection(false);
- }
- } else if (key.equals("emailcc2")) { // HACK: email buttons //$NON-NLS-1$
- // assumed to be in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons2[2].setSelection(true);
- } else {
- emailButtons2[2].setSelection(false);
- }
- } else if (key.equals("emaillongdesc2")) { // HACK: email //$NON-NLS-1$
- // buttons assumed
- // to be in same
- // position
- if (value.equals("1")) { //$NON-NLS-1$
- emailButtons2[3].setSelection(true);
- } else {
- emailButtons2[3].setSelection(false);
- }
- } else if (key.equals("emailtype2")) { //$NON-NLS-1$
- int index = 0;
- for (String item : emailOperation2.getItems()) {
- if (item.compareTo(value) == 0) {
- break;
- }
- index++;
- }
- if (index < emailOperation2.getItemCount()) {
- emailOperation2.select(index);
- }
- } else if (key.equals("email2")) { //$NON-NLS-1$
- emailPattern2.setText(value);
- } else if (key.equals("changedin")) { //$NON-NLS-1$
- daysText.setText(value);
- } else if (key.equals("keywords")) { //$NON-NLS-1$
- keywords.setText(value.replace(' ', ','));
- } else if (key.equals("keywords_type")) { //$NON-NLS-1$
- int index = 0;
- for (String item : keywordOperationValues) {
- if (item.equals(value)) {
- keywordsOperation.select(index);
- break;
- }
- index++;
- }
- }
- }
- }
-
- private String[] nonNullArray(IDialogSettings settings, String id) {
- String[] value = settings.getArray(id);
- if (value == null) {
- return new String[] {};
- }
- return value;
- }
-
- private void restoreWidgetValues() {
- try {
- IDialogSettings settings = getDialogSettings();
- String repoId = "." + getTaskRepository().getRepositoryUrl(); //$NON-NLS-1$
- if (!restoreQueryOptions || settings.getArray(STORE_PRODUCT_ID + repoId) == null || product == null) {
- return;
- }
-
- // set widgets to stored values
- product.setSelection(nonNullArray(settings, STORE_PRODUCT_ID + repoId));
- component.setSelection(nonNullArray(settings, STORE_COMPONENT_ID + repoId));
- version.setSelection(nonNullArray(settings, STORE_VERSION_ID + repoId));
- target.setSelection(nonNullArray(settings, STORE_MSTONE_ID + repoId));
- status.setSelection(nonNullArray(settings, STORE_STATUS_ID + repoId));
- resolution.setSelection(nonNullArray(settings, STORE_RESOLUTION_ID + repoId));
- severity.setSelection(nonNullArray(settings, STORE_SEVERITY_ID + repoId));
- priority.setSelection(nonNullArray(settings, STORE_PRIORITY_ID + repoId));
- hardware.setSelection(nonNullArray(settings, STORE_HARDWARE_ID + repoId));
- os.setSelection(nonNullArray(settings, STORE_OS_ID + repoId));
- summaryOperation.select(settings.getInt(STORE_SUMMARYMATCH_ID + repoId));
- commentOperation.select(settings.getInt(STORE_COMMENTMATCH_ID + repoId));
- emailOperation.select(settings.getInt(STORE_EMAILMATCH_ID + repoId));
- for (int i = 0; i < emailButtons.length; i++) {
- emailButtons[i].setSelection(settings.getBoolean(STORE_EMAILBUTTON_ID + i + repoId));
- }
- summaryPattern.setText(settings.get(STORE_SUMMARYTEXT_ID + repoId));
- commentPattern.setText(settings.get(STORE_COMMENTTEXT_ID + repoId));
- emailPattern.setText(settings.get(STORE_EMAILADDRESS_ID + repoId));
- try {
- emailOperation2.select(settings.getInt(STORE_EMAIL2MATCH_ID + repoId));
- } catch (Exception e) {
- //ignore
- }
- for (int i = 0; i < emailButtons2.length; i++) {
- emailButtons2[i].setSelection(settings.getBoolean(STORE_EMAIL2BUTTON_ID + i + repoId));
- }
- emailPattern2.setText(settings.get(STORE_EMAIL2ADDRESS_ID + repoId));
- if (settings.get(STORE_KEYWORDS_ID + repoId) != null) {
- keywords.setText(settings.get(STORE_KEYWORDS_ID + repoId));
- keywordsOperation.select(settings.getInt(STORE_KEYWORDSMATCH_ID + repoId));
- }
- } catch (IllegalArgumentException e) {
- //ignore
- }
- }
-
- @Override
- public void saveState() {
- String repoId = "." + getTaskRepository().getRepositoryUrl(); //$NON-NLS-1$
- IDialogSettings settings = getDialogSettings();
- settings.put(STORE_PRODUCT_ID + repoId, product.getSelection());
- settings.put(STORE_COMPONENT_ID + repoId, component.getSelection());
- settings.put(STORE_VERSION_ID + repoId, version.getSelection());
- settings.put(STORE_MSTONE_ID + repoId, target.getSelection());
- settings.put(STORE_STATUS_ID + repoId, status.getSelection());
- settings.put(STORE_RESOLUTION_ID + repoId, resolution.getSelection());
- settings.put(STORE_SEVERITY_ID + repoId, severity.getSelection());
- settings.put(STORE_PRIORITY_ID + repoId, priority.getSelection());
- settings.put(STORE_HARDWARE_ID + repoId, hardware.getSelection());
- settings.put(STORE_OS_ID + repoId, os.getSelection());
- settings.put(STORE_SUMMARYMATCH_ID + repoId, summaryOperation.getSelectionIndex());
- settings.put(STORE_COMMENTMATCH_ID + repoId, commentOperation.getSelectionIndex());
- settings.put(STORE_EMAILMATCH_ID + repoId, emailOperation.getSelectionIndex());
- for (int i = 0; i < emailButtons.length; i++) {
- settings.put(STORE_EMAILBUTTON_ID + i + repoId, emailButtons[i].getSelection());
- }
- settings.put(STORE_SUMMARYTEXT_ID + repoId, summaryPattern.getText());
- settings.put(STORE_COMMENTTEXT_ID + repoId, commentPattern.getText());
- settings.put(STORE_EMAILADDRESS_ID + repoId, emailPattern.getText());
- settings.put(STORE_EMAIL2ADDRESS_ID + repoId, emailPattern2.getText());
- settings.put(STORE_EMAIL2MATCH_ID + repoId, emailOperation2.getSelectionIndex());
- for (int i = 0; i < emailButtons2.length; i++) {
- settings.put(STORE_EMAIL2BUTTON_ID + i + repoId, emailButtons2[i].getSelection());
- }
-
- settings.put(STORE_KEYWORDS_ID + repoId, keywords.getText());
- settings.put(STORE_KEYWORDSMATCH_ID + repoId, keywordsOperation.getSelectionIndex());
- // settings.put(STORE_REPO_ID, repositoryCombo.getText());
- }
-
- private void saveBounds(Rectangle bounds) {
- if (inSearchContainer()) {
- return;
- }
-
- IDialogSettings settings = getDialogSettings();
- IDialogSettings dialogBounds = settings.getSection(DIALOG_BOUNDS_KEY);
- if (dialogBounds == null) {
- dialogBounds = new DialogSettings(DIALOG_BOUNDS_KEY);
- settings.addSection(dialogBounds);
- }
- dialogBounds.put(X, bounds.x);
- dialogBounds.put(Y, bounds.y);
- dialogBounds.put(WIDTH, bounds.width);
- dialogBounds.put(HEIGHT, bounds.height);
- }
-
- private void restoreBounds() {
- if (inSearchContainer()) {
- return;
- }
-
- IDialogSettings settings = getDialogSettings();
- IDialogSettings dialogBounds = settings.getSection(DIALOG_BOUNDS_KEY);
- Shell shell = getShell();
- if (shell != null) {
- Rectangle bounds = shell.getBounds();
-
- if (bounds != null && dialogBounds != null) {
- try {
- bounds.x = dialogBounds.getInt(X);
- bounds.y = dialogBounds.getInt(Y);
- bounds.height = dialogBounds.getInt(HEIGHT);
- bounds.width = dialogBounds.getInt(WIDTH);
- shell.setBounds(bounds);
- } catch (NumberFormatException e) {
- // silently ignored
- }
- }
- }
-
- }
-
- /* Testing hook to see if any products are present */
- public int getProductCount() throws Exception {
- return product.getItemCount();
- }
-
- public boolean isRestoreQueryOptions() {
- return restoreQueryOptions;
- }
-
- public void setRestoreQueryOptions(boolean restoreQueryOptions) {
- this.restoreQueryOptions = restoreQueryOptions;
- }
-
- private String[] convertStringListToArray(java.util.List<String> stringList) {
- return stringList.toArray(new String[stringList.size()]);
- }
-
- private void updateConfiguration(final boolean force) {
- if (getTaskRepository() != null) {
- IRunnableWithProgress updateRunnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- if (monitor == null) {
- monitor = new NullProgressMonitor();
- }
- try {
- monitor.beginTask(Messages.BugzillaSearchPage_Updating_search_options_,
- IProgressMonitor.UNKNOWN);
- repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(getTaskRepository(),
- force, monitor);
- } catch (final Exception e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- };
-
- try {
- // TODO: make cancelable (bug 143011)
- if (getContainer() != null) {
- getContainer().run(true, true, updateRunnable);
- } else if (getSearchContainer() != null) {
- getSearchContainer().getRunnableContext().run(true, true, updateRunnable);
- } else {
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- service.busyCursorWhile(updateRunnable);
- }
-
- } catch (InvocationTargetException ex) {
- Shell shell = null;
- shell = getShell();
- if (ex.getCause() instanceof CoreException) {
- CoreException cause = ((CoreException) ex.getCause());
- if (cause.getStatus() instanceof RepositoryStatus
- && ((RepositoryStatus) cause.getStatus()).isHtmlMessage()) {
- // TOOD: use StatusManager
-
-// this.setControlsEnabled(false);
-// scontainer.setPerformActionEnabled(false);
- if (shell != null) {
- shell.setEnabled(false);
- }
- // TODO: eliminate use of internal api
- WebBrowserDialog dialog = new WebBrowserDialog(shell,
- Messages.BugzillaSearchPage_Error_updating_search_options, null, cause.getStatus()
- .getMessage(), NONE, new String[] { IDialogConstants.OK_LABEL }, 0,
- ((RepositoryStatus) cause.getStatus()).getHtmlMessage());
- dialog.setBlockOnOpen(true);
- dialog.open();
- if (shell != null) {
- shell.setEnabled(true);
- }
- return;
-// this.setPageComplete(this.isPageComplete());
-// this.setControlsEnabled(true);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, BugzillaUiPlugin.ID_PLUGIN, cause.getMessage(),
- cause));
- }
- }
- if (ex.getCause() instanceof OperationCanceledException) {
- return;
- }
-
- MessageDialog.openError(shell, Messages.BugzillaSearchPage_Error_updating_search_options,
- MessageFormat.format(Messages.BugzillaSearchPage_Error_was_X, ex.getCause().getMessage()));
- return;
-
- } catch (InterruptedException ex) {
- return;
- }
-
- updateAttributesFromConfiguration(null);
- }
- }
-
- @Override
- public Shell getShell() {
- Shell shell = null;
- if (getWizard() != null && getWizard().getContainer() != null) {
- shell = getWizard().getContainer().getShell();
- }
- if (shell == null && getControl() != null) {
- shell = getControl().getShell();
- }
- return shell;
- }
-
- @Override
- public String getQueryTitle() {
- return (queryTitle != null) ? queryTitle.getText() : ""; //$NON-NLS-1$
- }
-
- private void setSelection(List listControl, String[] selection) {
- for (String item : selection) {
- int index = listControl.indexOf(item);
- if (index > -1) {
- listControl.select(index);
- }
- }
- if (listControl.getSelectionCount() > 0) {
- listControl.showSelection();
- } else {
- listControl.select(0);
- listControl.showSelection();
- listControl.deselectAll();
- }
-
- }
-
- @Override
- public void applyTo(IRepositoryQuery query) {
- query.setUrl(getQueryURL(getTaskRepository(), getQueryParameters()));
- query.setSummary(getQueryTitle());
- Shell shell = getShell();
- if (shell != null) {
- saveBounds(shell.getBounds());
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSeveritySearchSorter.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSeveritySearchSorter.java
deleted file mode 100644
index 915a683d8..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSeveritySearchSorter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin;
-
-/**
- * Sorts results of Bugzilla search by bug severity.
- */
-public class BugzillaSeveritySearchSorter extends ViewerSorter {
-
- /**
- * Returns a negative, zero, or positive number depending on whether the first bug's severity goes before, is the
- * same as, or goes after the second element's severity.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object,
- * java.lang.Object)
- */
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- try {
- // cast the object and get its severity
- IMarker entry1 = (IMarker) e1;
- Integer severity1 = (Integer) entry1.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_SEVERITY);
-
- // cast the other object and get its severity
- IMarker entry2 = (IMarker) e2;
- Integer severity2 = (Integer) entry2.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_SEVERITY);
-
- // if neither is null, compare the bugs severities
- if (severity1 != null && severity2 != null) {
- return severity1.compareTo(severity2);
- }
- } catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default compare method
- return super.compare(viewer, e1, e2);
- }
-
- /**
- * Returns the category of the given element. The category is a number used to allocate elements to bins; the bins
- * are arranged in ascending numeric order. The elements within a bin are arranged via a second level sort
- * criterion.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#category(Object)
- */
- @Override
- public int category(Object element) {
- try {
- IMarker marker = (IMarker) element;
-
- // return the bugs id
- if (marker.getType().equals(BugzillaUiPlugin.HIT_MARKER_ID)) {
- return ((Integer) marker.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_ID)).intValue();
- }
- } catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default category method
- return super.category(element);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaStateSearchSorter.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaStateSearchSorter.java
deleted file mode 100644
index 29f1afabe..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaStateSearchSorter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaUiPlugin;
-
-/**
- * Sorts results of Bugzilla search by bug state.
- */
-public class BugzillaStateSearchSorter extends ViewerSorter {
-
- /**
- * Returns a negative, zero, or positive number depending on whether the first bug's state goes before, is the same
- * as, or goes after the second element's state.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object,
- * java.lang.Object)
- */
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- try {
- // cast the object and get its state
- IMarker entry1 = (IMarker) e1;
- Integer state1 = (Integer) entry1.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_STATE);
-
- // cast the other object and get its state
- IMarker entry2 = (IMarker) e2;
- Integer state2 = (Integer) entry2.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_STATE);
-
- // if neither is null, compare the bugs states
- if (state1 != null && state2 != null) {
- // compare the states
- int rc = state1.compareTo(state2);
-
- // compare the resolution if the states are the same
- if (rc == 0) {
- // get the resolution of the bug
- Integer result1 = (Integer) entry1.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_RESULT);
-
- // get the resolution of the other bug
- Integer result2 = (Integer) entry2.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_RESULT);
-
- // if neither state is null, compare them
- if (result1 != null && result2 != null) {
- rc = result1.compareTo(result2);
- }
- }
- return rc;
- }
-
- } catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default compare method
- return super.compare(viewer, e1, e2);
- }
-
- /**
- * Returns the category of the given element. The category is a number used to allocate elements to bins; the bins
- * are arranged in ascending numeric order. The elements within a bin are arranged via a second level sort
- * criterion.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#category(Object)
- */
- @Override
- public int category(Object element) {
- try {
- IMarker marker = (IMarker) element;
-
- // return the bugs id
- if (marker.getType().equals(BugzillaUiPlugin.HIT_MARKER_ID)) {
- return ((Integer) marker.getAttribute(BugzillaUiPlugin.HIT_MARKER_ATTR_ID)).intValue();
- }
- } catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default category method
- return super.category(element);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/Messages.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/Messages.java
deleted file mode 100644
index af17d44d9..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/Messages.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.search;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.ui.search.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String BugzillaSearchPage_all;
-
- public static String BugzillaSearchPage_all_words;
-
- public static String BugzillaSearchPage_any;
-
- public static String BugzillaSearchPage_any_word;
-
- public static String BugzillaSearchPage_Bugzilla_Query;
-
- public static String BugzillaSearchPage_Bugzilla_Search_Page;
-
- public static String BugzillaSearchPage_cc;
-
- public static String BugzillaSearchPage_Changed_in;
-
- public static String BugzillaSearchPage_Comment;
-
- public static String BugzillaSearchPage_commenter;
-
- public static String BugzillaSearchPage_Component;
-
- public static String BugzillaSearchPage_days;
-
- public static String BugzillaSearchPage_Email;
-
- public static String BugzillaSearchPage_Email_2;
-
- public static String BugzillaSearchPage_Error_updating_search_options;
-
- public static String BugzillaSearchPage_Error_was_X;
-
- public static String BugzillaSearchPage_exact;
-
- public static String BugzillaSearchPage_Hardware;
-
- public static String BugzillaSearchPage_Keywords;
-
- public static String BugzillaSearchPage_Milestone;
-
- public static String BugzillaSearchPage_No_repository_available;
-
- public static String BugzillaSearchPage_none;
-
- public static String BugzillaSearchPage_notregexp;
-
- public static String BugzillaSearchPage_Number_of_days_must_be_a_positive_integer;
-
- public static String BugzillaSearchPage_Operating_System;
-
- public static String BugzillaSearchPage_owner;
-
- public static String BugzillaSearchPage_Product;
-
- public static String BugzillaSearchPage_PROORITY;
-
- public static String BugzillaSearchPage_Query_Title;
-
- public static String BugzillaSearchPage_regexp;
-
- public static String BugzillaSearchPage_reporter;
-
- public static String BugzillaSearchPage_Resolution;
-
- public static String BugzillaSearchPage_Select_;
-
- public static String BugzillaSearchPage_Select_the_Bugzilla_query_parameters;
-
- public static String BugzillaSearchPage_Severity;
-
- public static String BugzillaSearchPage_Status;
-
- public static String BugzillaSearchPage_substring;
-
- public static String BugzillaSearchPage_Summary;
-
- public static String BugzillaSearchPage_Task_Repositories;
-
- public static String BugzillaSearchPage_Unable_to_get_configuration_X;
-
- public static String BugzillaSearchPage_Update_Attributes_from_Repository;
-
- public static String BugzillaSearchPage_Updating_search_options_;
-
- public static String BugzillaSearchPage_Version;
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/messages.properties b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/messages.properties
deleted file mode 100644
index 7cbdeee9b..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/messages.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-BugzillaSearchPage_all=all
-BugzillaSearchPage_all_words=all words
-BugzillaSearchPage_any=any
-BugzillaSearchPage_any_word=any word
-BugzillaSearchPage_Bugzilla_Query=Bugzilla Query
-BugzillaSearchPage_Bugzilla_Search_Page=Bugzilla Search Page
-BugzillaSearchPage_cc=cc
-BugzillaSearchPage_Changed_in=Ch&anged in:
-BugzillaSearchPage_Comment=&Comment:
-BugzillaSearchPage_commenter=commenter
-BugzillaSearchPage_Component=Compo&nent:
-BugzillaSearchPage_days=\ days.
-BugzillaSearchPage_Email=&Email:
-BugzillaSearchPage_Email_2=Email &2:
-BugzillaSearchPage_Error_updating_search_options=Error updating search options
-BugzillaSearchPage_Error_was_X=Error was: {0}
-BugzillaSearchPage_exact=exact
-BugzillaSearchPage_Hardware=Hard&ware:
-BugzillaSearchPage_Keywords=&Keywords:
-BugzillaSearchPage_Milestone=&Milestone:
-BugzillaSearchPage_No_repository_available=No repository available, please add one using the Task Repositories view.
-BugzillaSearchPage_none=none
-BugzillaSearchPage_notregexp=notregexp
-BugzillaSearchPage_Number_of_days_must_be_a_positive_integer=Number of days must be a positive integer. {0} is invalid.
-BugzillaSearchPage_Operating_System=&Operating System:
-BugzillaSearchPage_owner=owner
-BugzillaSearchPage_Product=&Product:
-BugzillaSearchPage_PROORITY=Priori&ty:
-BugzillaSearchPage_Query_Title=&Query Title:
-BugzillaSearchPage_regexp=regexp
-BugzillaSearchPage_reporter=reporter
-BugzillaSearchPage_Resolution=&Resolution:
-BugzillaSearchPage_Select_=Select...
-BugzillaSearchPage_Select_the_Bugzilla_query_parameters=Select the Bugzilla query parameters. Use the Update Attributes button to retrieve updated values from the repository.
-BugzillaSearchPage_Severity=Se&verity:
-BugzillaSearchPage_Status=Stat&us:
-BugzillaSearchPage_substring=substring
-BugzillaSearchPage_Summary=Summar&y:
-BugzillaSearchPage_Task_Repositories=Task Repositories
-BugzillaSearchPage_Unable_to_get_configuration_X=Unable to get configuration. Ensure proper repository configuration in {0}
-BugzillaSearchPage_Update_Attributes_from_Repository=Up&date Attributes from Repository
-BugzillaSearchPage_Updating_search_options_=Updating search options...
-BugzillaSearchPage_Version=Vers&ion:
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaConnectorUi.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaConnectorUi.java
deleted file mode 100644
index 70fab643d..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaConnectorUi.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.ui.tasklist;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.ui.BugzillaImages;
-import org.eclipse.mylyn.internal.bugzilla.ui.search.BugzillaSearchPage;
-import org.eclipse.mylyn.internal.bugzilla.ui.wizard.NewBugzillaTaskWizard;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.LegendElement;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-import org.eclipse.mylyn.tasks.ui.wizards.RepositoryQueryWizard;
-
-/**
- * @author Mik Kersten
- */
-public class BugzillaConnectorUi extends AbstractRepositoryConnectorUi {
-
- private static final String regexp = "(duplicate of|bug|task)( ?#? ?)(\\d+)"; //$NON-NLS-1$
-
- private static final Pattern PATTERN = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE);
-
- @Override
- public String getAccountCreationUrl(TaskRepository taskRepository) {
- return taskRepository.getRepositoryUrl() + "/createaccount.cgi"; //$NON-NLS-1$
- }
-
- @Override
- public String getAccountManagementUrl(TaskRepository taskRepository) {
- return taskRepository.getRepositoryUrl() + "/userprefs.cgi"; //$NON-NLS-1$
- }
-
- @Override
- public String getTaskHistoryUrl(TaskRepository taskRepository, ITask task) {
- return taskRepository.getRepositoryUrl() + IBugzillaConstants.URL_BUG_ACTIVITY + task.getTaskId();
- }
-
- @Override
- public String getReplyText(TaskRepository taskRepository, ITask task, ITaskComment taskComment, boolean includeTask) {
- if (taskComment == null) {
- return Messages.BugzillaConnectorUi__In_reply_to_comment_0_;
- } else if (includeTask) {
- return MessageFormat.format(Messages.BugzillaConnectorUi__In_reply_to_X_comment_X_, task.getTaskKey(),
- taskComment.getNumber());
- } else {
- return MessageFormat.format(Messages.BugzillaConnectorUi__In_reply_to_comment_X_, taskComment.getNumber());
- }
- }
-
- private static final int TASK_NUM_GROUP = 3;
-
- @Override
- public List<LegendElement> getLegendElements() {
- List<LegendElement> legendItems = new ArrayList<LegendElement>();
- legendItems.add(LegendElement.createTask("blocker", BugzillaImages.OVERLAY_CRITICAL)); //$NON-NLS-1$
- legendItems.add(LegendElement.createTask("critical", BugzillaImages.OVERLAY_CRITICAL)); //$NON-NLS-1$
- legendItems.add(LegendElement.createTask("major", BugzillaImages.OVERLAY_MAJOR)); //$NON-NLS-1$
- legendItems.add(LegendElement.createTask("enhancement", BugzillaImages.OVERLAY_ENHANCEMENT)); //$NON-NLS-1$
- legendItems.add(LegendElement.createTask("trivial", BugzillaImages.OVERLAY_MINOR)); //$NON-NLS-1$
- return legendItems;
- }
-
- @Override
- public ImageDescriptor getTaskKindOverlay(ITask task) {
- String severity = task.getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey());
- if (severity != null) {
- // XXX: refactor to use configuration
- if ("blocker".equals(severity) || "critical".equals(severity)) { //$NON-NLS-1$ //$NON-NLS-2$
- return BugzillaImages.OVERLAY_CRITICAL;
- } else if ("major".equals(severity)) { //$NON-NLS-1$
- return BugzillaImages.OVERLAY_MAJOR;
- } else if ("enhancement".equals(severity)) { //$NON-NLS-1$
- return BugzillaImages.OVERLAY_ENHANCEMENT;
- } else if ("trivial".equals(severity) || "minor".equals(severity)) { //$NON-NLS-1$ //$NON-NLS-2$
- return BugzillaImages.OVERLAY_MINOR;
- } else {
- return null;
- }
- }
- return super.getTaskKindOverlay(task);
- }
-
- @Override
- public IHyperlink[] findHyperlinks(TaskRepository repository, String text, int index, int textOffset) {
- ArrayList<IHyperlink> hyperlinksFound = null;
-
- Matcher m = PATTERN.matcher(text);
- while (m.find()) {
- if (index == -1 || (index >= m.start() && index <= m.end())) {
- IHyperlink link = extractHyperlink(repository, textOffset, m);
- if (link != null) {
- if (hyperlinksFound == null) {
- hyperlinksFound = new ArrayList<IHyperlink>();
- }
- hyperlinksFound.add(link);
- }
- }
- }
-
- return (hyperlinksFound != null) ? hyperlinksFound.toArray(new IHyperlink[0]) : null;
- }
-
- @Override
- public String getTaskKindLabel(ITask repositoryTask) {
- return IBugzillaConstants.BUGZILLA_TASK_KIND;
- }
-
- @Override
- public ITaskRepositoryPage getSettingsPage(TaskRepository taskRepository) {
- return new BugzillaRepositorySettingsPage(taskRepository);
- }
-
- @Override
- public AbstractRepositoryQueryPage getSearchPage(TaskRepository repository, IStructuredSelection selection) {
- return new BugzillaSearchPage(repository);
- }
-
- @Override
- public IWizard getNewTaskWizard(TaskRepository taskRepository, ITaskMapping selection) {
- return new NewBugzillaTaskWizard(taskRepository, selection);
- }
-
- @Override
- public IWizard getQueryWizard(TaskRepository repository, IRepositoryQuery query) {
- RepositoryQueryWizard wizard = new RepositoryQueryWizard(repository);
- if (query == null) {
- wizard.addPage(new BugzillaQueryTypeWizardPage(repository));
- } else {
- if (isCustomQuery(query)) {
- wizard.addPage(new BugzillaCustomQueryWizardPage(repository, query));
- } else {
- wizard.addPage(new BugzillaSearchPage(repository, query));
- }
- }
- return wizard;
- }
-
- @Override
- public boolean hasSearchPage() {
- return true;
- }
-
- @Override
- public String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
- private boolean isCustomQuery(IRepositoryQuery query2) {
- String custom = query2.getAttribute(IBugzillaConstants.ATTRIBUTE_BUGZILLA_QUERY_CUSTOM);
- return custom != null && custom.equals(Boolean.TRUE.toString());
- }
-
- private static IHyperlink extractHyperlink(TaskRepository repository, int regionOffset, Matcher m) {
-
- int start = -1;
-
- if (m.group().startsWith("duplicate")) { //$NON-NLS-1$
- start = m.start() + m.group().indexOf(m.group(TASK_NUM_GROUP));
- } else {
- start = m.start();
- }
-
- int end = m.end();
-
- if (end == -1) {
- end = m.group().length();
- }
-
- try {
-
- String bugId = m.group(TASK_NUM_GROUP).trim();
- start += regionOffset;
- end += regionOffset;
-
- IRegion sregion = new Region(start, end - start);
- return new TaskHyperlink(sregion, repository, bugId);
-
- } catch (NumberFormatException e) {
- return null;
- }
- }
-
- @Override
- public IWizardPage getTaskAttachmentPage(TaskAttachmentModel model) {
- return new BugzillaTaskAttachmentPage(model);
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryDialog.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryDialog.java
deleted file mode 100644
index 1e309a6f7..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryDialog.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- *
- * @author Shawn Minto
- * @author Mik Kersten
- */
-public class BugzillaCustomQueryDialog extends Dialog {
- private String url;
-
- private String name = ""; //$NON-NLS-1$
-
- private String startingUrl = null;
-
- private String maxHits;
-
- private Text maxHitsText;
-
- private Text nameText;
-
- private Text queryText;
-
- public BugzillaCustomQueryDialog(Shell parentShell, String queryString, String description, String maxHits) {
- super(parentShell);
- this.startingUrl = queryString;
- this.maxHits = maxHits;
- this.name = description;
- }
-
- public String getName() {
- return name;
- }
-
- public String getUrl() {
- return url;
- }
-
- public String getMaxHits() {
- return maxHits;
- }
-
- @Override
- protected Control createContents(Composite parent) {
- Composite custom = new Composite(parent, SWT.NONE);
- GridLayout gl = new GridLayout(2, false);
- custom.setLayout(gl);
-
- Label l = new Label(custom, SWT.NONE);
- l.setText(Messages.BugzillaCustomQueryDialog_Bugzilla_Query_Category_Name);
-
- nameText = new Text(custom, SWT.BORDER | SWT.SINGLE);
- if (name != null) {
- nameText.setText(name);
- }
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = 300;
- nameText.setLayoutData(gd);
-
- l = new Label(custom, SWT.NONE);
- l.setText(Messages.BugzillaCustomQueryDialog_Max_Hits_Returned__1_means_all_);
-
- maxHitsText = new Text(custom, SWT.BORDER | SWT.SINGLE);
- if (maxHits != null) {
- maxHitsText.setText(maxHits);
- }
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = 300;
- maxHitsText.setLayoutData(gd);
-
- l = new Label(custom, SWT.NONE);
- l.setText(Messages.BugzillaCustomQueryDialog_Query_URL);
-
- queryText = new Text(custom, SWT.BORDER | SWT.SINGLE);
- if (startingUrl != null) {
- queryText.setText(startingUrl);
- }
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = 300;
- queryText.setLayoutData(gd);
-
- Control c = super.createContents(parent);
-
- return c;
- }
-
- @Override
- protected void okPressed() {
- // TODO validate the values
- url = queryText.getText();
- name = nameText.getText();
- maxHits = maxHitsText.getText();
- super.okPressed();
- }
-
-}
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
deleted file mode 100644
index a9a57cab8..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.bugzilla.ui.tasklist;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- * @author Eugene Kuleshov
- */
-public class BugzillaCustomQueryWizardPage extends AbstractRepositoryQueryPage {
-
- private static final String LABEL_CUSTOM_TITLE = Messages.BugzillaCustomQueryWizardPage_Query_Title;
-
- private static final String LABEL_CUSTOM_QUERY = Messages.BugzillaCustomQueryWizardPage_Query_URL;
-
- private static final String TITLE = Messages.BugzillaCustomQueryWizardPage_Create_query_from_URL;
-
- private static final String DESCRIPTION = Messages.BugzillaCustomQueryWizardPage_Enter_the_title_and_URL_for_the_query;
-
- private Text queryText;
-
- private final IRepositoryQuery query;
-
- private Text queryTitle;
-
- public BugzillaCustomQueryWizardPage(TaskRepository repository, IRepositoryQuery query) {
- super(TITLE, repository, query);
- this.query = query;
- setTitle(TITLE);
- setDescription(DESCRIPTION);
- setImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- }
-
- public BugzillaCustomQueryWizardPage(TaskRepository repository) {
- this(repository, null);
- }
-
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(2, false));
- setControl(composite);
-
- ModifyListener modifyListener = new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- setPageComplete(isPageComplete());
- }
- };
-
- final Label queryTitleLabel = new Label(composite, SWT.NONE);
- queryTitleLabel.setText(LABEL_CUSTOM_TITLE);
-
- queryTitle = new Text(composite, SWT.BORDER);
- queryTitle.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- queryTitle.addModifyListener(modifyListener);
- queryTitle.setFocus();
-
- final Label queryUrlLabel = new Label(composite, SWT.NONE);
- queryUrlLabel.setText(LABEL_CUSTOM_QUERY);
-
- queryText = new Text(composite, SWT.BORDER);
- final GridData gd_queryText = new GridData(SWT.FILL, SWT.CENTER, true, false);
- gd_queryText.widthHint = 300;
- queryText.setLayoutData(gd_queryText);
- queryText.addModifyListener(modifyListener);
-
- if (query != null) {
- queryTitle.setText(query.getSummary());
- queryText.setText(query.getUrl());
- }
- Dialog.applyDialogFont(composite);
- }
-
- @Override
- public String getQueryTitle() {
- return queryTitle.getText();
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return false;
- }
-
- @Override
- public boolean isPageComplete() {
- if (super.isPageComplete()) {
- if (queryText.getText().length() > 0) {
- return true;
- }
- setErrorMessage(Messages.BugzillaCustomQueryWizardPage_Please_specify_Query_URL);
- }
- return false;
- }
-
- @Override
- public void applyTo(IRepositoryQuery query) {
- query.setSummary(this.getQueryTitle());
- query.setUrl(queryText.getText());
- query.setAttribute(IBugzillaConstants.ATTRIBUTE_BUGZILLA_QUERY_CUSTOM, Boolean.TRUE.toString());
- }
-
-}
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
deleted file mode 100644
index ef43545e0..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.bugzilla.ui.search.BugzillaSearchPage;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author Rob Elves
- */
-public class BugzillaQueryTypeWizardPage extends WizardPage {
-
- private static final String BUTTON_LABEL_QUERY = Messages.BugzillaQueryTypeWizardPage_Create_query_from_existing_URL;
-
- private static final String BUTTON_LABEL_FORM = Messages.BugzillaQueryTypeWizardPage_Create_query_using_form;
-
- private static final String TITLE = Messages.BugzillaQueryTypeWizardPage_Choose_query_type;
-
- private static final String DESCRIPTION = Messages.BugzillaQueryTypeWizardPage_Select_from_the_available_query_types;
-
- private Button buttonCustom;
-
- private Button buttonForm;
-
- private Composite composite;
-
- private final BugzillaCustomQueryWizardPage customPage;
-
- private final BugzillaSearchPage searchPage;
-
- public BugzillaQueryTypeWizardPage(TaskRepository repository) {
- super(TITLE);
- setTitle(TITLE);
- setDescription(DESCRIPTION);
- setImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- customPage = new BugzillaCustomQueryWizardPage(repository);
- searchPage = new BugzillaSearchPage(repository);
- searchPage.setRestoreQueryOptions(false);
- }
-
- public void createControl(Composite parent) {
- composite = new Composite(parent, SWT.NONE);
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.grabExcessVerticalSpace = false;
- composite.setLayoutData(gridData);
- composite.setLayout(new GridLayout(1, false));
-
- buttonForm = new Button(composite, SWT.RADIO);
- buttonForm.setText(BUTTON_LABEL_FORM);
- buttonForm.setSelection(true);
-
- buttonCustom = new Button(composite, SWT.RADIO);
- buttonCustom.setText(BUTTON_LABEL_QUERY);
-
- setPageComplete(true);
- setControl(composite);
- Dialog.applyDialogFont(composite);
- }
-
- @Override
- public IWizardPage getNextPage() {
- if (buttonForm.getSelection()) {
- searchPage.setWizard(this.getWizard());
- return searchPage;
- }
- customPage.setWizard(this.getWizard());
- return customPage;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java
deleted file mode 100644
index 2c202501b..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClientFactory;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaLanguageSettings;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaStatus;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class BugzillaRepositorySettingsPage extends AbstractRepositorySettingsPage {
-
- private static final String TOOLTIP_AUTODETECTION_ENABLED = Messages.BugzillaRepositorySettingsPage_override_auto_detection_of_platform;
-
- private static final String TOOLTIP_AUTODETECTION_DISABLED = Messages.BugzillaRepositorySettingsPage_available_once_repository_created;
-
- private static final String LABEL_SHORT_LOGINS = Messages.BugzillaRepositorySettingsPage_local_users_enabled;
-
- private static final String LABEL_VERSION_NUMBER = "2.18 - 3.2"; //$NON-NLS-1$
-
- private static final String TITLE = Messages.BugzillaRepositorySettingsPage_bugzilla_repository_settings;
-
- private static final String DESCRIPTION = MessageFormat.format(
- Messages.BugzillaRepositorySettingsPage_supports_bugzilla_X, LABEL_VERSION_NUMBER)
- + Messages.BugzillaRepositorySettingsPage_example_do_not_include;
-
- protected Button autodetectPlatformOS;
-
- protected Combo defaultPlatformCombo;
-
- protected Combo defaultOSCombo;
-
- private Button cleanQAContact;
-
- private RepositoryConfiguration repositoryConfiguration = null;
-
- private String platform = null;
-
- private String os = null;
-
- private Combo languageSettingCombo;
-
- public BugzillaRepositorySettingsPage(TaskRepository taskRepository) {
- super(TITLE, DESCRIPTION, taskRepository);
- setNeedsAnonymousLogin(true);
- setNeedsEncoding(true);
- setNeedsTimeZone(false);
- setNeedsHttpAuth(true);
- }
-
- @Override
- protected void repositoryTemplateSelected(RepositoryTemplate template) {
- repositoryLabelEditor.setStringValue(template.label);
- setUrl(template.repositoryUrl);
- // setAnonymous(info.anonymous);
- if (template.characterEncoding != null) {
- setEncoding(template.characterEncoding);
- }
- getContainer().updateButtons();
-
- }
-
- @Override
- protected void createAdditionalControls(Composite parent) {
- addRepositoryTemplatesToServerUrlCombo();
-
- Label shortLoginLabel = new Label(parent, SWT.NONE);
- shortLoginLabel.setText(LABEL_SHORT_LOGINS);
- cleanQAContact = new Button(parent, SWT.CHECK | SWT.LEFT);
- if (repository != null) {
- boolean shortLogin = Boolean.parseBoolean(repository.getProperty(IBugzillaConstants.REPOSITORY_SETTING_SHORT_LOGIN));
- cleanQAContact.setSelection(shortLogin);
- }
-
- if (null != repository) {
- repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(repository.getRepositoryUrl());
- platform = repository.getProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM);
- os = repository.getProperty(IBugzillaConstants.BUGZILLA_DEF_OS);
- }
-
- Label defaultPlatformLabel = new Label(parent, SWT.NONE);
- defaultPlatformLabel.setText(Messages.BugzillaRepositorySettingsPage_AUTOTETECT_PLATFORM_AND_OS);
- if (null == repository) {
- defaultPlatformLabel.setToolTipText(TOOLTIP_AUTODETECTION_DISABLED);
- } else {
- defaultPlatformLabel.setToolTipText(TOOLTIP_AUTODETECTION_ENABLED);
- }
-
- Composite platformOSContainer = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout(3, false);
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- platformOSContainer.setLayout(gridLayout);
-
- autodetectPlatformOS = new Button(platformOSContainer, SWT.CHECK);
- autodetectPlatformOS.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (autodetectPlatformOS.isEnabled() && repositoryConfiguration == null
- && !autodetectPlatformOS.getSelection()) {
- try {
- getWizard().getContainer().run(true, false, new IRunnableWithProgress() {
-
- public void run(IProgressMonitor monitor) throws InvocationTargetException,
- InterruptedException {
- try {
- monitor.beginTask(
- Messages.BugzillaRepositorySettingsPage_Retrieving_repository_configuration,
- IProgressMonitor.UNKNOWN);
- repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(repository,
- false, monitor);
- if (repositoryConfiguration != null) {
- platform = repository.getProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM);
- os = repository.getProperty(IBugzillaConstants.BUGZILLA_DEF_OS);
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
-
- public void run() {
- populatePlatformCombo();
- populateOsCombo();
- }
- });
- }
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
-
- }
-
- });
- } catch (InvocationTargetException e1) {
- if (e1.getCause() != null) {
- setErrorMessage(e1.getCause().getMessage());
- }
- } catch (InterruptedException e1) {
- // ignore
- }
- }
- defaultPlatformCombo.setEnabled(!autodetectPlatformOS.getSelection());
- defaultOSCombo.setEnabled(!autodetectPlatformOS.getSelection());
- }
-
- });
- autodetectPlatformOS.setEnabled(null != repository);
- if (null == repository) {
- autodetectPlatformOS.setToolTipText(TOOLTIP_AUTODETECTION_DISABLED);
- } else {
- autodetectPlatformOS.setToolTipText(TOOLTIP_AUTODETECTION_ENABLED);
- }
- autodetectPlatformOS.setSelection(null == platform && null == os);
-
- defaultPlatformCombo = new Combo(platformOSContainer, SWT.READ_ONLY);
- populatePlatformCombo();
-
- defaultOSCombo = new Combo(platformOSContainer, SWT.READ_ONLY);
- populateOsCombo();
-
- new Label(parent, SWT.NONE).setText(Messages.BugzillaRepositorySettingsPage_Language_);
- languageSettingCombo = new Combo(parent, SWT.DROP_DOWN);
-
- for (BugzillaLanguageSettings bugzillaLanguageSettings : BugzillaCorePlugin.getDefault().getLanguageSettings()) {
- languageSettingCombo.add(bugzillaLanguageSettings.getLanguageName());
- }
- if (repository != null) {
- String language = repository.getProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING);
- if (language != null && !language.equals("") && languageSettingCombo.indexOf(language) >= 0) { //$NON-NLS-1$
- languageSettingCombo.select(languageSettingCombo.indexOf(language));
- }
- }
- if (languageSettingCombo.getSelectionIndex() == -1) {
- if (languageSettingCombo.indexOf(IBugzillaConstants.DEFAULT_LANG) >= 0) {
- languageSettingCombo.select(languageSettingCombo.indexOf(IBugzillaConstants.DEFAULT_LANG));
- }
- }
- }
-
- private void populateOsCombo() {
- if (null != repositoryConfiguration && defaultOSCombo != null) {
- defaultOSCombo.removeAll();
- List<String> optionValues = repositoryConfiguration.getOSs();
- for (String option : optionValues) {
- defaultOSCombo.add(option.toString());
- }
- if (null != os && defaultOSCombo.indexOf(os) >= 0) {
- defaultOSCombo.select(defaultOSCombo.indexOf(os));
- } else {
- // remove value if no longer exists and set to All!
- repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_OS);
- defaultOSCombo.select(0);
- }
- } else {
- defaultOSCombo.add(Messages.BugzillaRepositorySettingsPage_All);
- defaultOSCombo.select(0);
- }
- defaultOSCombo.getParent().pack(true);
- defaultOSCombo.setEnabled(!autodetectPlatformOS.getSelection());
- }
-
- private void populatePlatformCombo() {
- if (null != repositoryConfiguration && defaultPlatformCombo != null) {
- defaultPlatformCombo.removeAll();
- List<String> optionValues = repositoryConfiguration.getPlatforms();
- for (String option : optionValues) {
- defaultPlatformCombo.add(option.toString());
- }
- if (null != platform && defaultPlatformCombo.indexOf(platform) >= 0) {
- defaultPlatformCombo.select(defaultPlatformCombo.indexOf(platform));
- } else {
- // remove value if no longer exists and set to All!
- repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM);
- defaultPlatformCombo.select(0);
- }
- } else {
- defaultPlatformCombo.add(Messages.BugzillaRepositorySettingsPage_All);
- defaultPlatformCombo.select(0);
- }
- defaultPlatformCombo.getParent().pack(true);
- defaultPlatformCombo.setEnabled(!autodetectPlatformOS.getSelection());
- }
-
- @Override
- public void applyTo(TaskRepository repository) {
- super.applyTo(repository);
- repository.setProperty(IBugzillaConstants.REPOSITORY_SETTING_SHORT_LOGIN,
- String.valueOf(cleanQAContact.getSelection()));
- repository.setProperty(IBugzillaConstants.BUGZILLA_LANGUAGE_SETTING, languageSettingCombo.getText());
-
- if (!autodetectPlatformOS.getSelection()) {
- repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM,
- String.valueOf(defaultPlatformCombo.getItem(defaultPlatformCombo.getSelectionIndex())));
- repository.setProperty(IBugzillaConstants.BUGZILLA_DEF_OS,
- String.valueOf(defaultOSCombo.getItem(defaultOSCombo.getSelectionIndex())));
- } else {
- repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_PLATFORM);
- repository.removeProperty(IBugzillaConstants.BUGZILLA_DEF_OS);
- }
- }
-
- @Override
- protected boolean isValidUrl(String url) {
- return BugzillaClient.isValidUrl(url);
- }
-
- @Override
- protected Validator getValidator(TaskRepository repository) {
- return new BugzillaValidator(repository);
- }
-
- public class BugzillaValidator extends Validator {
-
- final TaskRepository repository;
-
- public BugzillaValidator(TaskRepository repository) {
- this.repository = repository;
- }
-
- @Override
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- validate(monitor);
- } catch (Exception e) {
- displayError(repository.getRepositoryUrl(), e);
- }
- }
-
- private void displayError(final String serverUrl, Throwable e) {
- IStatus status;
- if (e instanceof MalformedURLException) {
- status = new BugzillaStatus(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_NETWORK, Messages.BugzillaRepositorySettingsPage_Server_URL_is_invalid);
- } else if (e instanceof CoreException) {
- status = ((CoreException) e).getStatus();
- } else if (e instanceof IOException) {
- status = new BugzillaStatus(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN, RepositoryStatus.ERROR_IO,
- serverUrl, e.getMessage());
- } else {
- status = new BugzillaStatus(IStatus.WARNING, BugzillaCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_NETWORK, serverUrl, e.getMessage());
- }
- setStatus(status);
- }
-
- public void validate(IProgressMonitor monitor) throws IOException, CoreException {
-
- if (monitor == null) {
- monitor = new NullProgressMonitor();
- }
- try {
- monitor.beginTask(Messages.BugzillaRepositorySettingsPage_Validating_server_settings,
- IProgressMonitor.UNKNOWN);
- BugzillaClient client = null;
-
- client = BugzillaClientFactory.createClient(repository);
- client.validate(monitor);
- } finally {
- monitor.done();
- }
- }
-
- }
-
- @Override
- public String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskAttachmentPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskAttachmentPage.java
deleted file mode 100644
index dab720840..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskAttachmentPage.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaFlag;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaFlagMapper;
-import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.wizards.TaskAttachmentPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Frank Becker
- */
-public class BugzillaTaskAttachmentPage extends TaskAttachmentPage {
-
- private final List<BugzillaFlag> flagAttributes = new ArrayList<BugzillaFlag>();
-
- private final FormToolkit toolkit;
-
- private ExpandableComposite flagExpandComposite = null;
-
- private Composite scrollComposite;
-
- public BugzillaTaskAttachmentPage(TaskAttachmentModel model) {
- super(model);
- toolkit = new FormToolkit(Display.getCurrent());
- }
-
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- RepositoryConfiguration configuration = BugzillaCorePlugin.getRepositoryConfiguration(getModel().getTaskRepository()
- .getRepositoryUrl());
- if (configuration != null) {
- List<BugzillaFlag> flags = configuration.getFlags();
- TaskAttribute productAttribute = getModel().getAttribute().getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.PRODUCT.getKey());
- TaskAttribute componentAttribute = getModel().getAttribute().getTaskData().getRoot().getMappedAttribute(
- BugzillaAttribute.COMPONENT.getKey());
- Control[] children = parent.getChildren();
- Composite pageComposite = (Composite) children[children.length - 1];
- Composite flagComposite = null;
- for (BugzillaFlag bugzillaFlag : flags) {
- if (bugzillaFlag.getType().equals("bug")) { //$NON-NLS-1$
- continue;
- }
- if (!bugzillaFlag.isUsedIn(productAttribute.getValue(), componentAttribute.getValue())) {
- continue;
- }
-
- if (flagComposite == null) {
- flagComposite = createFlagSection(pageComposite);
- }
- BugzillaFlagMapper mapper = new BugzillaFlagMapper();
- mapper.setRequestee(""); //$NON-NLS-1$
- mapper.setSetter(""); //$NON-NLS-1$
- mapper.setState(" "); //$NON-NLS-1$
- mapper.setFlagId(bugzillaFlag.getName());
- mapper.setNumber(0);
- final TaskAttribute attribute = getModel().getAttribute().createAttribute(
- "task.common.kind.flag_type" + bugzillaFlag.getFlagId()); //$NON-NLS-1$
- mapper.applyTo(attribute);
-
- Label flagLiteral = new Label(flagComposite, SWT.NONE);
- flagLiteral.setText("" + bugzillaFlag.getName()); //$NON-NLS-1$
- flagLiteral.setToolTipText(bugzillaFlag.getDescription());
- flagAttributes.add(bugzillaFlag);
- final Combo flagState = new Combo(flagComposite, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
- flagState.add(" "); //$NON-NLS-1$
- if (bugzillaFlag.isRequestable()) {
- flagState.add("?"); //$NON-NLS-1$
- }
- flagState.add("+"); //$NON-NLS-1$
- flagState.add("-"); //$NON-NLS-1$
- if (bugzillaFlag.isRequestable() && bugzillaFlag.isSpecifically_requestable()) {
- flagState.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 1, 1));
- final Text requesteeText = new Text(flagComposite, SWT.BORDER);
- requesteeText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
- requesteeText.setEditable(false);
- requesteeText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- TaskAttribute requesteeAttribute = attribute.getAttribute("requestee"); //$NON-NLS-1$
- if (requesteeAttribute != null) {
- String value = requesteeText.getText().trim();
- requesteeAttribute.setValue(value);
- }
- }
- });
- flagState.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
-
- public void widgetSelected(SelectionEvent e) {
- TaskAttribute state = attribute.getAttribute("state"); //$NON-NLS-1$
- if (state != null) {
- String value = flagState.getItem(flagState.getSelectionIndex());
- state.setValue(value);
- requesteeText.setEditable(value.equals("?")); //$NON-NLS-1$
- }
- }
- });
- } else {
- flagState.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 2, 1));
- flagState.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
-
- public void widgetSelected(SelectionEvent e) {
- TaskAttribute state = attribute.getAttribute("state"); //$NON-NLS-1$
- String value = flagState.getItem(flagState.getSelectionIndex());
- if (state != null && value != null) {
- state.setValue(value);
- }
- }
- });
- }
- }
- }
- }
-
- private Composite createFlagSection(Composite container) {
- flagExpandComposite = toolkit.createExpandableComposite(container, ExpandableComposite.COMPACT
- | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
- flagExpandComposite.setFont(container.getFont());
- flagExpandComposite.setBackground(container.getBackground());
- flagExpandComposite.setText(Messages.BugzillaTaskAttachmentPage_flags);
- flagExpandComposite.setLayout(new GridLayout(3, false));
- GridData g = new GridData(GridData.FILL_HORIZONTAL);
- g.horizontalSpan = 3;
- flagExpandComposite.setLayoutData(g);
- flagExpandComposite.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent e) {
- getControl().getShell().pack();
- }
- });
-
- scrollComposite = new Composite(flagExpandComposite, SWT.NONE);
- scrollComposite.setLayout(new GridLayout(3, false));
- flagExpandComposite.setClient(scrollComposite);
- return scrollComposite;
- }
-
- @Override
- public void dispose() {
- if (toolkit != null) {
- if (toolkit.getColors() != null) {
- toolkit.dispose();
- }
- }
- super.dispose();
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskListMigrator.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskListMigrator.java
deleted file mode 100644
index 906634829..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskListMigrator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.tasks.core.AbstractTaskListMigrator;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.w3c.dom.Element;
-
-/**
- * @author Rob Elves
- * @since 3.0
- */
-public class BugzillaTaskListMigrator extends AbstractTaskListMigrator {
-
- private static final String TAG_BUGZILLA_REPORT = "BugzillaReport"; //$NON-NLS-1$
-
- private static final String KEY_SEVERITY = "bugzilla.severity"; //$NON-NLS-1$
-
- private static final String KEY_PRODUCT = "bugzilla.product"; //$NON-NLS-1$
-
- @Override
- public String getConnectorKind() {
- return BugzillaCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public Set<String> getQueryElementNames() {
- Set<String> names = new HashSet<String>();
- names.add(IBugzillaConstants.TAG_BUGZILLA_QUERY);
- names.add(IBugzillaConstants.TAG_BUGZILLA_CUSTOM_QUERY);
- return names;
- }
-
- @Override
- public String getTaskElementName() {
- return TAG_BUGZILLA_REPORT;
- }
-
- @Override
- public void migrateQuery(IRepositoryQuery query, Element element) {
- if (element.getNodeName().equals(IBugzillaConstants.TAG_BUGZILLA_CUSTOM_QUERY)) {
- query.setAttribute(IBugzillaConstants.ATTRIBUTE_BUGZILLA_QUERY_CUSTOM, Boolean.TRUE.toString());
- }
- }
-
- @Override
- public void migrateTask(ITask task, Element element) {
- if (element.hasAttribute(KEY_SEVERITY)) {
- task.setAttribute(BugzillaAttribute.BUG_SEVERITY.getKey(),
- element.getAttribute(BugzillaAttribute.BUG_SEVERITY.getKey()));
- }
- if (element.hasAttribute(KEY_PRODUCT)) {
- task.setAttribute(BugzillaAttribute.PRODUCT.getKey(),
- element.getAttribute(BugzillaAttribute.PRODUCT.getKey()));
- }
- if (element.hasAttribute(KEY_LAST_MOD_DATE)) {
- task.setAttribute(BugzillaAttribute.DELTA_TS.getKey(), element.getAttribute(KEY_LAST_MOD_DATE));
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java
deleted file mode 100644
index fdf774f57..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/Messages.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.ui.tasklist.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String BugzillaConnectorUi__In_reply_to_comment_X_;
-
- public static String BugzillaConnectorUi__In_reply_to_X_comment_X_;
-
- public static String BugzillaConnectorUi__In_reply_to_comment_0_;
-
- public static String BugzillaCustomQueryDialog_Bugzilla_Query_Category_Name;
-
- public static String BugzillaCustomQueryDialog_Max_Hits_Returned__1_means_all_;
-
- public static String BugzillaCustomQueryDialog_Query_URL;
-
- public static String BugzillaCustomQueryWizardPage_Create_query_from_URL;
-
- public static String BugzillaCustomQueryWizardPage_Enter_the_title_and_URL_for_the_query;
-
- public static String BugzillaCustomQueryWizardPage_Please_specify_Query_URL;
-
- public static String BugzillaCustomQueryWizardPage_Query_Title;
-
- public static String BugzillaCustomQueryWizardPage_Query_URL;
-
- public static String BugzillaQueryTypeWizardPage_Choose_query_type;
-
- public static String BugzillaQueryTypeWizardPage_Create_query_from_existing_URL;
-
- public static String BugzillaQueryTypeWizardPage_Create_query_using_form;
-
- public static String BugzillaQueryTypeWizardPage_Select_from_the_available_query_types;
-
- public static String BugzillaRepositorySettingsPage_All;
-
- public static String BugzillaRepositorySettingsPage_AUTOTETECT_PLATFORM_AND_OS;
-
- public static String BugzillaRepositorySettingsPage_available_once_repository_created;
-
- public static String BugzillaRepositorySettingsPage_bugzilla_repository_settings;
-
- public static String BugzillaRepositorySettingsPage_example_do_not_include;
-
- public static String BugzillaRepositorySettingsPage_Language_;
-
- public static String BugzillaRepositorySettingsPage_local_users_enabled;
-
- public static String BugzillaRepositorySettingsPage_override_auto_detection_of_platform;
-
- public static String BugzillaRepositorySettingsPage_Retrieving_repository_configuration;
-
- public static String BugzillaRepositorySettingsPage_Server_URL_is_invalid;
-
- public static String BugzillaRepositorySettingsPage_supports_bugzilla_X;
-
- public static String BugzillaRepositorySettingsPage_Validating_server_settings;
-
- public static String BugzillaTaskAttachmentPage_flags;
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/StackTrace.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/StackTrace.java
deleted file mode 100644
index 7da62a1a2..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/StackTrace.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.tasklist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Class to hold all of the information about a stack trace
- *
- * @author Shawn Minto
- */
-public class StackTrace {
-
- /** The length of the stack trace in the original string */
- private final int length;
-
- /** The offset of the stack trace in the orignal string */
- private final int offset;
-
- /** The string of the stack trace */
- private final String stackTrace;
-
- /**
- * This is the comment that the stack trace appeared in. String if desciption else Comment
- */
- private final Object comment;
-
- /**
- * Constructor
- *
- * @param stackTrace
- * The stack trace string
- * @param offset
- * The offset of the stack trace in the original string
- * @param length
- * The length of the stack trace in the original string
- * @param comment
- * The comment that the stack trace came from
- */
- public StackTrace(String stackTrace, int offset, int length, Object comment) {
- this.stackTrace = stackTrace;
- this.offset = offset;
- this.length = length;
- this.comment = comment;
- }
-
- /**
- * Get the offset for the stack trace
- *
- * @return Returns the offset.
- */
- public int getOffset() {
- return offset;
- }
-
- /**
- * Get the stack trace for the bug
- *
- * @return Returns the stackTrace.
- */
- public String getStackTrace() {
- return stackTrace;
- }
-
- /**
- * Get the length of the bug
- *
- * @return Returns the length.
- */
- public int getLength() {
- return length;
- }
-
- /**
- * Get the Comment that this stack trace came from
- *
- * @return Returns the Comment if it was a comment else a String if it was the summary
- */
- public Object getComment() {
- return comment;
- }
-
- /**
- * Find a standard java stack trace in the given string
- *
- *
- * @param s
- * The string to search for stack traces
- * @param comment
- * The comment that the text came from.<br>
- * Comment if a comment else a String
- * @return String[] of stack traces - each element is 1 trace
- */
- public static StackTrace[] getStackTrace(String s, Object comment) {
-
- // setup the regex used to determine if it looks like we are at a
- // stack trace and whether it is something that should be skipped
- String regexExceptionType = "^(.*\\.)+.+(Exception|Error|Throwable).*"; //$NON-NLS-1$
- String regexSkip = ".*\\.\\..*"; //$NON-NLS-1$
-
- // get all of the individual lines for the string
- String[] lines = s.split("\r\n|\n"); //$NON-NLS-1$
-
- // the character start of the current stack trace
- int charStackStart = 0;
-
- // the current character in the string - used for the start and the
- // offset
- int[] charPos = { 0 }; // array so pass by reference
-
- boolean inStackTrace = false;
- List<String> stackTrace = null;
- List<StackTrace> stackTraces = new ArrayList<StackTrace>();
-
- // go through each of the lines of the string
- for (int i = 0; i < lines.length; i++) {
-
- if (lines[i].matches(regexSkip)) {
-
- // update the current character position
- charPos[0] += lines[i].length() + 2;
-
- } else if (lines[i].trim().matches(regexExceptionType) && !inStackTrace) {
-
- // we have matched the stack trace and we are not already in one
-
- // add the old stack trace to the list of stack traces
- if (stackTrace != null && stackTrace.size() > 1) {
- stackTraces.add(getStackTrace(stackTrace, charStackStart, charPos[0] - charStackStart, comment));
- }
-
- // prepare for a new stack trace
- stackTrace = new ArrayList<String>();
- inStackTrace = true;
-
- // the current line is the start of our stack trace
- stackTrace.add(lines[i]);
- charStackStart = charPos[0];
- charPos[0] += lines[i].length() + 2;
- } else if (inStackTrace) {
- // we are in a stack trace
-
- int[] pos = { i }; // array so pass by reference
-
- // get the next at clause of the stack trace
- String stack = getNextAt(lines, pos, charPos);
-
- // check if there was an at
- if (stack == null) {
-
- // there wasn't so we are done this stack trace
- inStackTrace = false;
- if (stackTrace != null && stackTrace.size() > 1) {
- stackTraces.add(getStackTrace(stackTrace, charStackStart, charPos[0] - charStackStart, comment));
- }
- stackTrace = null;
- } else if (stackTrace != null) {
-
- // we had one, so add it to this stack trace
- stackTrace.add(stack);
- }
-
- // update the position
- i = pos[0];
- } else {
- // update the current character position
- charPos[0] += lines[i].length() + 2;
- }
- }
-
- // make sure to add the stack trace if it was the last in the string
- if (stackTrace != null && stackTrace.size() > 1) {
- stackTraces.add(getStackTrace(stackTrace, charStackStart, charPos[0] - charStackStart, comment));
- }
-
- if (stackTraces.size() == 0) {
- return null;
- }
-
- // get the string values of the stack traces and return it
- return getTracesFromList(stackTraces);
- }
-
- /**
- * Get the next at clause from a potential stack trace -- looks ahead 4 lines
- *
- * @param lines
- * The array of all of the lines in the bug
- * @param i
- * The current position to start at
- * @param charPos
- * The current character position in the original string
- * @return The next at clause, or <code>null</code><br>
- * If an at line is matched, but the end isn't within the 4 lines, only the first line is returned. Also,
- * charPos is updated as well as i
- */
- private static String getNextAt(String[] lines, int[] i, int[] charPos) {
- String regexAtString = "^at.*"; //$NON-NLS-1$
- String regexEndString = ".*:\\d+\\)$"; //$NON-NLS-1$
- int index = i[0];
- String l1, l2, l3, l4;
- l1 = l2 = l3 = l4 = null;
- String res = null;
-
- // get the first line to look at
- if (lines.length > index) {
- l1 = lines[index];
- } else {
- // if the first line doesn't exist, we are done and should
- // return
- return null;
- }
-
- // get the next 3 lines
- if (lines.length > index + 1) {
- l2 = lines[index + 1];
- }
- if (lines.length > index + 2) {
- l3 = lines[index + 2];
- }
- if (lines.length > index + 3) {
- l4 = lines[index + 3];
- }
-
- // make sure that the first line is the start of an at
- // if not, return null
- if (l1.trim().matches(regexAtString)) {
- charPos[0] += l1.length() + 2;
- res = l1;
- } else {
- return null;
- }
-
- // now determine where the end is if it wasn't on 1 line
- if (!res.trim().matches(regexEndString)) {
-
- if (l2 != null && l2.trim().matches(regexEndString)) {
-
- // it was on the second line
- // update the current position and the result string
- i[0] = index + 1;
- charPos[0] += l2.length() + 2;
- res += l2.trim();
- } else if (l2 != null && l3 != null && l3.trim().matches(regexEndString)) {
-
- // it was on the third line
- // update the current position and the result string
- i[0] = index + 2;
- charPos[0] += l2.length() + l3.length() + 4;
- res += l2.trim();
- res += l3.trim();
- } else if (l2 != null && l3 != null && l4 != null && l4.trim().matches(regexEndString)) {
-
- // it was on the fourth line
- // update the current position and the result string
- i[0] = index + 3;
- charPos[0] += l2.length() + l3.length() + l4.length() + 6;
- res += l2.trim();
- res += l3.trim();
- res += l4.trim();
- }
- }
-
- // return the result
- return res;
- }
-
- /**
- * Get the StackTrace
- *
- * @param l
- * the list of lines that contain the trace
- * @param start
- * the start of the stack trace
- * @param offset
- * the offset of the stack trace
- * @param comment
- * The comment that the stack trace came from
- * @return The StackTrace for the given data
- */
- private static StackTrace getStackTrace(List<String> l, int offset, int length, Object comment) {
- String s = ""; //$NON-NLS-1$
- for (String s2 : l) {
- s += s2 + "\r\n"; //$NON-NLS-1$
- }
-
- return new StackTrace(s, offset, length, comment);
- }
-
- /**
- * Convert a List StackTraces to a StackTrace[] <br>
- *
- * @param l
- * The List of StackTraces
- * @return StackTrace[] of the List
- */
- private static StackTrace[] getTracesFromList(List<StackTrace> l) {
-
- // make sure that there is something to convert, else return null
- if (l == null || l.size() == 0) {
- return null;
- }
-
- // convert the list of strings to an array of strings
- int i = 0;
- StackTrace[] s = new StackTrace[l.size()];
-
- for (StackTrace st : l) {
- s[i] = st;
- i++;
- }
-
- // return the string array
- return s;
- }
-
- /**
- * Escape all of the special regex characters from the string
- *
- * @param s
- * The string to escape the characters for
- * @return A string with all of the special characters escaped <br>
- * <code>
- * . => \.<br>
- * $ => \$<br>
- * ? => \?<br>
- * { => \{<br>
- * } => \}<br>
- * ( => \(<br>
- * ) => \)<br>
- * [ => \[<br>
- * ] => \]<br>
- * + => \+<br>
- * * => \*<br>
- * | => \|<br>
- * ^ => \^<br>
- * \ => \\<br>
- * / => \/<br>
- * </code>
- */
- public static String escapeForRegex(String s) {
- String sFixed = s;
-
- // replace all special regex characters
- sFixed = sFixed.replaceAll("\\\\", "\\\\\\\\"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\$", "\\\\\\$"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\.", "\\\\."); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\?", "\\\\?"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\{", "\\\\{"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\}", "\\\\}"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\(", "\\\\("); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\)", "\\\\)"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\[", "\\\\["); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\]", "\\\\]"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\+", "\\\\+"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\*", "\\\\*"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\|", "\\\\|"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\^", "\\\\^"); //$NON-NLS-1$ //$NON-NLS-2$
- sFixed = sFixed.replaceAll("\\/", "\\\\/"); //$NON-NLS-1$ //$NON-NLS-2$
-
- return sFixed;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties
deleted file mode 100644
index 1a2bd94ac..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/messages.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-BugzillaConnectorUi__In_reply_to_comment_X_=(In reply to comment \#{0})
-BugzillaConnectorUi__In_reply_to_X_comment_X_=(In reply to {0} comment \#{1})
-BugzillaConnectorUi__In_reply_to_comment_0_=(In reply to comment \#0)
-BugzillaCustomQueryDialog_Bugzilla_Query_Category_Name=Bugzilla Query Category Name
-BugzillaCustomQueryDialog_Max_Hits_Returned__1_means_all_=Max Hits Returned (-1 means all)
-BugzillaCustomQueryDialog_Query_URL=Query URL
-
-BugzillaCustomQueryWizardPage_Create_query_from_URL=Create query from URL
-BugzillaCustomQueryWizardPage_Enter_the_title_and_URL_for_the_query=Enter the title and URL for the query
-BugzillaCustomQueryWizardPage_Please_specify_Query_URL=Please specify Query URL
-BugzillaCustomQueryWizardPage_Query_Title=&Query Title:
-BugzillaCustomQueryWizardPage_Query_URL=Query &URL
-
-BugzillaQueryTypeWizardPage_Choose_query_type=Choose query type
-BugzillaQueryTypeWizardPage_Create_query_from_existing_URL=&Create query from existing URL
-BugzillaQueryTypeWizardPage_Create_query_using_form=Cre&ate query using form
-BugzillaQueryTypeWizardPage_Select_from_the_available_query_types=Select from the available query types.
-
-BugzillaRepositorySettingsPage_All=All
-BugzillaRepositorySettingsPage_AUTOTETECT_PLATFORM_AND_OS=Autodetect platform and os
-BugzillaRepositorySettingsPage_available_once_repository_created=Available once repository has been created.
-BugzillaRepositorySettingsPage_bugzilla_repository_settings=Bugzilla Repository Settings
-BugzillaRepositorySettingsPage_example_do_not_include=\nExample: https://bugs.eclipse.org/bugs (do not include index.cgi)
-BugzillaRepositorySettingsPage_Language_=Language:
-BugzillaRepositorySettingsPage_local_users_enabled=Local users enabled:
-BugzillaRepositorySettingsPage_override_auto_detection_of_platform=Override auto detection of Platform and OS for new bug reports.
-BugzillaRepositorySettingsPage_Retrieving_repository_configuration=Retrieving repository configuration
-BugzillaRepositorySettingsPage_Server_URL_is_invalid=Server URL is invalid.
-BugzillaRepositorySettingsPage_supports_bugzilla_X=Supports Bugzilla {0}
-BugzillaRepositorySettingsPage_Validating_server_settings=Validating server settings
-BugzillaTaskAttachmentPage_flags=Flags
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/Messages.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/Messages.java
deleted file mode 100644
index 971007644..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/Messages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.wizard;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.bugzilla.ui.wizard.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String BugzillaProductPage_Bugzilla_Search_Page;
- public static String BugzillaProductPage_Error_reported;
- public static String BugzillaProductPage_Error_updating_product_list;
- public static String BugzillaProductPage_New_Bugzilla_Task_Error;
- public static String BugzillaProductPage_PAGE_1;
- public static String BugzillaProductPage_PICK_PRODUCT_TO_OPEN_NEW_BUG_EDITOR;
- public static String BugzillaProductPage_PRESS_UPDATE_BUTTON;
- public static String BugzillaProductPage_Unable_to_get_configuration;
- public static String BugzillaProductPage_Unable_to_get_products;
- public static String BugzillaProductPage_Update_Products_from_Repository;
- public static String BugzillaProductPage_Updating_repository_report_options_;
- public static String BugzillaProductPage_YOU_MUST_SELECT_PRODUCT;
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/NewBugzillaTaskWizard.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/NewBugzillaTaskWizard.java
deleted file mode 100644
index c2765496d..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/NewBugzillaTaskWizard.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugzilla.ui.wizard;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
-import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
-import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.wizards.NewTaskWizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class NewBugzillaTaskWizard extends NewTaskWizard implements INewWizard {
-
- private IStructuredSelection selection;
-
- public NewBugzillaTaskWizard(TaskRepository taskRepository, ITaskMapping taskSelection) {
- super(taskRepository, taskSelection);
- }
-
- @Override
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
-
- /**
- * @since 3.0
- */
- @Override
- protected ITaskMapping getInitializationData() {
- if (getTaskSelection() != null) {
- return getTaskSelection();
- }
-
- IWorkbench workbench = PlatformUI.getWorkbench();
- if (workbench != null) {
- IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
- if (window != null) {
- ISelection sel = window.getSelectionService().getSelection();
- if (sel instanceof IStructuredSelection) {
- selection = (IStructuredSelection) sel;
- }
- }
- }
- if (selection == null || selection.isEmpty()) {
- final String lastProductSelection = getTaskRepository().getProperty(
- IBugzillaConstants.LAST_PRODUCT_SELECTION);
- final String lastComponentSelection = getTaskRepository().getProperty(
- IBugzillaConstants.LAST_COMPONENT_SELECTION);
- return new TaskMapping() {
- @Override
- public String getProduct() {
- return lastProductSelection;
- }
-
- @Override
- public String getComponent() {
- return lastComponentSelection;
- }
- };
-
- }
-
- final ArrayList<String> products = new ArrayList<String>();
-
- Object element = (selection).getFirstElement();
- if (element instanceof ITask) {
- ITask bugzillaTask = (ITask) element;
- if (bugzillaTask.getAttribute(BugzillaAttribute.PRODUCT.getKey()) != null) {
- products.add(bugzillaTask.getAttribute(BugzillaAttribute.PRODUCT.getKey()));
- }
- } else {
- IRepositoryQuery query = null;
- if (element instanceof IRepositoryQuery) {
- query = (IRepositoryQuery) element;
- }
-
- if (query != null && query.getConnectorKind().equals(BugzillaCorePlugin.CONNECTOR_KIND)) {
- String queryUrl = query.getUrl();
- queryUrl = queryUrl.substring(queryUrl.indexOf("?") + 1); //$NON-NLS-1$
- String[] options = queryUrl.split("&"); //$NON-NLS-1$
-
- for (String option : options) {
- int index = option.indexOf("="); //$NON-NLS-1$
- if (index != -1) {
- String key = option.substring(0, index);
- if ("product".equals(key)) { //$NON-NLS-1$
- try {
- products.add(URLDecoder.decode(option.substring(index + 1),
- getTaskRepository().getCharacterEncoding()));
- // TODO: list box only accepts a single selection so
- // we break on first found
- break;
- } catch (UnsupportedEncodingException ex) {
- // ignore
- }
- }
- }
- }
- } else {
- if (element instanceof IAdaptable) {
- IAdaptable adaptable = (IAdaptable) element;
- ITask task = (ITask) adaptable.getAdapter(ITask.class);
- if (task != null) {
- ITask bugzillaTask = (ITask) element;
- if (bugzillaTask.getAttribute(BugzillaAttribute.PRODUCT.getKey()) != null) {
- products.add(bugzillaTask.getAttribute(BugzillaAttribute.PRODUCT.getKey()));
- }
- }
- }
- }
- }
-
- if (products.size() > 0) {
- return new TaskMapping() {
- @Override
- public String getProduct() {
- return products.get(0);
- }
- };
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/messages.properties b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/messages.properties
deleted file mode 100644
index 078235251..000000000
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/wizard/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-BugzillaProductPage_Bugzilla_Search_Page=Bugzilla Search Page
-BugzillaProductPage_Error_reported=Error reported:\n
-BugzillaProductPage_Error_updating_product_list=Error updating product list
-BugzillaProductPage_New_Bugzilla_Task_Error=New Bugzilla Task Error
-BugzillaProductPage_PAGE_1=Page1
-BugzillaProductPage_PICK_PRODUCT_TO_OPEN_NEW_BUG_EDITOR=Pick a product to open the new bug editor.\n
-BugzillaProductPage_PRESS_UPDATE_BUTTON=Press the Update button if the product is not in the list.
-BugzillaProductPage_Unable_to_get_configuration=Unable to get configuration. Ensure proper repository configuration in Task Repositories
-BugzillaProductPage_Unable_to_get_products=Unable to get products. Ensure proper repository configuration in task Repositories.
-BugzillaProductPage_Update_Products_from_Repository=Update Products from Repository
-BugzillaProductPage_Updating_repository_report_options_=Updating repository report options...
-BugzillaProductPage_YOU_MUST_SELECT_PRODUCT=You must select a product
diff --git a/org.eclipse.mylyn.help.sdk/.classpath b/org.eclipse.mylyn.help.sdk/.classpath
deleted file mode 100644
index 64c5e31b7..000000000
--- a/org.eclipse.mylyn.help.sdk/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.help.sdk/.cvsignore b/org.eclipse.mylyn.help.sdk/.cvsignore
deleted file mode 100644
index 81d2d82ac..000000000
--- a/org.eclipse.mylyn.help.sdk/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-doc.cnv.txt
-reference
-tmp
diff --git a/org.eclipse.mylyn.help.sdk/.externalToolBuilders/Javadoc Builder.launch b/org.eclipse.mylyn.help.sdk/.externalToolBuilders/Javadoc Builder.launch
deleted file mode 100644
index 24d82d8a1..000000000
--- a/org.eclipse.mylyn.help.sdk/.externalToolBuilders/Javadoc Builder.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.mylyn.help.sdk/build-helper.xml"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.mylyn.help.sdk"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.mylyn.help.sdk/build-helper.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value=""/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/org.eclipse.mylyn.help.sdk}"/>
-</launchConfiguration>
diff --git a/org.eclipse.mylyn.help.sdk/.project b/org.eclipse.mylyn.help.sdk/.project
deleted file mode 100644
index ee922a07e..000000000
--- a/org.eclipse.mylyn.help.sdk/.project
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.help.sdk</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value>&lt;project&gt;/.externalToolBuilders/Javadoc Builder.launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1314ffa2f..000000000
--- a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:46 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.help.sdk/META-INF/MANIFEST.MF b/org.eclipse.mylyn.help.sdk/META-INF/MANIFEST.MF
deleted file mode 100644
index 181926e8e..000000000
--- a/org.eclipse.mylyn.help.sdk/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.help.sdk;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.help
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.help.sdk/about.html b/org.eclipse.mylyn.help.sdk/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.help.sdk/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.sdk/build-helper.xml b/org.eclipse.mylyn.help.sdk/build-helper.xml
deleted file mode 100644
index f0f8af444..000000000
--- a/org.eclipse.mylyn.help.sdk/build-helper.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.mylyn.help.sdk" default="all">
- <description>
- Generate Eclipse help content for the Mylyn developer guide
- </description>
-
- <property environment="env" />
- <property name="install" value="${basedir}/../../" />
-
- <target name="all">
- <antcall target="generateJavadoc" />
- <antcall target="convertSchemaToHtml" />
- </target>
-
- <target name="convertSchemaToHtml" if="eclipse.running">
- <property name="dest" value="reference/extension-points" />
- <record name="${basedir}/doc.cnv.txt" action="start" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.bugzilla.core/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.commons.core/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.context.core/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.context.ui/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.java.ui/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.monitor.ui/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.resources.ui/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.tasks.bugs/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.tasks.core/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.tasks.ui/plugin.xml" destination="${dest}" />
- <pde.convertSchemaToHTML manifest="../org.eclipse.mylyn.team.ui/plugin.xml" destination="${dest}" />
- <record name="${basedir}/doc.cnv.txt" action="stop" />
- </target>
-
- <target name="generateJavadoc">
- <delete dir="reference/api"/>
- <mkdir dir="reference/api"/>
-
- <javadoc destdir="reference/api"
- author="true"
- version="true"
- use="true"
- windowtitle="Mylyn API Reference">
- <fileset dir=".." defaultexcludes="yes">
- <include name="org.eclipse.mylyn*/src/org/eclipse/mylyn/**/*.java"/>
- <exclude name="org.eclipse.mylyn*.tests/**"/>
- <exclude name="org.eclipse.mylyn*examples*/**"/>
- <exclude name="org.eclipse.mylyn.monitor.usage/**"/>
- <exclude name="org.eclipse.mylyn*wikitext*/**"/>
- <exclude name="**/internal/**"/>
- </fileset>
- </javadoc>
- </target>
-
-</project>
diff --git a/org.eclipse.mylyn.help.sdk/build.properties b/org.eclipse.mylyn.help.sdk/build.properties
deleted file mode 100644
index 4eea7d1dd..000000000
--- a/org.eclipse.mylyn.help.sdk/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2007 Mylyn project committers 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
-###############################################################################
-bin.includes = plugin.xml,\
- META-INF/,\
- doc/,\
- about.html,\
- .,\
- toc.xml,\
- plugin.properties
-src.includes = about.html
-jars.compile.order = .
-source.. = src/
diff --git a/org.eclipse.mylyn.help.sdk/customBuildCallbacks.xml b/org.eclipse.mylyn.help.sdk/customBuildCallbacks.xml
deleted file mode 100644
index 7dee3e9f3..000000000
--- a/org.eclipse.mylyn.help.sdk/customBuildCallbacks.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-<!-- ===================================================================== -->
-<!-- Custom targets called from a project's generated build.xml -->
-<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
-<!-- ===================================================================== -->
-<project name="Build specific targets and properties" default="noDefault">
-
- <!-- ===================================================================== -->
- <!-- Default target -->
- <!-- ===================================================================== -->
- <target name="noDefault">
- <echo message="This file must be called with explicit targets" />
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target build.jars -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="pre.build.jars">
- <ant antfile="build-helper.xml" target="all"/>
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target build.jars -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="post.build.jars">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target build.sources -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="pre.build.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target build.sources -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="post.build.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the compilation target <name> -->
- <!-- Substitute "name" with the name of the compilation target, eg @dot -->
- <!-- Available parameters : -->
- <!-- source.foldern : n = 1 ... N, the source folders -->
- <!-- target.folder : where the results of the compilation go -->
- <!-- <name>.classpath : name = name of the compilation target. A -->
- <!-- reference to the classpath structure. -->
- <!-- ===================================================================== -->
- <target name="pre.name">
- </target>
-
- <target name="pre.@dot">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do during the compilation target <name>, after the compile -->
- <!-- but before jaring. Substitute "name" with the name of the compilation-->
- <!-- target, eg @dot -->
- <!-- Available parameters : -->
- <!-- source.foldern : n = 1 ... N, the source folders -->
- <!-- target.folder : where the results of the compilation go -->
- <!-- <name>.classpath : name = name of the compilation target. A -->
- <!-- reference to the classpath structure. -->
- <!-- ===================================================================== -->
- <target name="post.compile.name">
- </target>
-
- <target name="post.compile.@dot">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the compilation target <name> -->
- <!-- Substitute "name" with the name of the compilation target, eg @dot -->
- <!-- Available parameters : -->
- <!-- jar.location - the location of the compilation results -->
- <!-- <name>.classpath : name = name of the compilation target. A -->
- <!-- reference to the classpath structure. -->
- <!-- ===================================================================== -->
- <target name="post.name">
- </target>
-
- <target name="post.@dot">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target gather.bin.parts -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder containing the build results -->
- <!-- target.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.gather.bin.parts">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target gather.bin.parts -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder containing the build results -->
- <!-- target.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="post.gather.bin.parts">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target gather.sources -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.gather.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target gather.sources -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="post.gather.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target gather.logs -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.gather.logs">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target gather.logs -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="post.gather.logs">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target clean -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.clean">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target clean -->
- <!-- Available parameters : -->
- <!-- plugin.destination - final destination of the build -->
- <!-- build.result.folder - results of the compilation -->
- <!-- temp.folder - temporary folder -->
- <!-- ===================================================================== -->
- <target name="post.clean">
- </target>
-</project>
diff --git a/org.eclipse.mylyn.help.sdk/doc/book.css b/org.eclipse.mylyn.help.sdk/doc/book.css
deleted file mode 100644
index faa4199fe..000000000
--- a/org.eclipse.mylyn.help.sdk/doc/book.css
+++ /dev/null
@@ -1 +0,0 @@
-@import "../../PRODUCT_PLUGIN/book.css";
diff --git a/org.eclipse.mylyn.help.sdk/doc/notices.html b/org.eclipse.mylyn.help.sdk/doc/notices.html
deleted file mode 100644
index 99a80e59f..000000000
--- a/org.eclipse.mylyn.help.sdk/doc/notices.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-
-<meta name="copyright" content="Copyright (c) 2004, 2008 Mylyn project committers and others. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
- <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-<p>
-The material in this guide is Copyright (c) 2004, 2008 Mylyn project committers and others.
-</p>
-<p>
-<a href="../about.html">Terms and conditions regarding the use of this guide.</a>
-</p>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.help.sdk/plugin.properties b/org.eclipse.mylyn.help.sdk/plugin.properties
deleted file mode 100644
index 50f6c7623..000000000
--- a/org.eclipse.mylyn.help.sdk/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Properties file for org.eclipse.mylyn.help.sdk
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn SDK Help
diff --git a/org.eclipse.mylyn.help.sdk/plugin.xml b/org.eclipse.mylyn.help.sdk/plugin.xml
deleted file mode 100644
index 62fe3e030..000000000
--- a/org.eclipse.mylyn.help.sdk/plugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
- id="org.eclipse.mylyn.help.sdk.toc"
- point="org.eclipse.help.toc">
- <toc
- file="toc.xml"
- primary="true">
- </toc>
- <toc
- file="toc-reference.xml"
- primary="false">
- </toc>
- </extension>
- <extension point="org.eclipse.pde.core.javadoc">
- <javadoc path="reference/api">
- <plugin id="org.eclipse.mylyn.commons.core" />
- <plugin id="org.eclipse.mylyn.commons.net" />
- <plugin id="org.eclipse.mylyn.context.core" />
- <plugin id="org.eclipse.mylyn.context.ui" />
- <plugin id="org.eclipse.mylyn.ide.ui" />
- <plugin id="org.eclipse.mylyn.monitor.core" />
- <plugin id="org.eclipse.mylyn.monitor.ui" />
- <plugin id="org.eclipse.mylyn.resources.ui" />
- <plugin id="org.eclipse.mylyn.tasks.core" />
- <plugin id="org.eclipse.mylyn.tasks.ui" />
- <plugin id="org.eclipse.mylyn.team.ui" />
- </javadoc>
- </extension>
-</plugin>
diff --git a/org.eclipse.mylyn.help.sdk/src/.placeholder b/org.eclipse.mylyn.help.sdk/src/.placeholder
deleted file mode 100644
index e69de29bb..000000000
--- a/org.eclipse.mylyn.help.sdk/src/.placeholder
+++ /dev/null
diff --git a/org.eclipse.mylyn.help.sdk/toc-reference.xml b/org.eclipse.mylyn.help.sdk/toc-reference.xml
deleted file mode 100644
index edaae9bcf..000000000
--- a/org.eclipse.mylyn.help.sdk/toc-reference.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<toc label="Reference">
- <topic label="API Reference" href="reference/api/overview-summary.html">
- <topic href="reference/api/org/eclipse/mylyn/commons/core/package-summary.html" label="org.eclipse.mylyn.commons.core" />
- <topic href="reference/api/org/eclipse/mylyn/commons/net/package-summary.html" label="org.eclipse.mylyn.commons.net" />
- <topic href="reference/api/org/eclipse/mylyn/context/core/package-summary.html" label="org.eclipse.mylyn.context.core" />
- <topic href="reference/api/org/eclipse/mylyn/context/ui/package-summary.html" label="org.eclipse.mylyn.context.ui" />
- <topic href="reference/api/org/eclipse/mylyn/ide/ui/package-summary.html" label="org.eclipse.mylyn.ide.ui" />
- <topic href="reference/api/org/eclipse/mylyn/monitor/core/package-summary.html" label="org.eclipse.mylyn.monitor.core" />
- <topic href="reference/api/org/eclipse/mylyn/monitor/ui/package-summary.html" label="org.eclipse.mylyn.monitor.ui" />
- <topic href="reference/api/org/eclipse/mylyn/resources/ui/package-summary.html" label="org.eclipse.mylyn.resources.ui" />
- <topic href="reference/api/org/eclipse/mylyn/tasks/core/package-summary.html" label="org.eclipse.mylyn.tasks.core" />
- <topic href="reference/api/org/eclipse/mylyn/tasks/core/data/package-summary.html" label="org.eclipse.mylyn.tasks.core.data" />
- <topic href="reference/api/org/eclipse/mylyn/tasks/core/sync/package-summary.html" label="org.eclipse.mylyn.tasks.core.sync" />
- <topic href="reference/api/org/eclipse/mylyn/tasks/ui/package-summary.html" label="org.eclipse.mylyn.tasks.ui" />
- <topic href="reference/api/org/eclipse/mylyn/tasks/ui/editors/package-summary.html" label="org.eclipse.mylyn.tasks.ui.editors" />
- <topic href="reference/api/org/eclipse/mylyn/tasks/ui/wizards/package-summary.html" label="org.eclipse.mylyn.tasks.ui.wizards" />
- <topic href="reference/api/org/eclipse/mylyn/team/ui/package-summary.html" label="org.eclipse.mylyn.team.ui" />
- </topic>
- <topic label="Extension Points Reference">
- <topic href="reference/extension-points/org_eclipse_mylyn_bugzilla_core_languages.html" label="org.eclipse.mylyn.bugzilla.core.languages" />
- <topic href="reference/extension-points/org_eclipse_mylyn_commons_core_errorReporters.html" label="org.eclipse.mylyn.commons.core.errorReporters" />
- <topic href="reference/extension-points/org_eclipse_mylyn_context_core_bridges.html" label="org.eclipse.mylyn.context.core.bridges" />
- <topic href="reference/extension-points/org_eclipse_mylyn_context_core_internalBridges.html" label="org.eclipse.mylyn.context.core.internalBridges" />
- <topic href="reference/extension-points/org_eclipse_mylyn_context_core_relationProviders.html" label="org.eclipse.mylyn.context.core.relationProviders" />
- <topic href="reference/extension-points/org_eclipse_mylyn_context_ui_bridges.html" label="org.eclipse.mylyn.context.ui.bridges" />
- <topic href="reference/extension-points/org_eclipse_mylyn_context_ui_startup.html" label="org.eclipse.mylyn.context.ui.startup" />
- <topic href="reference/extension-points/org_eclipse_mylyn_java_ui_javaEditorContributor.html" label="org.eclipse.mylyn.java.ui.javaEditorContributor" />
- <topic href="reference/extension-points/org_eclipse_mylyn_monitor_ui_user.html" label="org.eclipse.mylyn.monitor.ui.user" />
- <topic href="reference/extension-points/org_eclipse_mylyn_resources_ui_changeMonitoring.html" label="org.eclipse.mylyn.resources.ui.changeMonitoring" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_bugs_pluginRepositoryMappings.html" label="org.eclipse.mylyn.tasks.bugs.pluginRepositoryMappings" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_bugs_taskContributors.html" label="org.eclipse.mylyn.tasks.bugs.taskContributors" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_core_templates.html" label="org.eclipse.mylyn.tasks.core.templates" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_actions.html" label="org.eclipse.mylyn.tasks.ui.actions" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_duplicateDetectors.html" label="org.eclipse.mylyn.tasks.ui.duplicateDetectors" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_editors.html" label="org.eclipse.mylyn.tasks.ui.editors" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_presentations.html" label="org.eclipse.mylyn.tasks.ui.presentations" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_projectLinkProviders.html" label="org.eclipse.mylyn.tasks.ui.projectLinkProviders" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_repositories.html" label="org.eclipse.mylyn.tasks.ui.repositories" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_taskEditorExtensions.html" label="org.eclipse.mylyn.tasks.ui.taskEditorExtensions" />
- <topic href="reference/extension-points/org_eclipse_mylyn_tasks_ui_taskRepositoryPageContribution.html" label="org.eclipse.mylyn.tasks.ui.taskRepositoryPageContribution" />
- <topic href="reference/extension-points/org_eclipse_mylyn_team_ui_changeSets.html" label="org.eclipse.mylyn.team.ui.changeSets" />
- <topic href="reference/extension-points/org_eclipse_mylyn_team_ui_commitTemplates.html" label="org.eclipse.mylyn.team.ui.commitTemplates" />
- </topic>
-</toc>
diff --git a/org.eclipse.mylyn.help.sdk/toc.xml b/org.eclipse.mylyn.help.sdk/toc.xml
deleted file mode 100644
index 5407d4733..000000000
--- a/org.eclipse.mylyn.help.sdk/toc.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<toc label="Tasks Developer Guide">
- <topic label="Online Docs">
- <topic href="http://wiki.eclipse.org/Mylyn/Architecture" label="Architecture Overview">
- </topic>
- <topic href="http://wiki.eclipse.org/Mylyn/Contributor_Reference" label="Contributor Reference">
- </topic>
- <topic href="http://wiki.eclipse.org/Mylyn/Integrator_Reference" label="Integrator Reference">
- </topic>
- <topic href="http://wiki.eclipse.org/Mylyn/Porting_Guide" label="Porting Guide">
- </topic>
- </topic>
- <anchor id="additions"/>
- <topic label="References">
- <link toc="toc-reference.xml"/>
- </topic>
- <topic href="doc/notices.html" label="Legal" />
-</toc>
diff --git a/org.eclipse.mylyn.help.ui/.classpath b/org.eclipse.mylyn.help.ui/.classpath
deleted file mode 100644
index 64c5e31b7..000000000
--- a/org.eclipse.mylyn.help.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.help.ui/.cvsignore b/org.eclipse.mylyn.help.ui/.cvsignore
deleted file mode 100644
index 7c18d5ded..000000000
--- a/org.eclipse.mylyn.help.ui/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-tmp
diff --git a/org.eclipse.mylyn.help.ui/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch b/org.eclipse.mylyn.help.ui/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch
deleted file mode 100644
index 6ae599b1f..000000000
--- a/org.eclipse.mylyn.help.ui/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="org.eclipse.jdt.core.javabuilder"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/org.eclipse.mylyn.help.ui/.project b/org.eclipse.mylyn.help.ui/.project
deleted file mode 100644
index 2eaa28006..000000000
--- a/org.eclipse.mylyn.help.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.help.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1314ffa2f..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:46 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26af..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index f2d1488e3..000000000
--- a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.help.ui;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui;resolution:=optional,
- org.eclipse.ui.forms;resolution:=optional,
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)";resolution:=optional,
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)";resolution:=optional,
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)";resolution:=optional,
- org.apache.ant;bundle-version="1.7.0";resolution:=optional
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.mylyn.internal.help.ui.anttask;x-internal:=true
-Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.help.ui/about.html b/org.eclipse.mylyn.help.ui/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.help.ui/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/build-helper.xml b/org.eclipse.mylyn.help.ui/build-helper.xml
deleted file mode 100644
index 26745582e..000000000
--- a/org.eclipse.mylyn.help.ui/build-helper.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.mylyn.help.ui" default="all">
- <description>
- Generate Eclipse help content for the Mylyn user guide
- </description>
-
- <property name="mylyn.help.doc.url.base" value="http://wiki.eclipse.org"/>
- <property name="mylyn.wiki.url.base" value="${mylyn.help.doc.url.base}/Mylyn"/>
- <property name="imageFolder" value="images"/>
-
- <path id="tasks.classpath" path="bin"/>
- <path id="wikitext.tasks.classpath">
- <pathelement location="../org.eclipse.mylyn.wikitext.core/@dot"/>
- <pathelement location="../org.eclipse.mylyn.wikitext.core/bin"/>
- <pathelement location="../org.eclipse.mylyn.wikitext.mediawiki.core/@dot"/>
- <pathelement location="../org.eclipse.mylyn.wikitext.mediawiki.core/bin"/>
- </path>
-
- <taskdef classpathref="tasks.classpath" resource="org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties"/>
- <taskdef classpathref="wikitext.tasks.classpath" resource="org/eclipse/mylyn/wikitext/core/util/anttask/tasks.properties"/>
-
- <target name="init">
- <mkdir dir="tmp"/>
- </target>
-
- <target name="clean" depends="init">
- <delete includeemptydirs="true" failonerror="false">
- <fileset dir="tmp"/>
- </delete>
- </target>
-
- <target name="all" depends="init" description="Generate Eclipse help content for the Mylyn user guide">
- <eclipse-wiki-to-help
- help.doc.filenamenoextension="Mylyn Reference"
- help.doc.url.base="${mylyn.help.doc.url.base}"
- help.doc.url.html="${mylyn.help.doc.url.base}/Mylyn/User_Guide"
- help.doc.url.xml="${mylyn.help.doc.url.base}/Special:Export/Mylyn/User_Guide"
- help.imagefolder="${imageFolder}"
- targetfolder="userguide"
- wiki.url.base="${mylyn.help.doc.url.base}/Mylyn"/>
- </target>
-
- <macrodef name="eclipse-wiki-to-help">
- <attribute name="help.doc.url.base"/>
- <attribute name="wiki.url.base"/>
- <attribute name="help.doc.url.html"/>
- <attribute name="help.doc.url.xml"/>
- <attribute name="help.doc.filenameNoExtension"/>
- <attribute name="help.imageFolder"/>
- <attribute name="targetFolder"/>
- <sequential>
- <get dest="tmp/help.doc.xml" src="@{help.doc.url.xml}"/>
- <get dest="tmp/help.doc.html" src="@{help.doc.url.html}"/>
-
- <copy todir="tmp">
- <fileset dir="images"/>
- </copy>
- <mediawiki-fetch-images src="tmp/help.doc.html" dest="tmp" base="@{help.doc.url.base}"/>
-
- <xslt style="extract-markup.xsl" in="tmp/help.doc.xml" out="tmp/@{help.doc.filenameNoExtension}.mediawiki"/>
- <echo append="true" file="tmp/@{help.doc.filenameNoExtension}.mediawiki">
-
-= Updating This Document =
-
-This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
-@{help.doc.url.html}
- </echo>
-
- <wikitext-to-eclipse-help markupLanguage="org.eclipse.mylyn.wikitext.mediawiki.core.MediaWikiLanguage"
- multipleOutputFiles="true"
- navigationImages="true"
- helpPrefix="@{targetFolder}"
- internallinkpattern="@{wiki.url.base}/{0}"
- validate="true"
- failonvalidationerror="true"
- prependImagePrefix="${imageFolder}"
- formatoutput="true"
- defaultAbsoluteLinkTarget="mylyn_external">
- <fileset dir="tmp" includes="**/*.mediawiki"/>
- <stylesheet url="book.css"/>
- </wikitext-to-eclipse-help>
-
- <mkdir dir="@{targetFolder}/${imageFolder}"/>
- <copy todir="@{targetFolder}/${imageFolder}" overwrite="true">
- <fileset dir="tmp">
- <include name="*.gif"/>
- <include name="*.png"/>
- </fileset>
- </copy>
- <copy todir="@{targetFolder}" overwrite="true">
- <fileset dir="tmp">
- <include name="*.html"/>
- <include name="*toc.xml"/>
- <exclude name="help.doc.html"/>
- </fileset>
- </copy>
- <antcall target="test"/>
- </sequential>
- </macrodef>
-
-
- <target name="test" depends="init" description="verify that all of the HTML files are well-formed XML">
- <echo level="info">
-Validating help content XML and HTML files: The Eclipse help system expects well-formed XML
-
-If validation fails it is because either:
-
-* the userguide source code is poorly formed, or
-* the WikiText MediaWiki parser has a bug
-
-Problems with userguide source are usually caused by improper use of HTML markup in the MediaWiki source,
-or inadvertently starting a line with a space character (in MediaWiki this starts a preformatted block)
- </echo>
-
- <!--
- Don't bother with DTD validation: we only care if the files are well-formed.
- We therefore provide an empty DTD
- -->
- <echo file="tmp/__empty.dtd" message=""/>
- <xmlvalidate lenient="true">
- <fileset dir="userguide">
- <include name="**/*.xml"/>
- </fileset>
- <fileset dir="userguide">
- <include name="**/*.html"/>
- </fileset>
- <dtd publicid="-//W3C//DTD XHTML 1.0 Transitional//EN" location="${basedir}/tmp/__empty.dtd"/>
- </xmlvalidate>
- </target>
-</project>
diff --git a/org.eclipse.mylyn.help.ui/build.properties b/org.eclipse.mylyn.help.ui/build.properties
deleted file mode 100644
index 450ffed46..000000000
--- a/org.eclipse.mylyn.help.ui/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2007 Mylyn project committers 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
-###############################################################################
-bin.includes = plugin.xml,\
- META-INF/,\
- doc/,\
- about.html,\
- .,\
- icons/,\
- intro/,\
- images/,\
- cheatsheets/,\
- toc.xml,\
- userguide/,\
- plugin.properties
-src.includes = about.html
-source.. = src/
-jars.compile.order = .
-source.. = src/
-
-customBuildCallbacks=customBuildCallbacks.xml
diff --git a/org.eclipse.mylyn.help.ui/cheatsheets/Query.xml b/org.eclipse.mylyn.help.ui/cheatsheets/Query.xml
deleted file mode 100644
index 5c33de0e5..000000000
--- a/org.eclipse.mylyn.help.ui/cheatsheets/Query.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cheatsheet title="Create a query from bugs.eclipse.org">
- <intro>
- <description>
- This cheat sheet shows you how to create a query from bugs.eclipse.org.<br/>
- </description>
- </intro>
- <item title="Open the Task List view" dialog="true" skip="false">
- <description>
- If the Task List view is not opened, select in the main menu <b>Window &gt; Show View &gt; Task List</b> or click on the &quot;Click to Perform&quot; link below.
- </description>
- <command serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.mylyn.tasks.ui.views.tasks)" confirm="true">
- </command>
- </item>
- <item title="Setup Task Repository" dialog="true" skip="true">
- <description>
- In this step you can learn how to setup your Bugzilla account, but you can skip it.
-<br/><br/>
-If the Task Repositories view isn&apos;t opened, select in the main menu <b>Window &gt; Show View &gt; Other... &gt; Mylyn &gt; Task Repositry</b>.
-<br/><br/>
-In the Task Repositories view you can see <b>Eclipse.org</b>. Right click on it and select <b>Properties</b>.<br/>
-Check out the <b>Anonymous Access</b> checkbox.<br/>
-Enter your user id for the <b>User ID</b> and password for the <b>Password</b>. <br/>
-Click on the <b>Validate Settings</b> button to check your given parameters.<br/>
-If you do not have an account you can register one, if you click on the <b>Create new accout</b> link.<br/>
-Click on the <b>Finish</b> button to save the values and close the dialog.
- </description>
- </item>
- <item title="Create a new Query" dialog="true" skip="false">
- <description>
- In the Task List view, click on the right mouse button then select <b>New &gt; Query</b> or click on the &quot;Click to Perform&quot; link below.
- </description>
- <command serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.mylyn.tasks.ui.wizards.new.query)" confirm="true">
- </command>
- </item>
- <item title="Setup the query" dialog="true" skip="false">
- <description>
- Select <b>Eclipse.org</b> then click on the <b>Next</b> button.<br/>
- Select <b>Create a query using form</b> then click on the <b>Next</b> button.<br/>
- Enter <b>Mylyn bugs</b> for the query&apos;s title.
- Select <b>Mylyn</b> from the Product and <b>P1, P2</b> from the Priority then click on the <b>Finish</b> button.
- </description>
- </item>
-</cheatsheet>
diff --git a/org.eclipse.mylyn.help.ui/cheatsheets/TaskFocus.xml b/org.eclipse.mylyn.help.ui/cheatsheets/TaskFocus.xml
deleted file mode 100644
index 6c941ff0f..000000000
--- a/org.eclipse.mylyn.help.ui/cheatsheets/TaskFocus.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cheatsheet title="Use Task-Focused UI">
- <intro>
- <description>
- This cheat sheet shows you how to handle a task lifecycle and how to use task-focused UI.
-<br/>
-You need an existing project for this sheet.
- </description>
- </intro>
- <item title="Open the Task List view" dialog="true" skip="false">
- <description>
- If the Task List view is not opened, select in the main menu <b>Window &gt; Show View &gt; Other... &gt; Mylyn &gt; Task List</b> or click on the &quot;Click to Perform&quot; link below.
- </description>
- <command serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.mylyn.tasks.ui.views.tasks)" confirm="true">
- </command>
- </item>
- <item title="Create and activate a task" dialog="true" skip="false">
- <description>
- In the Task List view, click on the right mouse button, then select <b>New &gt; Category</b>. Enter <b>Tutorials</b> for the category&apos;s name.
-<br/><br/>
-Then right click on the <b>Tutorials</b> category and select <b>New &gt; Task</b>. In the <b>New Task</b> dialog select <b>Local</b> then click on the <b>Finish</b> button.
- Enter <b>Learn task-focus</b> for the task&apos;s title and change the priority to <b>High</b>. You can add some notes, too.
-<br/><br/>
-Right click on the new task and select <b>Activate</b> to activate the task.
- </description>
- </item>
- <item title="Focus on the task" dialog="true" skip="false">
- <description>
- In the <b>Package Explorer</b> the task-focus turns on automatically if you activate a task.<br/>
-You can turn on or off this function if you click on the <b>Focus on Active Task</b> toogle button in the view&apos;s toolbar.<br/>
-You can use this function in the <b>Outline</b> view too. Turn it on in this view as well.
- </description>
- </item>
- <item title="Open the file" dialog="true" skip="false">
- <description>
- Press down the <b>Alt</b> button and click on the <b>left</b> mouse button on the <b>Package Explorer</b> view. Now you can see all of your projects in the view.
-<br/><br/>
-Next <b>Alt+click</b> on an arbitrary project and you can see the files wich are in the project.
-<br/><br/>
-With this method, select a class from the project.<br/>
-After the file is opened you can see the class both in the <b>Package Explorer</b> and in the <b>Outline</b> view.
- </description>
- </item>
- <item title="Add method to focus" dialog="true" skip="false">
- <description>
- Select in the Editor a method then you can see this method in the <b>Outline</b> view and in the <b>Package Explorer</b> under the class file.
-<br/><br/>
-Next press the Alt button and click on the class in the <b>Outline</b> view.<br/>
-Now you can see all methods. Methods which aren&apos;t in the focus are in <b>grey</b> color. Select another method from the list. After that all methods will disappear which aren&apos;t in the focus.
- </description>
- </item>
- <item title="Landmark" dialog="true" skip="false">
- <description>
- If an element&apos;s interest rank is high enough, it becomes a landmark, which is an implicitly created bookmark. Landmarks are showed in bold font.
-<br/><br/>
-Select the a method in the <b>Outline</b> view or in the <b>Package Explorer</b>. Right click on the method and select <b>Mark as Landmark</b>. After then this method becomes a landmark.
-<br/><br/>
-Also you can use key bindings. <b>Ctrl+Shift+Alt+UpArrow</b> to mark the element as landmark or <b>Ctrl+Shift+Alt+DownArrow</b> to mark less interesting for the element.
- </description>
- </item>
- <item title="Remove method from focus" dialog="true" skip="false">
- <description>
- Right click on a method which is in the focus and select <b>Remove from Focus</b>. After then this method will disappear from the list.
- </description>
- </item>
- <item title="Open another file" dialog="true" skip="false">
- <description>
- Press down the <b>Alt</b> button and <b>click</b> on the <b>project</b>. Select an arbitrary file from the list with <b>Alt+click</b>. After you open the new file you can see it in the focus and all files will disappear which aren&apos;t in the focus.
-<br/>
-You can use <b>Alt+RightArrow</b> instead of <b>Alt+click</b>.
- </description>
- </item>
- <item title="Quick Context View" dialog="true" skip="false">
- <description>
- Press down <b>Ctrl+Shift+Alt+RightArrow</b> buttons, then you can see all elements which are in the focus.
- </description>
- </item>
- <item title="Complete task" dialog="true" skip="false">
- <description>
- In the Task List view, click on the right mouse button on the <b>Learn task-focus</b> task and select deactivate.
-<br/>
-Click again on the task with the right mouse button and select <b>Mark &gt; Complete</b>. <br/>
-After then the task&apos;s name will be struck through.
- </description>
- </item>
-</cheatsheet>
diff --git a/org.eclipse.mylyn.help.ui/customBuildCallbacks.xml b/org.eclipse.mylyn.help.ui/customBuildCallbacks.xml
deleted file mode 100644
index 53cc6beb0..000000000
--- a/org.eclipse.mylyn.help.ui/customBuildCallbacks.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<!-- ===================================================================== -->
-<!-- Custom targets called from a project's generated build.xml -->
-<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
-<!-- ===================================================================== -->
-<project name="Build specific targets and properties" default="noDefault">
-
- <!-- ===================================================================== -->
- <!-- Default target -->
- <!-- ===================================================================== -->
- <target name="noDefault">
- <echo message="This file must be called with explicit targets" />
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target build.jars -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="pre.build.jars">
- <!-- automatic generation of the user guide is disabled, see bug 242979
- <ant antfile="build-helper.xml" target="all"/>
- -->
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target build.jars -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="post.build.jars">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target build.sources -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="pre.build.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target build.sources -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder to contain the build results -->
- <!-- ===================================================================== -->
- <target name="post.build.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the compilation target <name> -->
- <!-- Substitute "name" with the name of the compilation target, eg @dot -->
- <!-- Available parameters : -->
- <!-- source.foldern : n = 1 ... N, the source folders -->
- <!-- target.folder : where the results of the compilation go -->
- <!-- <name>.classpath : name = name of the compilation target. A -->
- <!-- reference to the classpath structure. -->
- <!-- ===================================================================== -->
- <target name="pre.name">
- </target>
-
- <target name="pre.@dot">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do during the compilation target <name>, after the compile -->
- <!-- but before jaring. Substitute "name" with the name of the compilation-->
- <!-- target, eg @dot -->
- <!-- Available parameters : -->
- <!-- source.foldern : n = 1 ... N, the source folders -->
- <!-- target.folder : where the results of the compilation go -->
- <!-- <name>.classpath : name = name of the compilation target. A -->
- <!-- reference to the classpath structure. -->
- <!-- ===================================================================== -->
- <target name="post.compile.name">
- </target>
-
- <target name="post.compile.@dot">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the compilation target <name> -->
- <!-- Substitute "name" with the name of the compilation target, eg @dot -->
- <!-- Available parameters : -->
- <!-- jar.location - the location of the compilation results -->
- <!-- <name>.classpath : name = name of the compilation target. A -->
- <!-- reference to the classpath structure. -->
- <!-- ===================================================================== -->
- <target name="post.name">
- </target>
-
- <target name="post.@dot">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target gather.bin.parts -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder containing the build results -->
- <!-- target.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.gather.bin.parts">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target gather.bin.parts -->
- <!-- Available parameters : -->
- <!-- build.result.folder - folder containing the build results -->
- <!-- target.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="post.gather.bin.parts">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target gather.sources -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.gather.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target gather.sources -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="post.gather.sources">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target gather.logs -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.gather.logs">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target gather.logs -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="post.gather.logs">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do before the target clean -->
- <!-- Available parameters : -->
- <!-- destination.temp.folder - destination folder -->
- <!-- ===================================================================== -->
- <target name="pre.clean">
- </target>
-
- <!-- ===================================================================== -->
- <!-- Steps to do after the target clean -->
- <!-- Available parameters : -->
- <!-- plugin.destination - final destination of the build -->
- <!-- build.result.folder - results of the compilation -->
- <!-- temp.folder - temporary folder -->
- <!-- ===================================================================== -->
- <target name="post.clean">
- </target>
-</project>
diff --git a/org.eclipse.mylyn.help.ui/doc/book.css b/org.eclipse.mylyn.help.ui/doc/book.css
deleted file mode 100644
index faa4199fe..000000000
--- a/org.eclipse.mylyn.help.ui/doc/book.css
+++ /dev/null
@@ -1 +0,0 @@
-@import "../../PRODUCT_PLUGIN/book.css";
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0/ui-legend.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0/ui-legend.gif
deleted file mode 100644
index 6778787af..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0/ui-legend.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0/welcome.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0/welcome.gif
deleted file mode 100644
index 3fe38ce0b..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0/welcome.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-edit.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-edit.gif
deleted file mode 100644
index d33b015f5..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-edit.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-switch.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-switch.gif
deleted file mode 100644
index 986cdae4e..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0/working-sets-switch.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-local-users.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-local-users.gif
deleted file mode 100644
index a81f8f035..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-local-users.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-time-tracking.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-time-tracking.gif
deleted file mode 100644
index 2e947ea43..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/bugzilla-time-tracking.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/java-editor-hyperlink.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M1/java-editor-hyperlink.gif
deleted file mode 100644
index 0b5b39202..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/java-editor-hyperlink.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/jira-editor-hyperlink.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M1/jira-editor-hyperlink.gif
deleted file mode 100644
index cbbf01185..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/jira-editor-hyperlink.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-context-editor.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-context-editor.gif
deleted file mode 100644
index d7e9eea00..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-context-editor.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-editor-progress.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-editor-progress.gif
deleted file mode 100644
index 2ed5c86b4..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M1/task-editor-progress.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/bugzilla-due-dates.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/bugzilla-due-dates.gif
deleted file mode 100644
index 7218936d4..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/bugzilla-due-dates.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-apply-attachments.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-apply-attachments.gif
deleted file mode 100644
index 2313d4dc6..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-apply-attachments.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-quick-view.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-quick-view.gif
deleted file mode 100644
index 1a96ed3cd..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/context-quick-view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/hyperlinks-text.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/hyperlinks-text.gif
deleted file mode 100644
index 319712ab3..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/hyperlinks-text.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/jira-java-hyperlinks.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/jira-java-hyperlinks.gif
deleted file mode 100644
index b0f02ff45..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/jira-java-hyperlinks.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/repository-settings-proxy.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/repository-settings-proxy.gif
deleted file mode 100644
index 1d4fd8dc5..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/repository-settings-proxy.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/synchronize-view-add.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/synchronize-view-add.gif
deleted file mode 100644
index 011daf256..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/synchronize-view-add.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/task-editor-warning.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/task-editor-warning.gif
deleted file mode 100644
index 14b638e8e..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/task-editor-warning.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/tasklist-schedule.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/tasklist-schedule.gif
deleted file mode 100644
index babced6fc..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/tasklist-schedule.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/trac-hyperlinks.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M2/trac-hyperlinks.gif
deleted file mode 100644
index ff8c1d142..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M2/trac-hyperlinks.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/annotation-hyperlinks.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/annotation-hyperlinks.gif
deleted file mode 100644
index b62aeaab5..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/annotation-hyperlinks.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/bugzilla-subtasks.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/bugzilla-subtasks.gif
deleted file mode 100644
index f5043b0b0..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/bugzilla-subtasks.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/jira-attachments.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/jira-attachments.gif
deleted file mode 100644
index fbb0aa98f..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/jira-attachments.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-editor-error.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-editor-error.gif
deleted file mode 100644
index 38d20f8de..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-editor-error.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-tooltip-incoming.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-tooltip-incoming.gif
deleted file mode 100644
index 3392effdb..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/task-tooltip-incoming.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasklist-tree.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasklist-tree.gif
deleted file mode 100644
index e80931f49..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasklist-tree.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-content-assist.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-content-assist.gif
deleted file mode 100644
index 169ae903d..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-content-assist.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-working-sets.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-working-sets.gif
deleted file mode 100644
index 6030cbcc1..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/tasks-working-sets.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-annotations.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-annotations.gif
deleted file mode 100644
index d3e8c8d2c..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-annotations.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-history.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-history.gif
deleted file mode 100644
index e9888c226..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/team-hyperlinks-history.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-legend-connectors.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-legend-connectors.gif
deleted file mode 100644
index 696ef1ece..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-legend-connectors.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-usage-report.gif b/org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-usage-report.gif
deleted file mode 100644
index c7402cb92..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.0M3/ui-usage-report.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-cached-config.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-cached-config.png
deleted file mode 100644
index 9bfa3a31d..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-cached-config.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-custom-resolutions.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-custom-resolutions.png
deleted file mode 100644
index 6f77eda5b..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-custom-resolutions.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-search-keywords.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-search-keywords.png
deleted file mode 100644
index bcac354d8..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/bugzilla-search-keywords.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/screenshot-capture.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/screenshot-capture.png
deleted file mode 100644
index 66e35cd00..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/screenshot-capture.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/spelling-corrections.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/spelling-corrections.png
deleted file mode 100644
index 8f90c06fa..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/spelling-corrections.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/task-editor-hyperlinks.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/task-editor-hyperlinks.png
deleted file mode 100644
index df97d0f52..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/task-editor-hyperlinks.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/tasklist-search.png b/org.eclipse.mylyn.help.ui/doc/images/2.1M1/tasklist-search.png
deleted file mode 100644
index 08acba8c6..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/2.1M1/tasklist-search.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/images/mylyn-2.0.png b/org.eclipse.mylyn.help.ui/doc/images/mylyn-2.0.png
deleted file mode 100644
index 566b2eb4f..000000000
--- a/org.eclipse.mylyn.help.ui/doc/images/mylyn-2.0.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/doc/new.html b/org.eclipse.mylyn.help.ui/doc/new.html
deleted file mode 100644
index 0e8fa9ba8..000000000
--- a/org.eclipse.mylyn.help.ui/doc/new.html
+++ /dev/null
@@ -1,916 +0,0 @@
-<html>
-<body bgcolor="FFFFFF">
-
-<p><b><a href="http://www.eclipse.org/mylyn/new/">The up-to-date New &amp;
-Noteworthy for Mylyn 2.3 is available online</a>
- </b>along with other Mylyn documentation.</p>
-
-<table border="1" style="border-collapse: collapse" width="100%" id="table128" cellpadding="4" bordercolor="#FFFFFF">
- <tr>
- <td bgcolor="#595791" width="7%" align="center"><b>
- <font color="#FFFFFF" size="1">Release</font></b></td>
- <td bgcolor="#595791" width="5%" align="center"><b>
- <font color="#FFFFFF" size="1">Resolved
- </font></b></td>
- <td bgcolor="#595791" width="*" align="center"><b>
- <font color="#FFFFFF" size="1">Community Contributions</font></b></td>
- </tr>
- <tr>
- <td bgcolor="#E0D0E6"><font size="1">2.3<br>
- <i>Feb 27, 2008</i></font></td>
- <td bgcolor="#E0D0E6" align="center">
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Tools&product=Mylyn&component=Bugzilla&component=Core&component=Doc&component=Java&component=Jira&component=Monitor&component=Tasks&component=Trac&component=UI&component=Web&component=XML&component=XPlanner&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2007-12-21&chfieldto=2008-02-28&chfield=resolution&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">
- <font size="1"><i>384</i></font></a></td>
- <td bgcolor="#E0D0E6"><font size="1">David Green helped with task editor layout performance</font></td>
- </tr>
- <tr>
- <td bgcolor="#FAF7FB"><font size="1">2.2<br>
- <i>Dec 19, 2007</i></font></td>
- <td bgcolor="#FAF7FB" align="center">
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Tools&product=Mylyn&component=Bugzilla&component=Core&component=Doc&component=Java&component=Jira&component=Monitor&component=Tasks&component=Trac&component=UI&component=Web&component=XML&component=XPlanner&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2007-09-29&chfieldto=2007-12-20&chfield=resolution&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">
- <font size="1"><i>384</i></font></a><i><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Tools&product=Mylyn&component=Bugzilla&component=Core&component=Doc&component=Java&component=Jira&component=Monitor&component=Tasks&component=Trac&component=UI&component=Web&component=XML&component=XPlanner&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2007-09-29&chfieldto=2007-12-20&chfield=resolution&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0="><br><font size="1">bugs</font></a></i></td>
- <td bgcolor="#FAF7FB"><font size="1">Frank Becker resolved a total of 19
- bugs with Bugzilla and the task editor. Willian Mitsuda contributed to
- screenshot capture and provided several other improvements. Maarten
- Meijer provided performance improvements and tests. Shawn Minto provided
- task context and UI fixes.&nbsp; Benjamin Pasero provided the
- notification popup shell rendering. Additional useful contributions, fixes
- and patches were provided by Helen Bershadskaya, Leo Dos Santos, Michael
- Valenta, Kevin Bracey, Chris Aniszczyk, George Lindholm, Jakum
- Jurkiewicz, Ketan Padegoankar and Nathan Hapke.</font></td>
- </tr>
- <tr>
- <td bgcolor="#FAF7FB"><font size="1">2.1<br>
- <i>Sep 28, 2007</i></font></td>
- <td bgcolor="#FAF7FB" align="center">
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Tools&product=Mylyn&component=Bugzilla&component=Core&component=Doc&component=Java&component=Jira&component=Monitor&component=Tasks&component=Trac&component=UI&component=Web&component=XML&component=XPlanner&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2007-08-29&chfieldto=2007-09-28&chfield=resolution&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">
- <font size="1">167</font><br><font size="1">bugs</font></a></td>
- <td bgcolor="#FAF7FB"><font size="1">Jevgeni Holodkov added new import
- and export functionality. Shawn Minto provided several fixes for the
- Task List.&nbsp; Maarten Meijer added task cloning support. Helen
- Bershadskaya improved the XPlanner connector and Leo Dos Santos fixed
- export for Mac.</font></td>
- </tr>
- <tr>
- <td bgcolor="#FAF7FB"><font size="1">2.1M<br>
- <i>Aug 27, 2007</i></font></td>
- <td bgcolor="#FAF7FB" align="center">
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Tools&product=Mylyn&component=Bugzilla&component=Core&component=Doc&component=Java&component=Jira&component=Monitor&component=Tasks&component=Trac&component=UI&component=Web&component=XML&component=XPlanner&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=2007-07-01&chfieldto=2007-08-28&chfield=resolution&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">
- <font size="1">295</font><br><font size="1">bugs</font></a></td>
- <td bgcolor="#FAF7FB"><font size="1">Balazs Brinkus contributed the
- screenshot attachment and provided new user experience improvements.
- Xiaoyang Guan provided prototype wiki integration for Trac.&nbsp; Frank
- Becker provided numerous improvements including custom resolutions for
- Bugzilla. Jevgeni Holodkov contributed prototype task and query import
- export facilities.&nbsp; Helen Bershadskaya contributed several XPlanner
- connector improvements including the new task editor. Raphael Ackermann
- provided several improvements including spell checking in task
- summaries.&nbsp; Shawn Minto provided over a dozen useful bug fixes.
- Additional useful patches were provided by George Lindholm, Leo Dos
- Santos, Maarten Meijer, Toomas Romer, David Green, Willian Mitsuda,
- Meghan Allen and Jacek Pospychala.</font></td>
- </tr>
- </table>
-
-<p><b>Also see the New &amp; Noteworthy for:
-<a href="http://eclipse.org/mylyn/new/new-2.0.html">Mylyn 2.0</a>,
-<a href="http://eclipse.org/mylyn/new/new-1.0.html">Mylyn 1.0-0.6</a>, <a href="http://eclipse.org/mylyn/new/new-0.5.html">
-Mylyn 0.5</a>,&nbsp;
-<a href="http://eclipse.org/mylyn/new/new-0.4.html">Mylyn 0.4</a>, <a href="http://eclipse.org/mylyn/new/new-0.3.html">
-Mylyn 0.3</a></b></p>
-<p><b>Updating</b>:&nbsp; If using a version prior to 2.0, must upgrade to 2.0
-before installing Mylyn 2.2.</p>
-
-<!--
-
-<p><b>Update Notes</b> <br>
-&nbsp;&nbsp;&nbsp; - We recommend using the Eclipse 3.3M7 release due to the
-numerous UI improvements (see Eclipse 3.3 only items below).<br>
-&nbsp;&nbsp;&nbsp; - 2.0M2 and later releases will reset your task activity
-timings (Mylyn now uses a new and much more robust timing mechanism).<br>
-&nbsp;&nbsp;&nbsp; - The offline task data cache will be reset, so submit outgoing changes before
- updating.<br>
-&nbsp;&nbsp;&nbsp; - If upgrading from a 0.x version, first update to Mylyn 1.0
-and see the corresponding <a href="http://eclipse.org/mylyn/doc/new-1.0.html">
-update notes</a>.<br>
-&nbsp;&nbsp;&nbsp; - Trac xml-rpc users: you will
-<a href="http://wiki.eclipse.org/index.php/Mylyn_FAQ#Trac_Connector">need the
-latest</a> XmlRpcPlugin.<br>&nbsp;</p>
-
-<p><b>Mylar -&gt; Mylyn Migration</b></p>
-<ul>
- <li>No uninstall necessary during the update, the old plug-ins will
- automatically be disabled.</li>
- <li>Can delete all old plug-ins/features either manually or via the Update
- Manager.</li>
- <li>All Mylyn preferences will need to be reset.&nbsp; If you set a custom
- data directory this will need to be reset on start.</li>
- <li>Project to Task Repository associations will need to be reset.</li>
-</ul>
-<p><b>UI Cleanup</b></p>
-<p>The following things have moved into the Sandbox either because they are not
-at the 2.0 quality level or because they are experimental features.</p>
-<ul>
- <li>Pause Context Capture</li>
- <li>Active Task on open</li>
- <li>Synchronize view style overlays</li>
- <li>Task Activity report</li>
- <li>Legend moved to view menu</li>
-</ul>
--->
-<hr>
-
-<table cellpadding="10" cellspacing="0" id="table392">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#E0D0E6>
- <p align="right"><b>IN PROGRESS</b></p>
- </td>
- <td valign="top" width="70%">
- Need UI review:<ul>
- <li>Revised task scheduling</li>
- <li>Reversing of comment ordering</li>
- <li>Minor: report as bug includes sub-entries if present</li>
- <li>JIRA: wiki markup supported</li>
- <li>Focusing of All Markers view is supported (should we
- suppress showing empty grouping nodes?)</li>
- <li>Attachment can be compared (add icon?)</li>
- <li>Screenshot markup and preview</li>
- <li>Linking with editor improved</li>
- </ul>
- <p>Done:</p>
- <ul>
- <li>Major Task Editor performance improvements, especially for
- editor open</li>
- <li>Warnings when attempting to commit resources across task
- repositories</li>
- <li>Strikethrough fonts for dependent bugs and in task editor
- comments</li>
- <li>Bugzilla: improved synchronization performance</li>
- <li>Bugzilla: query on multiple email fields</li>
- <li>Task Search: groupings show number [should we make this show
- up in lighter color?]</li>
- <li>Local tasks can be promoted to repository tasks via clone</li>
- <li>Bugzilla: file sizes are shown</li>
- </ul>
- <p>XPlanner:</p>
- <ul>
- <li>The XPlanner connector now allows using Mylyn's automatic
- time tracking to be incorporated in the actual time setting for
- an XPlanner task. The XPlanner Task editor actions section has a
- checkbox that allows the user to turn automatic time tracking on
- or off (default is off). There are also options for allowing the
- automatically tracked time to be added to or replace the current
- actual time (default is adding -- actual update is done when the
- Submit button is pressed), and rounding the automatically
- tracked time to the nearest half hour (default is to round). The
- user still has the option of putting in actual time manually,
- however, if automatic actual time tracking is enabled, the last
- entered user value will be overridden with the latest tracked
- time.<br>
- <a href="https://bugs.eclipse.org/bugs/attachment.cgi?id=87934">
- https://bugs.eclipse.org/bugs/attachment.cgi?id=87934</a> </li>
- </ul>
- </td>
- </tr>
-</table>
-
-<p>See <span style="background-color: #E0D0E6">what's new</span> for: </p>
-<ul>
- <li><a href="#task-list">Task List</a></li>
- <li><a href="#task-editor">Task Editor</a></li>
- <li><a href="#focused-ui">Task-Focused UI</a></li>
- <li><a href="#bugzilla">Bugzilla Connector</a></li>
- <li><a href="#trac">Trac Connector</a></li>
- <li><a href="#jira">JIRA Connector</a></li>
-</ul>
-<h2><a name="task-list">Task List</a><br>
-&nbsp;</h2>
-
-<table cellpadding="10" cellspacing="0" id="table393">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#E0D0E6>
- <p align="right"><b>...</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">...</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/tasklist-archive.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table380">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Task Archive is Gone</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">The problematic <i>Archive </i>category is finally
- gone.&nbsp; It has been replaced by<i> Unmatched </i>containers,
- which will contain every task that you have accessed, but that's not
- currently matched by a query or has not been added to a category.&nbsp;
- If you notice a large number of tasks in an<i> Unmatched</i>
- container, you have the following options:</p>
- <ul>
- <li>
- <p align="left">Update your queries so that the unmatched tasks
- are matched by a query.&nbsp; For example, if querying per
- person, we recommend including all closed tasks so that these
- don't drop into the <i>Unmatched</i> container.</p></li>
- <li>
- <p align="left">Delete tasks from the <i>Unmatched</i>
- container.&nbsp; These will be permanently removed from the <i>
- Task List</i> and will not participate in synchronization.</p>
- </li>
- </ul>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/tasklist-archive.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table376">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>New Notification Popups</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">The rendering of the notification popups has been
- improved, and on Eclipse 3.4 the popups fade into and out of view
- (Compositing window manager required on Linux).&nbsp; The popups can
- be interacted with and will not disappear when the mouse is over
- them.&nbsp; Click the incoming arrow to mark the task read, or the
- hyperlink to open the task.&nbsp;&nbsp; </p><p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/tasklist-notification.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table378">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Create Task from JUnit Failure</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">A new task can be created from a JUnit test failure.&nbsp;
- The failure trace will populate the description of the task.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/task-from-junit.png"><p class="MsoPlainText">
- &nbsp;</td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table379">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Easier Working Set Creation</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">Mylyn's task and resource working sets can now be
- created and edited more easily if you map projects to task
- repositories (<i>Project -&gt; Properties -&gt; Task Repository</i>).&nbsp;
- In the screenshot below, we see that every Mylyn project is
- associated with the Eclipse task repository, and that all Mylyn
- projects can be added to the &quot;Mylyn&quot; working set with a single
- click.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/working-set-creation.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table382">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Open Task Dialog Improved</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">The filtering, layout and performance of the <i>Open
- Task</i> (Ctrl+F12) dialog have been improved.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/open-task.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table383">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Search Results Grouping by Owner</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">Task search results can now be grouped by owner, via
- the popup menu in the <i>Search</i> view. </p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/search-grouping.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table377">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Task Navigation Key Bindings</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">The Task List now provides
- <a href="http://wiki.eclipse.org/Mylyn_User_Guide#Keybindings">
- additional key bindings</a> for task reading and navigation.</p></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table365">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Subtask Improvements</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Support for subtasks has been improved and
- is now on by default for all connectors including Bugzilla.&nbsp;
- Note that for Bugzilla the &quot;depends on&quot; attribute is used for
- subtask grouping.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/subtasks-option.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table367">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Import, Export and Cloning</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">In addition to being able to Import/Export
- your entire<i> Task List</i>, individual tasks and queries can now
- be imported and exported to a zip file.&nbsp; Exported tasks will
- include task contexts, and importing a repository task or query will
- automatically import the corresponding<i> Task Repository</i> if it
- does not exist.&nbsp; Import and Export can also be performed via
- drag-and-drop to and from external windows.&nbsp; <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/tasklist-import-export.png"><p class="MsoPlainText">
- Both tasks and queries can now be cloned.&nbsp; Cloning of queries
- allows you to easily modify an existing query.&nbsp; Cloning of
- tasks will bring up a new <i>Task Editor </i>that contains
- information about the task being cloned.&nbsp; Note that this can be
- done across repositories (e.g., from Bugzilla to JIRA,
- as visible below).<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/tasks-clone.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table371">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Popup Menu Improvements</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">The <i>Schedule for</i> menu now uses <i>Not
- Scheduled</i> instead of <i>Clear</i> action so that it can indicate
- when a task has not been scheduled. The <i>New</i> menu now provides
- a shortcut for creating local tasks without a wizard.&nbsp; The
- keyboard shortcut creating new local tasks is the Insert key on Platforms that
- support it, or Alt+Shift+N, T on all platforms (note that this might
- require resetting the <i>Perspective</i> in order to see the new
- Mylyn actions). </td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table355">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Open Repository Tasks</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">The opening of repository tasks has been
- streamlined and integrated into the top of the <i>Task Search</i> (Ctrl+H)
- dialog, and facilitates opening tasks that are not in the <i>
- Task List</i> by their key/ID.&nbsp; Entering text into the<i> Find</i> box of the <i>
- Task List</i> will cause a hyperlink to the search dialog to appear
- just below the box.&nbsp;
- If the contents of the <i>Find</i> box look like a task key/ID, they
- will be used to populate
- the <i>Task Search</i> dialog.&nbsp; The Ctrl+Shift+F12 shortcut can
- also be used to invoke this action, and will additionally inspect the contents of
- the clipboard to look for a task key/ID to populate the <i>Task Search</i>
- dialog with.&nbsp; The Ctrl+F12 <i>Open Task</i> dialog also
- provides a link to the <i>Task Search </i>page. <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/tasklist-search.png" width="531" height="341"><p class="MsoPlainText">
- Note that off a task
- is selected in the active editor or the <i>Task List,</i> the repository in the <i>Search </i>dialog
- will be now automatically set to the corresponding repository,
- otherwise the previous repository will be used.&nbsp;
- The previous <i>Open Repository Task</i> dialog, disabled by default
- in Mylyn 2.0, can still be accessed via Ctrl+Shift+F12.&nbsp; Since
- the new functionality replaces this dialog the plan is to remove the
- old dialog for Mylyn 2.1 (see
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193423">bug
- 193423</a>).</td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<h2>&nbsp;</h2>
-<h2><a name="task-editor">Task Editor</a></h2>
-
-<table cellpadding="10" cellspacing="0" id="table390">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Create Task from Text Selection</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">A new task can be created from any selection in the
- task editor.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/task-from-comment.png"><p class="MsoPlainText">
- &nbsp;</td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table385">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Comment Coloring</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">Quoted comments are colored to make them stand out
- from other comment text.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/comment-coloring.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table384">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Screenshot Capture Improved</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">Screenshot capture has been improved, and now uses a
- non-modal wizard, so that you can interact with Eclipse in order to
- prepare the screenshot.&nbsp; In order to attach a screenshot to a
- repository task, use <i>Task Editor -&gt; Attachments -&gt; Attach File...
- </i>and choose <i>Screenshot</i> as the attachment source.&nbsp;
- You can then use the <i>Capture</i> button one or more times in
- order to grab your entire desktop.&nbsp; In order to only submit a
- part of the desktop, create a crop rectangle by dragging the mouse,
- then submit the screenshot.&nbsp; Use the<i> Fit image </i>button in
- order to zoom in to see the screenshot at its native resolution.&nbsp;
- Screenshots are attached in the JPEG format.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/screenshot-capture.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table357">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Spelling Proposals</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Spelling proposals and dictionary additions
- can now be invoked via Ctrl+1 in the <i>Task Editor</i>.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/spelling-corrections.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table359">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Hyperlink Hovers</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Hyperlink hovers showing task descriptions
- are now available in more places than previously, including in the
- <i>New Comment</i> area of the task editor.&nbsp; Hyperlinks are now
- available from task summary fields, along with spell checking.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/task-editor-hyperlinks.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<p class="MsoPlainText">&nbsp; </p>
-<h2><a name="focused-ui">Task-Focused UI</a></h2>
-
-<table cellpadding="10" cellspacing="0" id="table373">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Task Context</b></p>
- </td>
- <td valign="top" width="70%">
- The slider <i>Context</i> tab on the Task Editor can now be used to
- view all elements still present in the workspace that have at any
- point been a part of the task context. This can be useful for
- pruning the task context before sharing it, for example, in order to
- remove private files that have been accessed.&nbsp; In addition,
- removing large numbers of elements from the task context is now
- instant.&nbsp;
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/context-slider.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table375">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Focus for Bookmarks</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">The <i>Bookmarks</i> view now has a <i>Focus on
- Active Task</i> action, along with the two other Eclipse views that
- show markers (<i>Problems</i> and <i>Tasks</i>).</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/focus-bookmarks.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table389">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Commit Comment Templates</b></p>
- </td>
- <td valign="top" width="70%">
- In addition to being configurable globally for the workspace (<i>Preferences
- -&gt; Mylyn -&gt; Team</i>), commit comment templates can now be
- configured per-project and checked in to source control.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/team-templates-project.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table374">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Alt+click Navigation</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">
- <a href="http://wiki.eclipse.org/Mylyn_User_Guide#Alt.2BClick_navigation">
- Alt+click navigation</a>, used for quick access to filtered items,
- now supports Ctrl+clicking items to bring multiple items into the
- task context.&nbsp; Additional improvements include support for
- single click to make the temporarily unfiltered items to disappear,
- and Alt+click then double-click for quickly opening files.</td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table369">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Alt+click and Popup Menu Improvements</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Since the
- <a href="http://wiki.eclipse.org/index.php/Mylyn_User_Guide#Alt.2BClick_navigation">
- Alt+click navigation</a> mechanism is a new concept and has not been
- discoverable enough, showing the filtered children of an element can now be invoked via the popup
- menu as well.&nbsp; Note that this action is only visible when a
- task is active.&nbsp; It is currently limited to Java elements.&nbsp;<p class="MsoPlainText">In addition, the <i>Remove from Context</i> and <i>Mark as Landmark</i>
- actions have moved to a more appropriate position in the popup menu,
- and will only show when a task is active, and only on the elements
- that they can be applied to.&nbsp; For example, a project cannot be made a
- landmark, and as visible below no longer shows this action. <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/show-filtered.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table370">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Filtering and Linking Management</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">When a view is focused on the active task,
- it's manual linking and filtering facilities get disabled.&nbsp;
- This is now made explicit in the UI of views including the <i>Package
- Explorer</i>, <i>Project Explorer</i> and <i>Navigator </i>by the
- corresponding actions getting grayed out.&nbsp; Doing so also ensures
- that the view cannot be put into an inconsistent state by having
- some of it's filters enabled when in Focused mode.&nbsp; When Focus
- is toggled off or the task is deactivated the manual linking and
- filtering will be re-enabled and restored to their previous state.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/focus-linking-disable.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table368">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Editor Management Configuration</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">A frequent new user confusion of the
- Task-Focused UI was the fact that files are automatically removed
- from the task context when they are closed. This facility will now
- show a popup the first time it is invoked, and prompt that it can disabled
- via the preferences.&nbsp; Previously it could only be disabled by
- disabling all editor management (which restores
- editors and ensures that elements whose interest had decayed have
- their editors closed, preventing open editor bloat).&nbsp; However,
- removing files from context on close is still recommended because it
- ensures that the open editors match the task context.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/context-preferences.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<h2>&nbsp;</h2>
-
-<h2><a name="bugzilla">Bugzilla Connector</a></h2>
-
-<table cellpadding="10" cellspacing="0" id="table381">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Subtask Creation</b></p>
- </td>
- <td valign="top" width="70%">
- <p align="left">Subtasks can be created from the editor's toolbar,
- bypassing the new task creation wizard.</p>
- <p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/bugzilla-subtasks.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table386">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Support for Real Names</b></p>
- </td>
- <td valign="top" width="70%">
- Real names are now support for Bugzilla versions of 3.0 and later.&nbsp;
- Hover over the name to see the email address.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/bugzilla-real-names.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table361">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Custom Resolutions</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Custom resolutions are now supported by the
- <i>Task Editor</i>.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/bugzilla-custom-resolutions.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table358">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Keyword Search</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Bugzilla Search now supports keywords,
- invoked via the <i>Select...</i> button visible below.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/bugzilla-search-keywords.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table360">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Configuration Caching</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">If
- <a href="http://wiki.eclipse.org/Mylyn_User_Guide#Tips_for_server_administrators">
- supported by the server</a>, the Bugzilla configuration is retrieved
- from a cached copy.&nbsp; This can significantly reduce network
- traffic on very large repositories such as bugs.eclipse.org.</td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<p class="MsoPlainText">&nbsp; </p>
-<h2><a name="trac">Trac Connector</a></h2>
-
-<table cellpadding="10" cellspacing="0" id="table362">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Wiki Formatting</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Trac comments can be created with wiki
- markup and previewed before submission.&nbsp; When preview use the
- <i>Edit</i> button to switch back into plain text editing mode.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/trac-wiki-preview.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<p class="MsoPlainText">&nbsp;</p>
-<h2><a name="jira">JIRA Connector</a></h2>
-
-<table cellpadding="10" cellspacing="0" id="table388">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Change Assignee on Creation</b></p>
- </td>
- <td valign="top" width="70%">
- Issue assignees can be set on creation.&nbsp; Use the Ctrl+Space
- content assist to choose from assignees.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/jira-assign.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table391">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Password Prompting</b></p>
- </td>
- <td valign="top" width="70%">
- If a Trac or JIRA repository is missing a password, but a
- synchronization is requested, a dialog will pop up.&nbsp; In
- addition, storing the password is now optional.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.2/password-prompting.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" id="table366">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>Subtask Creation</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">Support for JIRA subtasks has been improved,
- and these can be created both from the<i> Task Editor</i> toolbar.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/jira-subtask-create-editor.png"><p class="MsoPlainText">
- and from the popup menu in the <i>Task List</i>:<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1/jira-subtask-create.png"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<p class="MsoPlainText">&nbsp;</p>
-<h2><a name="xplanner">XPlanner Connector</a></h2>
-
-<table cellpadding="10" cellspacing="0" id="table356">
- <tr>
- <td align="left" valign="top" width="15%" bgcolor=#FAF7FB>
- <p align="right"><b>New Task Editor</b></p>
- </td>
- <td valign="top" width="70%">
- <p class="MsoPlainText">The XPlanner connector now provides a rich
- editor for creating new tasks.<p class="MsoPlainText">
- <img border="0" src="../../mylyn/new/images/2.1M1/xplanner-new-task-editor.jpg"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/doc/notices.html b/org.eclipse.mylyn.help.ui/doc/notices.html
deleted file mode 100644
index 99a80e59f..000000000
--- a/org.eclipse.mylyn.help.ui/doc/notices.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-
-<meta name="copyright" content="Copyright (c) 2004, 2008 Mylyn project committers and others. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <LINK REL="STYLESHEET" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
- <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-<p>
-The material in this guide is Copyright (c) 2004, 2008 Mylyn project committers and others.
-</p>
-<p>
-<a href="../about.html">Terms and conditions regarding the use of this guide.</a>
-</p>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.help.ui/doc/overview.html b/org.eclipse.mylyn.help.ui/doc/overview.html
deleted file mode 100644
index 7c81f1e04..000000000
--- a/org.eclipse.mylyn.help.ui/doc/overview.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-<head>
-<meta name="copyright"
- content="Copyright (c) IBM Corporation and others 2000, 2007. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page.">
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<link rel="STYLESHEET" href="book.css" charset="ISO-8859-1"
- type="text/css">
-<style>
-td {
- border-top: solid thin black;
-}
-
-img[alt] {
- background-color: #ffdddd;
-}
-
-tr {
- vertical-align: top;
-}
-</style>
-<title>Mylyn Overview</title>
-<script language="JavaScript"
- src="PLUGINS_ROOT/org.eclipse.help/livehelp.js"> </script>
-</head>
-
-<body>
-
-<h2>Mylyn Overview</h2>
-
-<p>Mylyn documentation is available online at: <b>
-<a href="http://eclipse.org/mylyn/start/">http://eclipse.org/mylyn/start</a>
-</b></p>
-<p>The New &amp; Noteworthy for Mylyn 2.3 is at: <b>
-<a href="http://www.eclipse.org/mylyn/new">http://eclipse.org/mylyn/new</a> </b> </p>
-<p>Mylyn is a task-focused UI for Eclipse that makes working with very large
-workspaces as easy as working with small ones. Mylyn extends Eclipse with rich
-facilities for keeping track of the tasks that you work and collaborate on. A
-task is defined as any unit of work that you want to recall or share with
-others, such as a bug reported by a user or a note to yourself about improving a
-feature. You can store tasks locally in your workspace, or they can come from
-one or more task repositories. To connect to a task repository, for example a
-bug tracker such as Bugzilla, you must have a connector that supports that
-repository. </p>
-<p>Once your tasks are integrated, Mylyn monitors your work activity
-on those tasks to identify information relevant to the task-at-hand.
-System artifacts such as files, types, methods, and fields get assigned
-a degree-of-interest based on how recently and frequently you interact
-with them. This results in uninteresting elements being filtered from
-view within Eclipse, allowing you to focus on on what is important. From
-this, Mylyn creates a task context, which is the set of all artifacts
-related to your task. These can include methods you have edited, APIs
-you have referred to, and documents you have browsed. Mylyn uses this
-task context to focus the Eclipse UI on interesting information, hide
-what's uninteresting, and automatically find what's related. Having the
-information you need to get your work done at your fingertips improves
-your productivity by reducing the time you spend searching, scrolling,
-and navigating. By making task context explicit, Mylyn also facilitates
-multitasking, planning, reusing past efforts, and sharing expertise.</p>
-
-<img src=images/mylyn-2.0.png>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.help.ui/extract-markup.xsl b/org.eclipse.mylyn.help.ui/extract-markup.xsl
deleted file mode 100644
index 4c4e73194..000000000
--- a/org.eclipse.mylyn.help.ui/extract-markup.xsl
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.3/">
- <xsl:output method="text"/>
-
- <xsl:template match="/">
- <xsl:value-of select="//mw:text"/>
- </xsl:template>
-</xsl:stylesheet>
diff --git a/org.eclipse.mylyn.help.ui/icons/etool16/icons-legend.gif b/org.eclipse.mylyn.help.ui/icons/etool16/icons-legend.gif
deleted file mode 100644
index f40ce6b17..000000000
--- a/org.eclipse.mylyn.help.ui/icons/etool16/icons-legend.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/mylyn-overview-small.gif b/org.eclipse.mylyn.help.ui/images/mylyn-overview-small.gif
deleted file mode 100644
index 2e88b0b6f..000000000
--- a/org.eclipse.mylyn.help.ui/images/mylyn-overview-small.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/mylyn-overview.gif b/org.eclipse.mylyn.help.ui/images/mylyn-overview.gif
deleted file mode 100644
index 74409455d..000000000
--- a/org.eclipse.mylyn.help.ui/images/mylyn-overview.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48_hov.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48_hov.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_legend48_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48_hov.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48_hov.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/ov_mylyn48_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48.gif
deleted file mode 100644
index d6c5de214..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48_hov.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48_hov.gif
deleted file mode 100644
index d6c5de214..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_query48_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48_hov.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48_hov.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/tu_task48_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48_hov.gif b/org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48_hov.gif
deleted file mode 100644
index 5a37f3ae8..000000000
--- a/org.eclipse.mylyn.help.ui/images/topiclabel/wn_mylyn48_hov.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/intro/css/overview.css b/org.eclipse.mylyn.help.ui/intro/css/overview.css
deleted file mode 100644
index e0148136f..000000000
--- a/org.eclipse.mylyn.help.ui/intro/css/overview.css
+++ /dev/null
@@ -1,15 +0,0 @@
-a#mylyn-overview img {
- background-image: url(../../images/topiclabel/ov_mylyn48.gif);
-}
-
-a#mylyn-overview:hover img {
- background-image: url(../../images/topiclabel/ov_mylyn48_hov.gif);
-}
-
-a#mylyn-legend img {
- background-image: url(../../images/topiclabel/ov_legend48.gif);
-}
-
-a#mylyn-legend:hover img {
- background-image: url(../../images/topiclabel/ov_legend48_hov.gif);
-}
diff --git a/org.eclipse.mylyn.help.ui/intro/css/overview.properties b/org.eclipse.mylyn.help.ui/intro/css/overview.properties
deleted file mode 100644
index c028a26c4..000000000
--- a/org.eclipse.mylyn.help.ui/intro/css/overview.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-overview.mylyn-overview.link-icon = images/topiclabel/ov_mylyn48.gif
-overview.mylyn-overview.hover-icon = images/topiclabel/ov_mylyn48_hov.gif
-overview.mylyn-legend.link-icon = images/topiclabel/ov_legend48.gif
-overview.mylyn-legend.hover-icon = images/topiclabel/ov_legend48_hov.gif
diff --git a/org.eclipse.mylyn.help.ui/intro/css/tutorials.css b/org.eclipse.mylyn.help.ui/intro/css/tutorials.css
deleted file mode 100644
index f2d361603..000000000
--- a/org.eclipse.mylyn.help.ui/intro/css/tutorials.css
+++ /dev/null
@@ -1,15 +0,0 @@
-a#mylyn-query img {
- background-image: url(../../images/topiclabel/tu_query48.gif);
-}
-
-a#mylyn-query:hover img {
- background-image: url(../../images/topiclabel/tu_query48_hov.gif);
-}
-
-a#mylyn-task img {
- background-image: url(../../images/topiclabel/tu_task48.gif);
-}
-
-a#mylyn-task:hover img {
- background-image: url(../../images/topiclabel/tu_task48_hov.gif);
-}
diff --git a/org.eclipse.mylyn.help.ui/intro/css/tutorials.properties b/org.eclipse.mylyn.help.ui/intro/css/tutorials.properties
deleted file mode 100644
index 6d8dac3f2..000000000
--- a/org.eclipse.mylyn.help.ui/intro/css/tutorials.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-tutorials.mylyn-query.link-icon = images/topiclabel/tu_query48.gif
-tutorials.mylyn-query.hover-icon = images/topiclabel/tu_query48_hov.gif
-tutorials.mylyn-task.link-icon = images/topiclabel/tu_task48.gif
-tutorials.mylyn-task.hover-icon = images/topiclabel/tu_task48_hov.gif
diff --git a/org.eclipse.mylyn.help.ui/intro/css/whatsnew.css b/org.eclipse.mylyn.help.ui/intro/css/whatsnew.css
deleted file mode 100644
index 3bcb8da0f..000000000
--- a/org.eclipse.mylyn.help.ui/intro/css/whatsnew.css
+++ /dev/null
@@ -1,7 +0,0 @@
-a#mylyn-noteworthy img {
- background-image: url(../../images/topiclabel/wn_mylyn48.gif);
-}
-
-a#mylyn-noteworthy:hover img {
- background-image: url(../../images/topiclabel/wn_mylyn48_hov.gif);
-}
diff --git a/org.eclipse.mylyn.help.ui/intro/css/whatsnew.properties b/org.eclipse.mylyn.help.ui/intro/css/whatsnew.properties
deleted file mode 100644
index af2e13db1..000000000
--- a/org.eclipse.mylyn.help.ui/intro/css/whatsnew.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-whatsnew.mylyn-noteworthy.link-icon = images/topiclabel/wn_mylyn48.gif
-whatsnew.mylyn-noteworthy.hover-icon = images/topiclabel/wn_mylyn48_hov.gif
diff --git a/org.eclipse.mylyn.help.ui/intro/overviewExtensionContent.xml b/org.eclipse.mylyn.help.ui/intro/overviewExtensionContent.xml
deleted file mode 100644
index 3ca189e26..000000000
--- a/org.eclipse.mylyn.help.ui/intro/overviewExtensionContent.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<introContent>
- <extensionContent id="org.eclipse.mylyn" name="Mylyn"
- style="css/overview.css" alt-style="css/overview.properties" path="overview/@">
- <group id="content-group" style-id="content-group">
- <!--
- <link label="Mylyn"
- url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.mylyn.help.ui/doc/overview.html"
- id="mylyn-overview" style-id="content-link">
- <text>Learn more about how Mylyn will help you focus on tasks</text>
- </link>
- -->
- <link label="Mylyn"
- url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.mylyn.help.ui&amp;class=org.eclipse.mylyn.internal.tasks.ui.actions.ShowTasksUiLegendAction&amp;id=org.eclipse.mylyn.doc.legend.show.action"
- id="mylyn-overview" style-id="content-link">
- <text>See the Tasks UI Legend and open the Task List</text>
- </link>
- </group>
- </extensionContent>
-</introContent>
diff --git a/org.eclipse.mylyn.help.ui/intro/tutorialsExtensionContent.xml b/org.eclipse.mylyn.help.ui/intro/tutorialsExtensionContent.xml
deleted file mode 100644
index c54ac8059..000000000
--- a/org.eclipse.mylyn.help.ui/intro/tutorialsExtensionContent.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<introContent>
- <extensionContent id="org.eclipse.mylyn" name="Mylyn"
- style="css/tutorials.css" alt-style="css/tutorials.properties" path="tutorials/@">
- <group label="Task-focused programming" id="mylyn" style-id="content-group">
- <link
- url="http://org.eclipse.ui.intro/showStandby?partId=org.eclipse.platform.cheatsheet&amp;input=org.eclipse.mylyn.cheatsheet.query"
- label="Use the Task List" id="mylyn-query" style-id="content-link">
- <text>Learn how to create tasks and task repository queries</text>
- </link>
- <link
- url="http://www.eclipse.org/mylyn/start/"
- label="Visit the Mylyn homepage" id="mylyn-task" style-id="content-link">
- <text>Learn about the benefits of task-focused programming with Mylyn</text>
- </link>
- </group>
- </extensionContent>
-</introContent>
-
-<!--
-<link
- url="http://org.eclipse.ui.intro/showStandby?partId=org.eclipse.platform.cheatsheet&amp;input=org.eclipse.mylyn.cheatsheet.taskfocus"
- label="Focus on Java" id="mylyn-task" style-id="content-link">
- <text>Learn how to reduce information overload and multitask with ease.</text>
-</link>
--->
diff --git a/org.eclipse.mylyn.help.ui/intro/whatsnewExtensionContent.xml b/org.eclipse.mylyn.help.ui/intro/whatsnewExtensionContent.xml
deleted file mode 100644
index aad68cc2e..000000000
--- a/org.eclipse.mylyn.help.ui/intro/whatsnewExtensionContent.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<introContent>
- <extensionContent id="org.eclipse.mylyn" name="Mylyn"
- style="css/whatsnew.css" alt-style="css/whatsnew.properties" path="whatsnew/@">
- <group id="content-group" style-id="content-group">
- <link label="Mylyn"
- url="http://www.eclipse.org/mylyn/new/"
- id="mylyn-noteworthy" style-id="content-link">
- <text>
- Find out the significant changes made to Mylyn
- </text>
- </link>
- </group>
- </extensionContent>
-</introContent>
-
-<!--
- url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.mylyn.help.ui/doc/new.html"
---> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/plugin.properties b/org.eclipse.mylyn.help.ui/plugin.properties
deleted file mode 100644
index 63bd4351d..000000000
--- a/org.eclipse.mylyn.help.ui/plugin.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-#Properties file for org.eclipse.mylyn.help.ui
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Help
-
-cheatsheet.category.name = Tasks
-cheatsheet.query.name = Create a task repository query
-cheatsheet.query.description = Learn how to work with task and queries using the Task List
-cheatsheet.taskfocus.name = Work with task context
-cheatsheet.taskfocus.description = Learn how to activate tasks and use the Task-Focused UI
diff --git a/org.eclipse.mylyn.help.ui/plugin.xml b/org.eclipse.mylyn.help.ui/plugin.xml
deleted file mode 100644
index f5c2850bf..000000000
--- a/org.eclipse.mylyn.help.ui/plugin.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
- id="org.eclipse.mylyn.helpDocs"
- name="Tasks"
- point="org.eclipse.help.toc">
- <toc
- file="toc.xml"
- primary="true">
- </toc>
- <toc
- file="userguide/Mylyn Reference-toc.xml"
- primary="false">
- </toc>
- </extension>
-
- <extension
- point="org.eclipse.ui.intro.configExtension">
- <configExtension
- configId="org.eclipse.ui.intro.universalConfig"
- content="$nl$/intro/overviewExtensionContent.xml">
- </configExtension>
- <configExtension
- configId="org.eclipse.ui.intro.universalConfig"
- content="$nl$/intro/whatsnewExtensionContent.xml">
- </configExtension>
- <configExtension
- configId="org.eclipse.ui.intro.universalConfig"
- content="$nl$/intro/tutorialsExtensionContent.xml">
- </configExtension>
- </extension>
- <extension
- point="org.eclipse.ui.cheatsheets.cheatSheetContent">
- <category
- id="org.eclipse.mylyn.cheatsheet"
- name="%cheatsheet.category.name">
- </category>
- <cheatsheet
- category="org.eclipse.mylyn.cheatsheet"
- contentFile="$nl$/cheatsheets/Query.xml"
- id="org.eclipse.mylyn.cheatsheet.query"
- name="%cheatsheet.query.name">
- <description>
- %cheatsheet.query.description
- </description>
- </cheatsheet>
- <cheatsheet
- category="org.eclipse.mylyn.cheatsheet"
- contentFile="$nl$/cheatsheets/TaskFocus.xml"
- id="org.eclipse.mylyn.cheatsheet.taskfocus"
- name="%cheatsheet.taskfocus.name">
- <description>
- %cheatsheet.taskfocus.description
- </description>
- </cheatsheet>
- </extension>
-
-</plugin>
diff --git a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java b/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java
deleted file mode 100644
index 8726b813b..000000000
--- a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.help.ui.anttask;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Get;
-
-/**
- * Fetch images from a MediaWiki-generated HTML page source
- *
- * @author David Green
- */
-public class MediaWikiImageFetcher extends Task {
-
- private String base;
-
- private File dest;
-
- private File src;
-
- @Override
- public void execute() throws BuildException {
- if (dest == null) {
- throw new BuildException("Must specify @dest"); //$NON-NLS-1$
- }
- if (!dest.exists()) {
- throw new BuildException("@dest does not exist: " + dest); //$NON-NLS-1$
- }
- if (!dest.isDirectory()) {
- throw new BuildException("@dest is not a directory: " + dest); //$NON-NLS-1$
- }
- if (src == null) {
- throw new BuildException("Must specify @src"); //$NON-NLS-1$
- }
- if (!src.exists()) {
- throw new BuildException("@src does not exist: " + src); //$NON-NLS-1$
- }
- if (!src.isFile()) {
- throw new BuildException("@src is not a file: " + src); //$NON-NLS-1$
- }
- if (base == null) {
- throw new BuildException("Must specify @base"); //$NON-NLS-1$
- }
- if (base.endsWith("/")) { //$NON-NLS-1$
- base = base.substring(0, base.length() - 1);
- }
- Pattern fragmentUrlPattern = Pattern.compile("src=\"([^\"]+)\""); //$NON-NLS-1$
- Pattern imagePattern = Pattern.compile("alt=\"Image:([^\"]*)\"([^>]+)", Pattern.MULTILINE); //$NON-NLS-1$
- String htmlSrc;
- try {
- htmlSrc = readSrc();
- } catch (IOException e) {
- throw new BuildException("Cannot read src: " + src + ": " + e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$
- }
- log("Parsing " + src, Project.MSG_INFO); //$NON-NLS-1$
- int fileCount = 0;
- Matcher imagePatternMatcher = imagePattern.matcher(htmlSrc);
- while (imagePatternMatcher.find()) {
- String alt = imagePatternMatcher.group(1);
- String imageFragment = imagePatternMatcher.group(2);
- if (imageFragment != null) {
- Matcher fragmentUrlMatcher = fragmentUrlPattern.matcher(imageFragment);
- if (fragmentUrlMatcher.find()) {
- String url = fragmentUrlMatcher.group(1);
- String qualifiedUrl = base + url;
- log("Fetching " + qualifiedUrl, Project.MSG_INFO); //$NON-NLS-1$
- Get get = new Get();
- get.setProject(getProject());
- get.setLocation(getLocation());
- try {
- get.setSrc(new URL(qualifiedUrl));
- } catch (MalformedURLException e) {
- log("Skipping " + url + ": " + e.getMessage(), Project.MSG_WARN); //$NON-NLS-1$ //$NON-NLS-2$
- continue;
- }
- // note: we use the alt text for the name since for some files there is a case-difference between
- // the server URL and the text used in the image src of the markup
- String name = alt == null ? url.substring(url.lastIndexOf('/')) : alt;
- get.setDest(new File(dest, name));
- get.execute();
- ++fileCount;
- }
- }
- }
- log("Fetched " + fileCount + " image files for " + src, Project.MSG_INFO); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public String getBase() {
- return base;
- }
-
- public File getDest() {
- return dest;
- }
-
- public File getSrc() {
- return src;
- }
-
- private String readSrc() throws IOException {
- StringBuilder buf = new StringBuilder((int) src.length());
- Reader reader = new BufferedReader(new FileReader(src));
- try {
- int i;
- while ((i = reader.read()) != -1) {
- buf.append((char) i);
- }
- } finally {
- reader.close();
- }
- return buf.toString();
- }
-
- public void setBase(String base) {
- this.base = base;
- }
-
- public void setDest(File dest) {
- this.dest = dest;
- }
-
- public void setSrc(File src) {
- this.src = src;
- }
-
-}
diff --git a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties b/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties
deleted file mode 100644
index b3c14e602..000000000
--- a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties
+++ /dev/null
@@ -1 +0,0 @@
-mediawiki-fetch-images=org.eclipse.mylyn.internal.help.ui.anttask.MediaWikiImageFetcher
diff --git a/org.eclipse.mylyn.help.ui/toc.xml b/org.eclipse.mylyn.help.ui/toc.xml
deleted file mode 100644
index 25188236c..000000000
--- a/org.eclipse.mylyn.help.ui/toc.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Tasks User Guide">
- <anchor id="before-reference" />
- <topic label="Feature Reference">
- <anchor id="before-reference-content"/>
- <link toc="userguide/Mylyn Reference-toc.xml"/>
- <anchor id="after-reference-content"/>
- <anchor id="additions-reference" />
- </topic>
- <anchor id="after-reference" />
- <anchor id="additions" />
- <topic href="doc/notices.html" label="Legal" />
-</toc>
-
-
diff --git a/org.eclipse.mylyn.help.ui/userguide/Mylyn Reference-toc.xml b/org.eclipse.mylyn.help.ui/userguide/Mylyn Reference-toc.xml
deleted file mode 100644
index 89a3893c7..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Mylyn Reference-toc.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<toc topic="userguide/Mylyn Reference.html" label="Mylyn Reference">
- <topic href="userguide/Mylyn Reference.html" label="Task List">
- <topic href="userguide/Mylyn Reference.html#Task_List_Presentation" label="Task List Presentation"></topic>
- <topic href="userguide/Mylyn Reference.html#Icon_Legend_and_Color_Coding" label="Icon Legend and Color Coding"></topic>
- <topic href="userguide/Mylyn Reference.html#Creating_new_Tasks" label="Creating new Tasks">
- <topic href="userguide/Mylyn Reference.html#Local_Tasks" label="Local Tasks"></topic>
- <topic href="userguide/Mylyn Reference.html#Repository_Tasks" label="Repository Tasks"></topic>
- </topic>
- <topic href="userguide/Mylyn Reference.html#Creating_new_Queries" label="Creating new Queries"></topic>
- <topic href="userguide/Mylyn Reference.html#Scheduling" label="Scheduling"></topic>
- <topic href="userguide/Mylyn Reference.html#Synchronization" label="Synchronization"></topic>
- <topic href="userguide/Mylyn Reference.html#Incoming_Changes" label="Incoming Changes"></topic>
- <topic href="userguide/Mylyn Reference.html#Reviewing_Tasks" label="Reviewing Tasks"></topic>
- <topic href="userguide/Mylyn Reference.html#Task_Progress_Indicators" label="Task Progress Indicators"></topic>
- <topic href="userguide/Mylyn Reference.html#Task_List_Settings_and_Operations" label="Task List Settings and Operations"></topic>
- </topic>
- <topic href="userguide/Task-Repositories.html" label="Task Repositories"></topic>
- <topic href="userguide/Task-Editor.html" label="Task Editor">
- <topic href="userguide/Task-Editor.html#Repository_Task_Details" label="Repository Task Details"></topic>
- <topic href="userguide/Task-Editor.html#Context" label="Context"></topic>
- <topic href="userguide/Task-Editor.html#Planning" label="Planning"></topic>
- </topic>
- <topic href="userguide/Task-Focused-Interface.html" label="Task-Focused Interface">
- <topic href="userguide/Task-Focused-Interface.html#Focusing_Navigator_Views" label="Focusing Navigator Views"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Alt.2BClick_Navigation" label="Alt+Click Navigation"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Focusing_Editors" label="Focusing Editors"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Task-focused_Ordering" label="Task-focused Ordering"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Working_Set_Integration" label="Working Set Integration"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Open_Task_dialog" label="Open Task dialog"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Task_Hyperlinking" label="Task Hyperlinking"></topic>
- <topic href="userguide/Task-Focused-Interface.html#Reporting_Bugs_from_the_Error_Log" label="Reporting Bugs from the Error Log"></topic>
- </topic>
- <topic href="userguide/Team-Support.html" label="Team Support">
- <topic href="userguide/Team-Support.html#Task-focused_Change_Sets" label="Task-focused Change Sets"></topic>
- <topic href="userguide/Team-Support.html#Automatic_Commit_Messages" label="Automatic Commit Messages"></topic>
- <topic href="userguide/Team-Support.html#Working_with_Patches" label="Working with Patches"></topic>
- </topic>
- <topic href="userguide/Shortcuts.html" label="Shortcuts"></topic>
- <topic href="userguide/Preferences.html" label="Preferences">
- <topic href="userguide/Preferences.html#Tasks" label="Tasks"></topic>
- <topic href="userguide/Preferences.html#Context_2" label="Context"></topic>
- <topic href="userguide/Preferences.html#Resources" label="Resources"></topic>
- <topic href="userguide/Preferences.html#Team" label="Team"></topic>
- <topic href="userguide/Preferences.html#Shortcuts_2" label="Shortcuts"></topic>
- </topic>
- <topic href="userguide/Task-Repository-Connectors.html" label="Task Repository Connectors">
- <topic href="userguide/Task-Repository-Connectors.html#Bugzilla_Connector" label="Bugzilla Connector"></topic>
- <topic href="userguide/Task-Repository-Connectors.html#Trac_Connector" label="Trac Connector"></topic>
- <topic href="userguide/Task-Repository-Connectors.html#JIRA_Connector" label="JIRA Connector"></topic>
- <topic href="userguide/Task-Repository-Connectors.html#Generic_Web_Templates_Connector" label="Generic Web Templates Connector"></topic>
- <topic href="userguide/Task-Repository-Connectors.html#XPlanner_Connector" label="XPlanner Connector"></topic>
- </topic>
- <topic href="userguide/Updating-This-Document.html" label="Updating This Document"></topic>
-</toc> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Mylyn Reference.html b/org.eclipse.mylyn.help.ui/userguide/Mylyn Reference.html
deleted file mode 100644
index 8836e9187..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Mylyn Reference.html
+++ /dev/null
@@ -1,409 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Mylyn Reference</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Task-Repositories.html" title="Task Repositories">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task Repositories</td>
- </tr>
- </table><hr/>
- <h1 id="Task_List">Task List</h1>
- <p>Use the Task List to view and manage your tasks. If the task list view is not visible, you can open it by navigating to Window -> Show View -> Other... -> Mylyn -> Task List. The Task List contains both "Local Tasks" and shared "repository tasks" that are stored in a task repository such as Bugzilla or Jira. See how to create new tasks. Local tasks are typically contained in categories, which you can create by right-clicking on the task list and selecting new -> category. Repository tasks are contained in special categories that represent queries.</p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Task-List-Categorized.png"/>
- </p>
- <p>At the top of the Task List, you will find the following buttons and features:</p>
- <ul>
- <li>
- <b>New Task</b> - Create a new local or repository task.
- </li>
- <li>
- <b>Synchronize</b> - Update repository tasks with changes from the server.
- </li>
- <li>
- <b>Task Presentation</b> - Toggle between Scheduled and Categorized presentations.
- </li>
- <li>
- <b>Focus on Workweek</b> - See only tasks scheduled for this week.
- </li>
- <li>
- <b>Find</b> - search for a task by typing in words from the task summary
- </li>
- <li>
- <b>Working set indicator</b> - Indicates the currently active working set. Use the black arrow on the left to change the working set.
- </li>
- <li>
- <b>Current task indicator</b> - Indicates the currently active task. Use the black arrow on the left to re-activate a recently active task.
- </li>
- </ul>
- <h2 id="Task_List_Presentation">Task List Presentation</h2>
- <p>The task list supports several ways to present tasks. You can toggle between the following modes by using the "Task Presentation" button in the toolbar.</p>
- <ul>
- <li>
- <b>Categorized</b> - View tasks grouped by their category
- </li>
- <li>
- <b>Scheduled</b> - View tasks grouped by the "
- <i>scheduled</i> date"
- </li>
- </ul>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Task-List-Presentation-Select.png"/>
- </p>
- <p>In either presentation, you can toggle the "Focus on Workweek" button. In this mode, only the following tasks will be visible:</p>
- <ul>
- <li>Tasks scheduled for this week.</li>
- <li>Overdue tasks.</li>
- <li>Tasks with unread changes from your task repository.</li>
- </ul>
- <h2 id="Icon_Legend_and_Color_Coding">Icon Legend and Color Coding</h2>
- <p>See the legend below to interpret the icons and color coding in the task list. You can view this legend by selecting "Show UI Legend" from the menu that appears when you click the white down arrow next to the minimize button in the top right corner of the Task List view. </p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-UI-Legend.png"/>
- </p>
- <h2 id="Creating_new_Tasks">Creating new Tasks</h2>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-New-Task.png"/>
- </p>
- <p>You can create new tasks by clicking on the "New Task" button in the Task List's toolbar. This will open the "New Task" dialog and prompt you to select a repository. There are two main types of tasks, local tasks and repository tasks.</p>
- <h3 id="Local_Tasks">Local Tasks</h3>
- <p>Use local tasks if you do not have a shared task repository or if you would like to create a private, personal task that is local to your workspace. To create a local task, select
- <b>Local Task</b> and "Finish" from the New Task dialog.
- </p>
- <p>You can then provide the following details about the task.</p>
- <ul>
- <li>'''Task Description - Your task is called "New Task" by default. Replace this with a brief task description.</li>
- <li>
- <b>Priority</b> - Set the priority of your task. This will affect the task's icon and order in the task list.
- </li>
- <li>
- <b>Status</b> - Set your task to "complete" or "incomplete". In your task list, completed tasks have a strikethrough font and will appear lower in the list.
- </li>
- <li>
- <b>URL</b> - You can associate a URL with this task.
- <ul>
- <li>"Retrieve Task Description from URL" button - Set the task description to the title of the associated URL (page)</li>
- <li>"Open with Web Browser" button - Open the URL in the integrated web browser</li>
- </ul>
- </li>
- <li>
- <b>Scheduled For</b> - Set the date when you will work on this task. Tasks scheduled for today or a date in the past will appear in blue in your task list. Tasks scheduled for future days will appear in black. If your task list is in focused mode, only tasks for the current week will be visible (unless they have unread changes).
- </li>
- <li>
- <b>Due</b> - Set the date when your task must be completed. Overdue tasks and tasks due today will appear in red in your task list.
- </li>
- <li>
- <b>Estimated Hours</b> - Estimate the number of hours it will take to complete this task.
- </li>
- <li>
- <b>Active</b> - Displays the total time that you have worked on this task. Time is only recorded when this task is active and you are actively interacting with the system.
- </li>
- <li>
- <b>Notes</b> - Record your personal notes about this task.
- </li>
- </ul>
- <p>
- <img border="0" src="images/Feature-Guide-3.0-Local-Task.png"/>
- </p>
- <h3 id="Repository_Tasks">Repository Tasks</h3>
- <p>Create a new repository task when you would like to share information about the task with your team using a task repository such as Bugzilla or JIRA. To create a new repository task, click on the "New Task" button in the Task List's toolbar. You can then select the repository where you would like to create a task. If you don't see your team's task repository, you will need to configure it in the task repositories view. Once you have selected a repository, click "Next". If you are connecting to a Bugzilla repository, select a "Product" as a top-level category for your task and click "Finish".</p>
- <p>A new task editor will appear. If you are using Bugzilla, you can enter the following information:</p>
- <p>Required</p>
- <ul>
- <li>
- <b>Description</b> - Enter a brief task description in the text box at the top (this box does not have a label).
- </li>
- <li>
- <b>Component</b> - Specify a "Component" to further categorize this task within the previously selected "Product".
- </li>
- <li>
- <b>Description</b> - Describe the task in detail.
- </li>
- </ul>
- <p>Optional</p>
- <ul>
- <li>You can specify additional information about your tasks in the "Attributes" section.</li>
- <li>
- <b>Personal Planning</b> - You can enter information in this section that will be local to your workspace and
- <b>not</b> available on your team's task repository. See "Local Tasks" for more information about the personal planning fields.
- </li>
- <li>
- <b>Assigned to</b> - Specify who should work on the task. Type the first several characters of the person's email address, and then press ctrl+space to select the address from a list. A task can be assigned to only one person at a time.
- </li>
- <li>
- <b>Add CC</b> - Add the addresses of people who should be notified of changes to this task. You can add multiple addresses, separated by a comma, e.g. (mik.kersten@tasktop.com, steffen.pingel@tasktop.com).
- </li>
- </ul>
- <p>When finished, click "Submit" to add your new task to your team's shared task repository.</p>
- <h2 id="Creating_new_Queries">Creating new Queries</h2>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-New-Query-Combined.png"/>
- </p>
- <p>Once you have configured your team's task repository, you can use Queries to add tasks to your task list.</p>
- <ul>
- <li>If the Task List is not visible, navigate to
- <i>Window -> Show View -> Other -> Mylyn -> Task List</i>
- </li>
- <li>Right-click on the Task List and select "New -> Query..."</li>
- <li>Select the repository whose tasks you would like to download and click "Next".</li>
- <li>If you are prompted to select a query type, select "Create query using form" and click "Next".</li>
- <li>Complete the form to define which tasks will be downloaded as part of this query, and then click "Finish". You can provide values for only as many parameters as necessary to filter the query results.</li>
- </ul>
- <p>If you are using the Bugzilla connector, you can specify the following parameters by default. The parameters for most other connectors will be similar.</p>
- <ul>
- <li>
- <b>Query Title</b> - Label that appears in your task list.
- </li>
- <li>
- <b>Summary</b> - Specify words that must appear in the summary of tasks matched by this query.
- </li>
- <li>
- <b>Comment</b> - Words that must appear in the comments of matching tasks.
- </li>
- <li>
- <b>Email</b> - Specify all or part of an email address. This address is used together with the following options:
- <ul>
- <li>
- <b>Owner</b> - The specified email must match the person who the task is assigned to
- </li>
- <li>
- <b>Reporter</b> - The specified email must match the person who created the task
- </li>
- <li>
- <b>CC</b> - The person with the specified email address must be CC'd on the task
- </li>
- <li>
- <b>Commenter</b> - The person with the specified email address must have commented on the task
- </li>
- <li>You can choose from the following options to specify how the email address will be matched:
- <ul>
- <li>
- <b>substring</b> - Only a part of the specified address must match
- </li>
- <li>
- <b>exact</b> - The specified email address must match exactly
- </li>
- <li>
- <b>regexp</b> - The email address must match the specified regular expression
- </li>
- <li>
- <b>notregexp</b> - The email address must NOT match the specified regular expression
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li>
- <b>Email 2</b> - You can use this parameter to specify another email address to further restrict the results
- </li>
- <li>
- <b>Keywords</b> - Click the "Select..." button to specify a keyword that must be associated with matching tasks
- </li>
- <li>
- <b>Product, Component, Version, ...</b> - Optionally select parameters to restrict the results to a particular product, version, etc.
- </li>
- <li>
- <b>Update Attributes from Repository</b> - Click this to refresh the available parameters if the project structure on the task respository has changed recently.
- </li>
- <li>
- <b>Changed in:</b> - Only tasks modified within the specified number of days will appear in the query results
- </li>
- </ul>
- <h2 id="Scheduling">Scheduling</h2>
- <p>Two kinds of dates for scheduling are provided.</p>
- <p>
- <b>Scheduled Date</b>
- </p>
- <ul>
- <li>A soft date used for personal scheduling that can be easily deferred as priorities change. The scheduled date is the date you plan to start working on the task.</li>
- <li>When a task reaches its scheduled date it will turn blue, indicating that the task should be activated and worked on today.</li>
- <li>Scheduled dates are private to your local workspace</li>
- </ul>
- <p>
- <b>Due Date</b>
- </p>
- <ul>
- <li>A hard date when the task must be completed. This is often related to external constraints such as deadlines.</li>
- <li>If you are using a shared task repository, due dates become an attribute of the shared task and will be visible to other team members.</li>
- <li>A task with a due date has a small clock overlay that is blue before the due date and red after.</li>
- </ul>
- <h2 id="Synchronization">Synchronization</h2>
- <p>Repository tasks and queries are synchronized to reflect the latest changes on the server.
- Tasks are synchronized the following ways:</p>
- <ul>
- <li>
- <b>Automatic Synchronization.</b> By default, tasks will be synchronized with the repository every 20 minutes. Automatic synchronization can be disabled via the
- <i>Synchronize Automatically</i> option in the view menu (e.g. when working with intermittently available connectivity). The synchronization interval can be changed via
- <i>Preferences -> Mylyn -> Task List</i>.
- </li>
- </ul>
- <ul>
- <li>
- <b>On Task Open.</b> Tasks are synchronized automatically in the background when a task editor is opened.
- </li>
- </ul>
- <ul>
- <li>
- <b>Manually.</b> Individual tasks and queries can be synchronized manually by right-clicking on them in the Task List and selecting "Synchronize", or via the toolbar button. Clicking the toolbar button will synchronize all queries in your task list.
- </li>
- </ul>
- <p>
- <br/>
-
- <b>Disconnected Mode</b>
- <br/>
- A task repository can be put into Disconnected mode via the right-click menu in the
- <i>Task Repositories</i> view. This can be useful if the task repository is not currently in use (e.g. you are no longer engaged with the project, or the repository is no longer available). The offline support will ensure that you can still access tasks that you have worked with via their offline copies, and the Disconnected mode will ensure that synchronization warnings do not appear. Note that it is not necessary to turn off synchronization or work in Disconnected Mode when working offline.
- </p>
- <h2 id="Incoming_Changes">Incoming Changes</h2>
- <p>A blue arrow to the left of a task indicates that the task has changed in the shared repository. Double-click the task to view it in the task editor. Changes to the task will be highlighted in blue.</p>
- <p>To quickly review the differences since the task was last read, hover over the task in the Task List to view a summary in a tooltip. You can also press F4 to display a tooltip. You may also wish to view the task list in "Focus on Workweek" mode, which will filter out tasks without incoming changes that are not scheduled or due this week. You can toggle "Focus on Workweek" using a button in the Task List's toolbar.</p>
- <h2 id="Reviewing_Tasks">Reviewing Tasks</h2>
- <p>The task list has been carefully designed to support quickly reviewing tasks. Task reviewing is best done by configuring a query to show the tasks that you want to review. Once the tasks are displayed in the Task List they can be reviewed one at a time by scrolling through them using the keyboard up/down arrows. The task tooltip should provide enough detail to do a review and will display information relevant to the currently selected task. </p>
- <p>To edit the selected task press the enter key, use Ctrl+Enter to open the task in the background. To quickly jump to the next unread task hold down the Alt-key when pressing up or down. To mark a task as read while navigating use Alt+shift+up/down. When reviewing tasks in this way, it is best to avoid mouse-based and gesture-based scrolling.</p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Task-List-Tooltip.png"/>
- </p>
- <h2 id="Task_Progress_Indicators">Task Progress Indicators</h2>
- <p>
- <b>Weekly progress</b>
- <br/>
- When in
- <i>Focus on Workweek</i> mode (right-most toolbar button), the Task List will show a progress bar that indicates progress on the tasks scheduled for the current week. Each task that is scheduled for the week but not yet completed adds to the bar. A task completed by you adds to the green progress in the bar. Deferring a task to a future week will also add to the apparent progress because it will remove the task from the current week. Mousing over the bar will indicate details about your progress, such as the number of tasks and hours completed. To avoid the need for manual estimation by default every task is estimated for 1 hour, but if you have longer or shorter running tasks that week you can adjust the estimate in the task editor's
- <i>Planning</i> page to ensure that the progress bar is accurate.
- </p>
- <p>Note that when in
- <i>Focus on Workweek</i> mode the
- <i>Task List</i> will show each of the tasks scheduled for this week. However, overdue tasks and those with incoming changes will also show, making the number of tasks visible not be a reliable indicator of progress on the tasks planned for the week.
- </p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Weekly-Progress.png"/>
- </p>
- <p>
- <br/>
-
- <b>Category Progress</b>
- <br/>
- You can hover over categories in the task list to display a tooltip that displays a summary of complete and incomplete tasks.
- </p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Category-Progress.png"/>
- </p>
- <h2 id="Task_List_Settings_and_Operations">Task List Settings and Operations</h2>
- <p>Click the small white arrow in the top left of the task list to access the following settings:</p>
- <ul>
- <li>
- <b>Go Up to Root</b> - Return to the normal presentation after previously selecting "Go Into" to see only the tasks in a particular category.
- </li>
- <li>
- <b>Sort</b> - Open a dialog to set the sort order for the task list. This option is only availabe when the task list is not in "Focus on Workweek" mode.
- </li>
- <li>
- <b>Filter priority lower than</b> - Hide tasks with a priority less than the priority you select. This option is only availabe when the task list is not in "Focus on Workweek" mode.
- </li>
- <li>
- <b>Filter completed tasks</b> - Hide local and repository tasks that are in a completed state.
- </li>
- <li>
- <b>Search Repository</b> - Opens a dialog to search for repository tasks. Search results will appear in a separate search results view.
- </li>
- <li>
- <b>Restore Tasks from History</b> - Opens a dialog for restoring lost tasks.
- </li>
- <li>
- <b>Synchronize Changed</b> - Updates the task list with any changes on the task repository.
- </li>
- <li>
- <b>Synchronize Automatically</b> - When checked, the task list will update from the task repository on an interval specified in Window -> Preferences -> Tasks -> Synchronization
- </li>
- <li>
- <b>Show UI Legend</b> - Displays a legend explaining icons and color-coding.
- </li>
- <li>
- <b>Focus on Workweek</b> - Displays only tasks that are scheduled for this week, overdue, or have unread changes.
- </li>
- <li>
- <b>Link with Editor</b> - Automatically selects the task corresponding to the active task editor.
- </li>
- <li>
- <b>Preferences</b> - Access additional Task List preferences.
- </li>
- </ul>
- <p>
- <br/>
- Right-clicking in the task list provides access to the following operations
- </p>
- <ul>
- <li>
- <b>New...</b> - Create new categories, queries, and tasks.
- </li>
- <li>
- <b>Open with Browser</b> - Open the task in a web browser tab rather than the rich editor.
- </li>
- <li>
- <b>Schedule for</b> - Set the soft date when you intend to work on the task.
- </li>
- <li>
- <b>Mark as</b> - Mark a task as read or unread as you would an email message.
- </li>
- <li>
- <b>Copy Details</b> - Places the task summary and html link in the clipboard so you can paste it into an email, document, etc.
- </li>
- <li>
- <b>Delete</b> - Deletes local tasks. For repository tasks, the all downloaded data and local task information will be cleared but the task will re-appear if it still matches a query.
- </li>
- <li>
- <b>Rename</b> - Rename a task.
- </li>
- <li>
- <b>Go into</b> (queries only) - Show only the tasks in the selected category.
- </li>
- <li>
- <b>Import and Export</b> - Access functionality for importing and exporting task data.
- </li>
- <li>
- <b>Repository</b> (queries only) - Update repository settings
- </li>
- <li>
- <b>Synchronize</b> - Update the selected tasks or queries from the shared task repository
- </li>
- <li>
- <b>Properties</b> - Edit the settings for a repository query
- </li>
- </ul><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Task-Repositories.html" title="Task Repositories">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task Repositories</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Preferences.html b/org.eclipse.mylyn.help.ui/userguide/Preferences.html
deleted file mode 100644
index f71953d51..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Preferences.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Preferences</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Preferences</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Shortcuts.html" title="Shortcuts">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Task-Repository-Connectors.html" title="Task Repository Connectors">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Shortcuts</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task Repository Connectors</td>
- </tr>
- </table><hr/>
- <h1 id="Preferences">Preferences</h1>
- <p>You can access the following Mylyn preference pages by navigating to Window -> Preferences -> Tasks.</p>
- <h2 id="Tasks">Tasks</h2>
- <ul>
- <li>
- <b>Synchronization</b> - Set how often queries in your task list should update from your task repository. The default is 20 minutes.
- </li>
- <li>
- <b>Scheduling</b> - Set the day when your week begins. This is used to determine whether tasks should appear as scheduled for this week.
- </li>
- <li>
- <b>Task Editing</b> - Select whether tasks should be opened in the rich editor or an integrated browser window displaying the web interface for the task.
- </li>
- </ul>
- <p>
- <br/>
- Click "Advanced" to reveal the following additional settings.
- </p>
- <ul>
- <li>
- <b>Task Timing</b> - When a task is active, the time spent working on the task is recorded. If you check "Enable inactivity timeouts", time will not be accumulated while you are not actively working. You can set the number of minutes after which time will stop being accumulated toward the active task.
- </li>
- <li>
- <b>Task Data</b> - Specify the location where your task list and task context data is stored.
- </li>
- </ul>
- <h2 id="Context_2">Context</h2>
- <p>Use the following checkboxes to set your preferences for the task-focused interface.</p>
- <ul>
- <li>
- <b>Auto focus navigator view on task activation</b> - Automatically toggle "Focus on Active Task" on when activating a task in navigation views such as the Package Explorer.
- </li>
- <li>
- <b>Auto expand tree views when focused</b> - When toggling "Focus on Active Task", automatically expand trees so that all interesting elements are visible.
- </li>
- <li>
- <b>Manage open editors to match task context</b> - When checked, activating a task will automatically open editors corresponding to the most interesting files in the task context. When deactivating a task, all editors will automatically close. While a task is active, files that become less interesting will automatically close as you work.
- </li>
- <li>
- <b>Remove file from context when editor is closed</b> - When this option is checked, closing an editor will be considered an indication that you not interested in the corresponding file. Therefore, files you close will be removed from the task context. If you tend to close editors for files that you may want to return to, try unchecking this setting.
- </li>
- <li>
- <b>Open last used perspective on task activation</b> - When this option is checked, activating a task will automatically switch to the perspective that was in use when the task was last active.
- </li>
- </ul>
- <h2 id="Resources">Resources</h2>
- <p>Use this preference page to add or remove resources that should not be included in the context of a task. Typically, excluded files are hidden backup or lock files that are not intented to be opened directly by the user of an application.</p>
- <h2 id="Team">Team</h2>
- <ul>
- <li>
- <b>Automatically create and manage with task context</b> - Enables automatic change set management. Change sets will be created automatically so that you can commit or update only resources that are in a task's context.
- </li>
- <li>
- <b>Commit Message Template</b> - Set the values that will appear in commit messages that are automatically generated when committing resources associated with a task.
- </li>
- </ul>
- <h2 id="Shortcuts_2">Shortcuts</h2>
- <p> <b>&nbsp;Task List view</b>
- <ul>
- <li><code>Ctrl+C</code>: copy taks/query URL and description</li>
- <li><code>Ctrl+F</code>: find</li>
- <li><code>Insert</code>: new personal task</li>
- <li><code>F5</code>: synchronize selected</li>
- <li>When dragging URLs to the Task List: in Mozilla/Firefox just drag, in Internet Explorer <code>Ctrl+drag</code></li>
- </ul>
- <b>&nbsp;General</b>
- <ul>
- <li><code>Alt+click</code> or <code>Alt+RightArrow</code>: show all children of an element in a focused view, then click to select. Hold down alt to keep drilling in, click on whitespace in view to show all root elements.</li>
- <li><code>Ctrl+Shift+Alt+RightArrow</code> Quick Context View</li>
- <li><code>Ctrl+F9</code>: activate task dialog</li>
- <li><code>Ctrl+Shift+F9</code>: deactivate task</li>
- <li><code>Ctrl+F12</code>: open task dialog</li>
- <li><code>Ctrl+Shift+F12</code>: open repository task dialog</li>
- </ul>
- <b>&nbsp;Interest manipulation</b>
- <ul>
- <li><code>Ctrl+Shift+Up</code>: mark as landmark</li>
- <li><code>Ctrl+Shift+Down</code>: mark less interesting</li>
- </ul>
- <b>&nbsp;Useful Eclipse shortcuts</b>
- <ul>
- <li><code>Alt+Shift+Q, K</code>: show
- <i>Task List</i> view</li>
- <li><code>Ctrl+F10</code>: invoke view menu or ruler menu in editor</li>
- </ul>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Shortcuts.html" title="Shortcuts">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Task-Repository-Connectors.html" title="Task Repository Connectors">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Shortcuts</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task Repository Connectors</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Shortcuts.html b/org.eclipse.mylyn.help.ui/userguide/Shortcuts.html
deleted file mode 100644
index ef3a6abc7..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Shortcuts.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Shortcuts</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Shortcuts</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Team-Support.html" title="Team Support">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Preferences.html" title="Preferences">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Team Support</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Preferences</td>
- </tr>
- </table><hr/>
- <h1 id="Shortcuts">Shortcuts</h1>
- <p><b>&nbsp;Task List view</b>
-<ul>
-<li> F2: rename</li>
-<li> F4: show tooltip</li>
-<li> F5: synchronize</li>
-<li> Alt + Down: go to next unread</li>
-<li> Alt + Up: go to previous unread</li>
-<li> Alt + Shift + R: mark as read</li>
-<li> Alt + Shift + U: mark as unread</li>
-<li> Esc: hide tooltip</li>
-<li> Enter: open task</li>
-<li> Insert: new local task</li>
-<li> Ctrl+C: Copy details</li>
-<li> Ctrl+F: Find</li>
-<li> When dragging URLs to the Task List: in Mozilla/Firefox just drag, in Internet Explorer <code>Ctrl+drag</code></li>
-</ul>
- <b>&nbsp;General</b>
- <ul>
- <li><code>Alt+click</code> or <code>Alt+RightArrow</code>: show all children of an element in a focused view, then click to select. Hold down alt to keep drilling in, click on whitespace in view to show all root elements.</li>
- <li><code>Ctrl+Shift+Alt+RightArrow</code> Quick Context View</li>
- <li><code>Ctrl+F9</code>: activate task dialog</li>
- <li><code>Ctrl+Shift+F9</code>: deactivate task</li>
- <li><code>Ctrl+F12</code>: open task dialog</li>
- <li><code>Ctrl+Shift+F12</code>: open repository task dialog</li>
- </ul>
- <b>&nbsp;Interest manipulation</b>
- <ul>
- <li><code>Ctrl+Shift+Up</code>: mark as landmark</li>
- <li><code>Ctrl+Shift+Down</code>: mark less interesting</li>
- </ul>
- <b>&nbsp;Useful Eclipse shortcuts</b>
- <ul>
- <li><code>Alt+Shift+Q, K</code>: show
- <i>Task List</i> view</li>
- <li><code>Ctrl+F10</code>: invoke view menu or ruler menu in editor</li>
- </ul>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Team-Support.html" title="Team Support">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Preferences.html" title="Preferences">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Team Support</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Preferences</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Task-Editor.html b/org.eclipse.mylyn.help.ui/userguide/Task-Editor.html
deleted file mode 100644
index 294c56537..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Task-Editor.html
+++ /dev/null
@@ -1,217 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Task Editor</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Task Editor</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Repositories.html" title="Task Repositories">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Task-Focused-Interface.html" title="Task-Focused Interface">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task Repositories</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task-Focused Interface</td>
- </tr>
- </table><hr/>
- <h1 id="Task_Editor">Task Editor</h1>
- <p>The task editor allows you to view and edit the tasks in your task list. Double-click on a task in your task list to open the editor. The features of the task editor will vary depending on whether it is a local task or a shared repository task. For shared repository tasks, there are some differences depending on the type of repository (and corresponding connector) that you are using (link: connectors). </p>
- <h2 id="Repository_Task_Details">Repository Task Details</h2>
- <p>In this section, we describe the task editor for shared bugs in a Bugzilla repository. Task editors for other repository types such as JIRA offer similar functionality.</p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Task-Editor-Top.png"/>
- </p>
- <p>
- <b>Editor toolbar buttons</b>
- </p>
- <ul>
- <li>
- <b>Synchronize Incoming Changes</b> - Updates the local copy of the task to reflect any changes on the server.
- </li>
- <li>
- <b>Create a new subtask</b> - Creates a new task that will be considered a prerequisite to completing the current task. Subtasks appear nested under their parent task in the task list. In Bugzilla terminology, the subtask "Blocks" the parent task and the subtask's ID will appear in the "Blocks:" field of the parent task.
- </li>
- <li>
- <b>History</b> - Displays the task's change history in an internal browser using the web interface.
- </li>
- <li>
- <b>Open with Web Browser</b> - Displays the web interface for the task in an internal web browser.
- </li>
- <li>
- <b>Activate</b> - Toggles the activation and deactivation of the task.
- </li>
- </ul>
- <p>
- <b>Attributes</b>
- Use the Attributes section to add or update structured information about the task.
- </p>
- <p>
- <b>Team Planning</b>
- The Team Planning section contains time-related information about the task that will be shared with your team. You can use the
- <b>Due</b> field to set a due date for your task. On the due date, the task will appear in red in your task list.
- </p>
- <p>
- <b>Attachments</b>
- You can attach a file to this task so that a copy will be uploaded to your task repository and become available to anyone who can access the task.
- </p>
- <p>To attach a file</p>
- <ul>
- <li>click the "Attach..." button, which will open a wizard.</li>
- <li>Select from one of the following:
- <ul>
- <li>
- <b>File</b> - Uploads a file from your system. Click "Browse" on the right to select the file.
- </li>
- <li>
- <b>Clipboard</b> -
- </li>
- <li>
- <b>Workspace</b> - Uploads a file from your workspace. Select the file from the box below.
- </li>
- </ul>
- </li>
- <li>Click next to enter attachment details:
- <ul>
- <li>
- <b>Description</b> - Provide a brief description of the file. This description will appear in the attachment list in the task editor.
- </li>
- <li>
- <b>Comment</b> - Provide a comment about the file. This comment will appear in the comments section of the task editor.
- </li>
- <li>
- <b>Content Type</b> - Optionally specify a content type for the file
- </li>
- <li>
- <b>Patch</b> - Check this if the attachment is a source code patch file
- </li>
- <li>
- <b>Attach Context</b> - Check this if you would also like to attach the context of your task. This context describes the resources that are most relevant to the task. If you attach a context, others can download it and focus the UI on the same resources that are relevant to you.
- </li>
- <li>Click "Next" to preview your file. If your file is an image, a preview of the file will appear.</li>
- <li>Click "Finish" to upload the file to the task repository. Files are uploaded without the need to click "submit" at the bottom of the task editor.</li>
- </ul>
- </li>
- </ul>
- <p>
- <b>Duplicate Detection</b>
- When submitting bug reports, you can avoid duplicates by clicking the "Search" button. This will search the repository for a stack trace that matches a stack trace in the task's Description field. The results of the duplicate detection show up in the Search view. If a match is found, you can open it and comment instead of creating a new bug report.
- </p>
- <p>
- <b>Comments</b>
- Use this section to add new comments about the task and view all previous comments. Comments you have read previously are folded. You can expand and re-read individual comments or click the "+" at the top right to expand all comments.
- </p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Task-Editor-Bottom.png"/>
- </p>
- <p>
- <b>Actions</b>
- Use this section to change the task's status or reassign the task to another person.
- </p>
- <ul>
- <li>
- <b>Attach Context</b> - Uploads information about the resources that you have interacted with to the server. The context will appear in the attachments list so that others can download it and focus their UI on the resources that you found relevant for this task.
- </li>
- <li>
- <b>Submit</b> - Submits all local changes to the task to your team's shared task repository.
- </li>
- </ul>
- <p>
- <b>People</b>
- This section shows the people who are collaborating on the task.
- </p>
- <ul>
- <li>
- <b>Assigned to</b> - This is the person who is responsible for completing the task
- </li>
- <li>
- <b>Reporter</b> - This person created the task
- </li>
- <li>
- <b>QA Contact</b> -
- </li>
- <li>
- <b>Add CC</b> - Use this box to add new people to the "CC" list. People on the "CC" list will be notified of any changes to this task. To add a new person, type the start of their email address and then press ctrl+space to complete the address using content assist. You can add several addresses, separated with a comma.
- </li>
- <li>
- <b>CC</b> - This box shows the people who are currently on the "CC" list. To remove a person, simply select their email address so that it is highlighted and click "Submit". You can hold down ctrl to select multiple people.
- </li>
- </ul>
- <h2 id="Context">Context</h2>
- <p>The context tab allows you to manage the context of resources associated with the task. You can view the context tab by selecting it in the lower left of the editor window.</p>
- <p>
- <b>Elements</b>
- <br/>
- This section lists the resources that are part of the task's context. Because the number of elements may be large, you can adjust the level of detail using the slider at the top of the
- <i>Actions</i> section. Sliding the control all the way to the left will show you all elements in your task context. As you slide to the right, only the elements with a high level of interest will be displayed. You can manually remove elements from your task context by right-clicking and selecting "Remove From Context". You may choose to view all elements and prune irrelevant items in this way before attaching the context to the task so that others can download it.
- </p>
- <p>
- <b>Actions</b>
- <br/>
- </p>
- <ul>
- <li>
- <b>Element Detail Slider</b> - Adjusts the minimum level of interest required for an element to be displayed in the
- <i>Elements</i> section.
- </li>
- <li>
- <b>Attach Context</b> - Attaches the context to the task so that it is available for download from the shared task repository. The context consists of the elements shown on the right.
- </li>
- <li>
- <b>Retrieve Context</b> - Replaces the current task context with one that is attached to the task in the shared task repository.
- </li>
- <li>
- <b>Copy Context to...</b> - Copy the task context to another task. That task will then have the same context as the current task.
- </li>
- <li>
- <b>Clear Context.</b> - Removes all context information from the task.
- </li>
- </ul>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Context-Tab.png"/>
- </p>
- <h2 id="Planning">Planning</h2>
- <p>Use the planning tab to access local information about the task that is private to your workspace. You can view the planning tab by selecting it in the lower left of the editor window. This tab contains a large area where you can enter personal notes about the task. See the local task section for more information about fields in the Personal Planning section.</p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Planning-Tab.png"/>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Repositories.html" title="Task Repositories">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Task-Focused-Interface.html" title="Task-Focused Interface">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task Repositories</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task-Focused Interface</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Task-Focused-Interface.html b/org.eclipse.mylyn.help.ui/userguide/Task-Focused-Interface.html
deleted file mode 100644
index 5dc7e9ebe..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Task-Focused-Interface.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Task-Focused Interface</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Task-Focused Interface</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Editor.html" title="Task Editor">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Team-Support.html" title="Team Support">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task Editor</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Team Support</td>
- </tr>
- </table><hr/>
- <h1 id="Task-Focused_Interface">Task-Focused Interface</h1>
- <p>The task-focused interface is oriented around tasks and offers several ways to focus the interface on only what is relevant for the currently active task.</p>
- <h2 id="Focusing_Navigator_Views">Focusing Navigator Views</h2>
- <p>You can focus navigator views (e.g. Package Explorer, Project Explorer, Navigator) by toggling the "Focus on Active Task" button in the toolbar. When focused, the view will show only the resources that are "interesting" for the currently active task.</p>
- <p>
- <img border="0" src="images/Feature-Guide-3.0-Package-Explorer-Focused.png"/>
- </p>
- <h2 id="Alt.2BClick_Navigation">Alt+Click Navigation</h2>
- <p>To navigate to a new resource that is not a part of the active task's context, you can toggle "Focus on Active Task" off, browse to the resource, and then click "Focus on Active Task" again to see only relevant resources. A more efficient way to add new resources is to use Alt+Click navigation (Clicking the mouse while holding the Alt key).</p>
- <p>When a view is in Focused mode, you can Alt+Click a node to temporarily show all of its children. </p>
- <ul>
- <li>Once an element that was previously not interesting is selected with the mouse, it becomes interesting the other child elements will disappear. The clicked element is now a part of the task's context.</li>
- <li>Alt can be held down while clicking to drill down from a top-level element to a deeply nested element that is to be added to the task context.</li>
- <li>Multiple Alt+Clicks are supported so that you can add several elements to the task context. As soon as a normal click is made, uninteresting elements will disappear.</li>
- <li>Ctrl+Clicks (i.e. disjoint selections, use Command key on Mac) are also supported and will cause each element clicked to become interesting. The first normal click will cause uninteresting elements to disappear. Note that Ctrl+clicked elements will become interesting (turn from gray to black) but only the most recently-clicked one will be selected while Alt is held down.</li>
- </ul>
- <h2 id="Focusing_Editors">Focusing Editors</h2>
- <p>Some editors such as the Java editor support focusing. Clicking the Focus button in the toolbar will fold all declarations that are not part of the active task context.</p>
- <p>
- <img border="0" src="images/Feature-Guide-3.0-Focused-Editor.png"/>
- </p>
- <h2 id="Task-focused_Ordering">Task-focused Ordering</h2>
- <p>When a task is active, elements that are interesting are displayed more prominently. For example, when you open the Java Open Type dialog (Ctrl+Shift+T), types that are interesting for the active task are shown first. Similarly, when you use ctrl+space to autocomplete a method name in a Java source file, methods that are in the task context are displayed at the top.</p>
- <h2 id="Working_Set_Integration">Working Set Integration</h2>
- <p>When Focus is applied to a navigator view, the working sets filter for that navigator view will be disabled. This ensures that you see all interesting elements when working on a task that spans working sets. To enforce visibility of only elements within one working set, do the following:</p>
- <ul>
- <li>Set the view to show working sets as top-level elements.</li>
- <li>Use the
- <i>Go Into</i> action on the popup menu of the working set node in the view to scope the view down to just the working set.
- </li>
- </ul>
- <h2 id="Open_Task_dialog">Open Task dialog</h2>
- <p>An
- <i>Open Type</i> style dialog is available for opening tasks (<code>Ctrl+F12</code>) and for activating tasks (<code>Ctrl+F9</code>). The list is initially populated by recently active tasks. The active task can also be deactivated via <code>Ctrl+Shift+F9</code>. This can be used as a keyboard-only alternative for multi-tasking without the
- <i>Task List</i> view visible. These actions appear in the
- <i>Navigate</i> menu.
- </p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Open-Task.png"/>
- </p>
- <h2 id="Task_Hyperlinking">Task Hyperlinking</h2>
- <p>In the task editor, comments that include text of the form bug#123 or task#123 or bug 123 will be hyperlinked. Ctrl+clicking on this text will open the task or bug in the rich task editor.</p>
- <p>To support hyperlinks within other text editors such as code or .txt files, the project that contains the file must be associated with a particular task repository. This is configured by right-clicking on the project and navigating to "Properties" > "Task Repository" and selecting the task repository used when working with this project.</p>
- <h2 id="Reporting_Bugs_from_the_Error_Log">Reporting Bugs from the Error Log</h2>
- <p>Bugs can created directly from events in the
- <i>Error Log</i> view. This will create a new repository task editor with the summary and description populated with the error event's details. If the Connector you are using does not have a rich editor, the event details will be placed into the clipboard so that you can paste them into the web-based editor that will be opened automatically.
- </p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Error-Log.png"/>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Editor.html" title="Task Editor">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Team-Support.html" title="Team Support">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task Editor</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Team Support</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Task-Repositories.html b/org.eclipse.mylyn.help.ui/userguide/Task-Repositories.html
deleted file mode 100644
index 71cb2a98e..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Task-Repositories.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Task Repositories</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Task Repositories</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Mylyn Reference.html" title="Task List">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Task-Editor.html" title="Task Editor">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task List</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task Editor</td>
- </tr>
- </table><hr/>
- <h1 id="Task_Repositories">Task Repositories</h1>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Add-Task-Repository.png"/>
- </p>
- <p>Use the Task Repositories view to configure Mylyn to connect to your team's shared task repository (bug or issue tracker):</p>
- <ul>
- <li>Open the task repositories view by navigating to
- <i>Window -> Show View -> Other -> Mylyn -> Task Repositories</i>
- </li>
- <li>Click the "Add Task Repository" button located in the view's toolbar.</li>
- <li>Select the type of repository you wish to connect to and click "Next". If you don't see your repository type, you will need to install the appropriate connector.</li>
- <li>Enter the repository's address and your login credentials. After filling in these details, press the
- <i>Validate</i> button to ensure the repository exists and your login credentials are valid. Once the settings validate, Click Finish. Note that the settings will vary somewhat depending on the type of repository that you are connecting to. The screenshot shows the settings fore connecting to a Bugzilla repository.
- </li>
- <li>You should now see the new repository in the
- <i>Task Repositories</i> view.
- </li>
- <li>Now that you have created a repository, you may add queries to the Task List.</li>
- </ul><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Mylyn Reference.html" title="Task List">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Task-Editor.html" title="Task Editor">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task List</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Task Editor</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Task-Repository-Connectors.html b/org.eclipse.mylyn.help.ui/userguide/Task-Repository-Connectors.html
deleted file mode 100644
index 032fd3ce7..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Task-Repository-Connectors.html
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Task Repository Connectors</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Task Repository Connectors</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Preferences.html" title="Preferences">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Updating-This-Document.html" title="Updating This Document">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Preferences</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Updating This Document</td>
- </tr>
- </table><hr/>
- <h1 id="Task_Repository_Connectors">Task Repository Connectors</h1>
- <p>Mylyn allows you to collaborate on tasks via a shared task repository, also known as bug tracking systems. In order to collaborate, you need to have a
- <b>Connector</b> to your particular repository.
- </p>
- <p>See
- <a href="http://wiki.eclipse.org/Mylyn/Extensions" title="Mylyn/Extensions" target="mylyn_external">Mylyn Extensions</a> for a list of available connectors.
- </p>
- <h2 id="Bugzilla_Connector">Bugzilla Connector</h2>
- <p>See
- <a href="http://wiki.eclipse.org/Mylyn/FAQ#Bugzilla_Connector" title="Mylyn/FAQ#Bugzilla_Connector" target="mylyn_external">Bugzilla Connector Troubleshooting</a>.
- </p>
- <h2 id="Trac_Connector">Trac Connector</h2>
- <p>See
- <a href="http://wiki.eclipse.org/Mylyn/Mylyn_FAQ#Trac_Connector_troubleshooting" title="Mylyn_FAQ#Trac_Connector_troubleshooting" target="mylyn_external">Trac Connector Troubleshooting</a>.
- </p>
- <h2 id="JIRA_Connector">JIRA Connector</h2>
- <p>See
- <a href="http://confluence.atlassian.com/display/JIRAEXT/Mylyn" target="mylyn_external">this page</a> for install instructions and additional screen shots. Note that the Mylyn JIRA connector requires at least JIRA version 3.3.3 and SOAP/RPC services have to be enabled on the server.
- </p>
- <p>See also
- <a href="http://wiki.eclipse.org/Mylyn/Mylyn_FAQ#JIRA_Connector_troubleshooting" title="Mylyn_FAQ#JIRA_Connector_troubleshooting" target="mylyn_external">JIRA Connector Troubleshooting</a>.
- </p>
- <h2 id="Generic_Web_Templates_Connector">Generic Web Templates Connector</h2>
- <p>The generic web repository connector is NOT part of the default Mylyn install. You can install it from the incubator update site. See
- <a href="http://www.eclipse.org/mylyn/downloads/" target="mylyn_external">Mylyn download page</a> for more details.
- </p>
- <p>The web connector allow to retrieve tasks from repositories that don't have rich connectors, but can show list of tasks on the web UI. Out of the box connector provides configuration templates for the following issue tracking systems:</p>
- <ul>
- <li>Google Code Hosting (<code>code.google.com</code>)</li>
- <li>IssueZilla (<code>java.net, dev2dev, tigris.org</code>)</li>
- <li>GForge (<code>objectweb.org</code>)</li>
- <li>SourceForge (<code>sf.net</code>), see
- <a href="http://wiki.eclipse.org/Mylyn/Using_Sourceforge_with_Mylyn" title="Using Sourceforge with Mylyn" target="mylyn_external">Using Sourceforge with Mylyn</a>
- </li>
- <li>Mantis (<code>www.futureware.biz/mantis</code>)</li>
- <li>ChangeLogic (<code>changelogic.araneaframework.org</code>)</li>
- <li>OTRS (<code>otrs.org</code>)</li>
- <li>phpBB</li>
- <li>vBulletin</li>
- </ul>
- <p>Lists of issues can be extracted from existing web pages using simple parsing configuration. Configuration can be also parametrized to make it easier to customize it for a specific project.</p>
- <p>The parameters used for configuring project properties are typically substituted into the URLs used to access the repository. Substitution and matching rules can be edited under the
- <i>Advanced Configuration</i> section on both the
- <i>Repository Settings</i> page and the
- <i>Edit Query</i> page.
- </p>
- <p>See
- <a href="http://wiki.eclipse.org/Mylyn/FAQ#Generic_Web_Repository_Connector" title="Mylyn/FAQ#Generic_Web_Repository_Connector" target="mylyn_external">FAQ</a> for the troubleshooting tips.
- </p>
- <p>
- <b>For example</b>, consider the configuration steps for GlassFish project at <code>java.net</code>:
- </p>
- <p>
- <b>1.</b> Create new Generic web-based repository (in the Task Repository view). GlassFish is using IssueZilla and has a preconfigured template that can be selected by server url
- <i>
- <a href="https://glassfish.dev.java.net/issues" target="mylyn_external">https://glassfish.dev.java.net/issues</a>
- </i>. You can also specify all fields manually in the
- <i>Advanced Configuration</i> section. For GlassFish the following settings are required:
- </p>
- <ul>
- <li>Task URL: <code>${serverUrl}/show_bug.cgi?id=</code></li>
- <li>New Task URL: <code>${serverUrl}/enter_bug.cgi?issue_type=DEFECT</code></li>
- <li>Query URL: <code>${serverUrl}/buglist.cgi?component=glassfish&amp;issue_status=NEW&amp;issue_status=STARTED&amp;issue_status=REOPENED&amp;order=Issue+Number</code></li>
- <li>Query Pattern: <code>&lt;a href="show_bug.cgi\?id\=(.+?)">.+?&lt;span class="summary">(.+?)&lt;/span></code></li>
- </ul>
- <dl>
- <dd>
- <b>Note:</b>
- <i>Query Pattern</i> field should be a <code>regexp</code> with 1st matching group on
- <i>Issue ID</i> and 2nd on
- <i>Issue Description</i>. Alternatively, you could use named matching groups: ({Id}.+?), ({Description}.+?), ({Status}.+?), ({Owner}.+?) and ({Type}.+?), then they can appear in query <code>regexp</code> in an arbitrary order. The second option requires build 2.0.0v20070717 or later.
- </dd>
- </dl>
- <dl>
- <dd>
- <b>Note:</b> the above fields are using parameter substitution <code>${..}</code>. Variables <code>serverUrl, userId</code> and <code>password</code> are substituted from the values of corresponding fields of the repository preference page. In addition you can specify any arbitrary parameters and their values that will be also substituted into the template fields.
- </dd>
- </dl>
- <dl>
- <dd>
- <b>Note:</b> the SourceForge template included with connector assume that
- <i>single repository is used for all projects</i>. User should create multiple queries, and set project parameters at the query level. Because web connector don't support actions like "open repository task" there is really no need to create separate repositories per project and if you think about it that is how it work for connectors for Bugzilla and JIRA. However, it is still possible to setup separate repository per project using repository url like http://sourceforge.net/tracker/?group_id=172199 and accordingly updating derived urls is the advanced repository settings.
- </dd>
- </dl>
- <p><!-- TODO need login setup for above GlassFish example -->
-
- <b>For the web repository that require user to login, use advanced configuration in following way.</b>
-<i> This configuration is for GForge, you might need to change it for other repositories</i>:
- </p>
- <ul>
- <li>Login Request URL - an address that form is using to submit login request: <code>${serverUrl}/account/login.php?return_to=&amp;form_loginname=${userId}&amp;form_pw=${password}&amp;login=Login
- <b>(POST)</b></code>
- </li>
- <li>Login Form URL - an address where login form is located
- <i>(only needed if server need a login token in the parameters of the Login Request URL)</i>: <code>${serverUrl}/account/login.php</code>
- </li>
- <li>Login Token Pattern - pattern to extract value of the <code>loginToken</code> parameter from the form page
- <i>(only needed if server need a login token in the parameters of the Login Request URL and Login Form URL is specified)</i>: <code>session_ser=(.+?)</code>
- </li>
- </ul>
- <p>
- <b>2.</b> Create a new query for the GlassFish task repository created above (either from popup context menu in the Task List view or using a "New..." wizard from File -> New... -> Other... menu).
- </p>
- <ul>
- <li>
- <i>Query URL</i> and
- <i>Query Pattern</i> in the
- <i>Repository Preferences</i> are used as default query parameters and can be overwritten in
- <i>Advanced Configuration</i> section in
- <i>Query Preferences</i>. Custom parameter values can also be overridden here as well as new parameters for substitution into the specific query.
- </li>
- </ul>
- <ul>
- <li>In the
- <i>Advanced Configuration</i> section of the "New Query" dialog, there is a "Preview" button. You can use it to test your query pattern.
- </li>
- </ul>
- <p>
- <img border="0" src="images/Generic-web-repository-settings.gif"/>
- </p>
- <h2 id="XPlanner_Connector">XPlanner Connector</h2>
- <p>The XPlanner connector is currently in the Experimental state. It supports XPlanner version .7.</p>
- <p>
- <b>Query</b>
- </p>
- <p>XPlanner Connector supports creating queries from your XPlanner repository. You can select to create a query for your own in progress tasks (the default), or select projects or iterations or user stories from a list. You can also select ones assigned to you, or all. Currently you can choose to group the results by tasks or user stories. If you group the results by tasks, this will result in a single query with the applicable tasks underneath it. If you choose to group the results by user stories, this will result in multiple queries added to the task list, each one corresponding to a user story, with the applicable tasks underneath it:</p>
- <p>
- <img border="0" src="images/XPlannerQuery.jpg"/>
- </p>
- <p>
- <b>Task Editor</b>
- </p>
- <p>A rich editor for editing XPlanner tasks is available. It currently doesn't support all of the attributes you can change in XPlanner itself, but allows you to modify the basic ones necessary for XP development -- e.g. summary, description, estimated time. The attributes section of the editor displays an XPlanner-like view of the meaningful attributes, some of which are not editable.</p>
- <p>
- <img border="0" src="images/XPlannerTaskEditor.gif"/>
- </p>
- <p>
- <b>User Story Editor</b>
- </p>
- <p>If you open an XPlanner element by id, using the "Open Repository Task by Key/ID" dialog, and that id is a user story id, you will see the read-only user story editor. This editor is just useful for seeing the major details of a user story -- no items in it can be changed, since there is no really good mapping between a user story and a Mylyn task.</p>
- <p>
- <img border="0" src="images/XPlannerUserStoryEditor.gif"/>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Preferences.html" title="Preferences">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Updating-This-Document.html" title="Updating This Document">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Preferences</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Updating This Document</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Team-Support.html b/org.eclipse.mylyn.help.ui/userguide/Team-Support.html
deleted file mode 100644
index 60e34832c..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Team-Support.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Team Support</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Team Support</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Focused-Interface.html" title="Task-Focused Interface">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Shortcuts.html" title="Shortcuts">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task-Focused Interface</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Shortcuts</td>
- </tr>
- </table><hr/>
- <h1 id="Team_Support">Team Support</h1>
- <p>The task-focused interface provides several ways to improve your work flow when working with a source code repository such as CVS or Subversion. CVS support is available out-of-the-box and task-focused interface integration for Subversion is available via the Subclipse or Subversive plugins.</p>
- <h2 id="Task-focused_Change_Sets">Task-focused Change Sets</h2>
- <p>When working with a source code repository, you can commit or update only the resources that are in the context of a particular task. This helps you work on several tasks concurrently and avoid polluting your workspace with changes that are not relevant to the current task.</p>
- <p>To enable this functionality, locate the "Synchronize" view. If the view is not visible, you can open it by navigating to Window -> Show View -> Other... -> Team -> Synchronize. Next, click the small black arrow next to "Show File System Resources" in the Synchronize view toolbar and select "Change Sets".</p>
- <p>You can now synchronize resources in your workspace as usual (e.g. by right-clicking on a resource in the navigator and selecting "Team" -> "Synchronize with Repository". Your resources will now be grouped by change sets corresponding to tasks. Expanding the task shows individual resources. Changed resources that are not a part of any task context will appear under the root of the Synchronize view. If needed missing resources can be added to the task context Change Set via the Synchronize View by right+clicking the resource and selecting "Add to" and then selecting the corresponding task. Select "no set" to remove a resource from a change set.</p>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Change-Sets.png"/>
- </p>
- <p>You can use buttons in the toolbar of the Synchronize view to change modes as follows:</p>
- <ul>
- <li>
- <b>Incoming Mode</b> - See only updates to be retrieved from the server
- </li>
- <li>
- <b>Outgoing Mode</b> - See only your local changes to be committed to the server
- </li>
- <li>
- <b>Incoming/Outgoing Mode</b> - See both incoming and outgoing changes
- </li>
- </ul>
- <p>Right-clicking a Change Set provides access to the following operations:</p>
- <ul>
- <li>
- <b>Add to Task Context</b> - Adds all changed files to the active task context, see
- <a href="Team-Support.html#Working_with_Patches">Working with Patches</a> for more information
- </li>
- <li>
- <b>Open Corresponding Task</b> - Opens the task associated with the Change Set in the Task Editor
- </li>
- </ul>
- <h2 id="Automatic_Commit_Messages">Automatic Commit Messages</h2>
- <p>When using task-focused change sets as described above, commit messages are automatically be generated based on the task whose resources are being commited. By default, the commit message includes information such as the task ID, description, and URL. To change the template for these commit messages, navigate to Window -> Preferences -> Tasks -> Team.</p>
- <h2 id="Working_with_Patches">Working with Patches</h2>
- <p>When applying patches, the preferred scenario is to have a task context attached to the task along with the patch. Since this is not always feasible, Mylyn provides an action in the popup menu of the
- <i>Synchronize</i> view that supports adding changed elements to the task context.
- </p>
- <ol>
- <li>Activate the task containing the patch.</li>
- <li>Apply the patch. If you are using automatic change sets, this will cause the change set created by Mylyn to contain the outoing changes. If it doesn't you can use the
- <i>Add to</i> action on the popup menu to add the elements to the corresponding change set.
- </li>
- <li>Invoke the
- <i>Add to Task Context</i> action on the change set node, causing all of the changed files to be added to the task context. You can also invoke this action on a selection one or more elements (e.g. files) in the view.
- </li>
- </ol>
- <p>
- <img border="0" src="images/Feature-Reference-3.0-Add-To-Context.png"/>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Focused-Interface.html" title="Task-Focused Interface">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right">
- <a href="Shortcuts.html" title="Shortcuts">
- <img alt="Next" border="0" src="images/images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task-Focused Interface</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Shortcuts</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/Updating-This-Document.html b/org.eclipse.mylyn.help.ui/userguide/Updating-This-Document.html
deleted file mode 100644
index bfc1a3931..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/Updating-This-Document.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>Mylyn Reference - Updating This Document</title>
- <link type="text/css" rel="stylesheet" href="book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">Updating This Document</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Repository-Connectors.html" title="Task Repository Connectors">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right"></td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task Repository Connectors</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top"></td>
- </tr>
- </table><hr/>
- <h1 id="Updating_This_Document">Updating This Document</h1>
- <p>This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
-
- <a href="http://wiki.eclipse.org/Mylyn/User_Guide" target="mylyn_external">http://wiki.eclipse.org/Mylyn/User_Guide</a>
- </p><hr/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left">
- <a href="Task-Repository-Connectors.html" title="Task Repository Connectors">
- <img alt="Previous" border="0" src="images/images/prev.gif"/>
- </a>
- </td>
- <td style="width: 60%" align="center">
- <a href="Mylyn Reference.html" title="Mylyn Reference">
- <img alt="Mylyn Reference" border="0" src="images/images/home.gif"/>
- </a>
- </td>
- <td style="width: 20%" align="right"></td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top">Task Repository Connectors</td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top"></td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.help.ui/userguide/book.css b/org.eclipse.mylyn.help.ui/userguide/book.css
deleted file mode 100644
index faa4199fe..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/book.css
+++ /dev/null
@@ -1 +0,0 @@
-@import "../../PRODUCT_PLUGIN/book.css";
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Focused-Editor.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Focused-Editor.png
deleted file mode 100644
index 8bff3c9a5..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Focused-Editor.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Local-Task.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Local-Task.png
deleted file mode 100644
index 07d702a18..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Local-Task.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Package-Explorer-Focused.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Package-Explorer-Focused.png
deleted file mode 100644
index a33cc75d3..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Guide-3.0-Package-Explorer-Focused.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-Task-Repository.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-Task-Repository.png
deleted file mode 100644
index 3c0075797..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-Task-Repository.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-To-Context.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-To-Context.png
deleted file mode 100644
index e0e920aff..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Add-To-Context.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Category-Progress.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Category-Progress.png
deleted file mode 100644
index 111cb8aa9..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Category-Progress.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Change-Sets.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Change-Sets.png
deleted file mode 100644
index def07dff4..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Change-Sets.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Context-Tab.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Context-Tab.png
deleted file mode 100644
index e59221960..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Context-Tab.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Error-Log.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Error-Log.png
deleted file mode 100644
index 8dbf3704f..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Error-Log.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Query-Combined.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Query-Combined.png
deleted file mode 100644
index 77015c7f0..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Query-Combined.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Task.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Task.png
deleted file mode 100644
index d76413da9..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-New-Task.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Open-Task.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Open-Task.png
deleted file mode 100644
index 6077edeee..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Open-Task.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Planning-Tab.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Planning-Tab.png
deleted file mode 100644
index 2b497afd4..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Planning-Tab.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Bottom.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Bottom.png
deleted file mode 100644
index fecfde95c..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Bottom.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Top.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Top.png
deleted file mode 100644
index f422e7c7f..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-Editor-Top.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Categorized.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Categorized.png
deleted file mode 100644
index 650c0539a..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Categorized.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Presentation-Select.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Presentation-Select.png
deleted file mode 100644
index 6784a64fb..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Presentation-Select.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Tooltip.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Tooltip.png
deleted file mode 100644
index 1b760b18f..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Task-List-Tooltip.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-UI-Legend.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-UI-Legend.png
deleted file mode 100644
index 960138276..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-UI-Legend.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Weekly-Progress.png b/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Weekly-Progress.png
deleted file mode 100644
index b6b52d7d5..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Feature-Reference-3.0-Weekly-Progress.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/Generic-web-repository-settings.gif b/org.eclipse.mylyn.help.ui/userguide/images/Generic-web-repository-settings.gif
deleted file mode 100644
index 1f3b766da..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/Generic-web-repository-settings.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/XPlannerTaskEditor.gif b/org.eclipse.mylyn.help.ui/userguide/images/XPlannerTaskEditor.gif
deleted file mode 100644
index 8266a4cf3..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/XPlannerTaskEditor.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/XPlannerUserStoryEditor.gif b/org.eclipse.mylyn.help.ui/userguide/images/XPlannerUserStoryEditor.gif
deleted file mode 100644
index 06b688ee8..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/XPlannerUserStoryEditor.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/images/home.gif b/org.eclipse.mylyn.help.ui/userguide/images/images/home.gif
deleted file mode 100644
index 4472e8ce5..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/images/home.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/images/next.gif b/org.eclipse.mylyn.help.ui/userguide/images/images/next.gif
deleted file mode 100644
index e2f8c3e1f..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/images/next.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/images/prev.gif b/org.eclipse.mylyn.help.ui/userguide/images/images/prev.gif
deleted file mode 100644
index 4fb415010..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/images/prev.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview-small.gif b/org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview-small.gif
deleted file mode 100644
index 2e88b0b6f..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview-small.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview.gif b/org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview.gif
deleted file mode 100644
index 74409455d..000000000
--- a/org.eclipse.mylyn.help.ui/userguide/images/mylyn-overview.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.jdt.core.prefs
index fbac23913..8b08f1b8b 100644
--- a/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Tue May 12 20:42:44 PDT 2009
+#Thu Apr 24 21:03:23 PDT 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
@@ -41,7 +41,7 @@ org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nullReference=error
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
@@ -77,8 +77,8 @@ org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,API
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -124,7 +124,7 @@ org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
@@ -324,8 +324,6 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
diff --git a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylar.tasklist.prefs
index d8c6d26af..58c2077a1 100644
--- a/org.eclipse.mylyn.help.sdk/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylar.tasklist.prefs
@@ -1,4 +1,4 @@
-#Mon Jun 25 03:02:37 GMT 2007
+#Fri Oct 20 16:36:21 PDT 2006
eclipse.preferences.version=1
project.repository.kind=bugzilla
project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylyn.tasklist.prefs
index d8c6d26af..8535764ed 100644
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/org.eclipse.mylyn.sdk-feature/.settings/org.eclipse.mylyn.tasklist.prefs
@@ -1,4 +1,4 @@
-#Mon Jun 25 03:02:37 GMT 2007
+#Mon Jun 18 17:15:50 PDT 2007
eclipse.preferences.version=1
project.repository.kind=bugzilla
project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.sdk-feature/build.properties b/org.eclipse.mylyn.sdk-feature/build.properties
index c9d1cf7e9..81e21e2de 100644
--- a/org.eclipse.mylyn.sdk-feature/build.properties
+++ b/org.eclipse.mylyn.sdk-feature/build.properties
@@ -5,8 +5,7 @@
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
###############################################################################
-bin.includes = feature.properties,\
- feature.xml,\
+bin.includes = feature.xml,\
about.ini,\
about.properties,\
eclipse32.gif,\
@@ -32,6 +31,7 @@ generate.plugin@org.eclipse.mylyn.commons.net.source=org.eclipse.mylyn.commons.n
generate.plugin@org.eclipse.mylyn.context.ui.source=org.eclipse.mylyn.context.ui
generate.plugin@org.eclipse.mylyn.resources.ui.source=org.eclipse.mylyn.resources.ui
+generate.plugin@org.eclipse.mylyn.web.ui.source=org.eclipse.mylyn.web.ui
generate.plugin@org.eclipse.mylyn.ide.ui.source=org.eclipse.mylyn.ide.ui
generate.plugin@org.eclipse.mylyn.team.cvs.source=org.eclipse.mylyn.team.cvs
@@ -48,6 +48,3 @@ generate.plugin@org.eclipse.mylyn.team.ui.source=org.eclipse.mylyn.team.ui
generate.plugin@org.eclipse.mylyn.bugzilla.core.source=org.eclipse.mylyn.bugzilla.core
generate.plugin@org.eclipse.mylyn.bugzilla.ui.source=org.eclipse.mylyn.bugzilla.ui
-
-generate.plugin@org.eclipse.mylyn.discovery.core.source=org.eclipse.mylyn.discovery.core
-generate.plugin@org.eclipse.mylyn.discovery.ui.source=org.eclipse.mylyn.discovery.ui
diff --git a/org.eclipse.mylyn.sdk-feature/feature.properties b/org.eclipse.mylyn.sdk-feature/feature.properties
deleted file mode 100644
index 98af6347b..000000000
--- a/org.eclipse.mylyn.sdk-feature/feature.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-featureName=Mylyn SDK
-description=Provides sources for the Mylyn Task List, Focused UI and Integration features, and sources for Mylyn WikiText.\n\Also includes the Mylyn WikiText Developer Guide.
-providerName=Eclipse Mylyn
-copyright=Copyright (c) 2004, 2008 Mylyn project committers and others.
-updateSiteName=Mylyn for Eclipse 3.4
-license=\
-Eclipse Foundation Software User Agreement\n\
-\n\
-March 17, 2005\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS modules ("Modules") and made available as downloadable archives ("Downloads").\n\
-\n\
- * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").\n\
- * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java\u2122 ARchive) in a directory named "plugins".\n\
- * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- * Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:\n\
-\n\
- * The top-level (root) directory\n\
- * Plug-in and Fragment directories\n\
- * Inside Plug-ins and Fragments packaged as JARs\n\
- * Sub-directories of the directory named "src" of certain Plug-ins\n\
- * Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
diff --git a/org.eclipse.mylyn.sdk-feature/feature.xml b/org.eclipse.mylyn.sdk-feature/feature.xml
index 1c2ede0f9..82a396fe4 100644
--- a/org.eclipse.mylyn.sdk-feature/feature.xml
+++ b/org.eclipse.mylyn.sdk-feature/feature.xml
@@ -1,25 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.eclipse.mylyn.sdk_feature"
- label="%featureName"
- version="3.2.0.qualifier"
- provider-name="%providerName"
+ label="Mylyn SDK"
+ version="3.0.0.qualifier"
+ provider-name="Eclipse.org"
plugin="org.eclipse.mylyn">
<description url="http://eclipse.org/mylyn">
- %description
+ Provides sources for the Mylyn Task List, Focused UI and Integration
+features.
</description>
<copyright>
- %copyright
+ Copyright (c) 2004 - 2007 Mylyn project committers and others.
</copyright>
<license url="license.html">
- %license
+ Eclipse Foundation Software User Agreement
+
+March 17, 2005
+Usage Of Content
+
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.
+Applicable Licenses
+
+Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, &quot;Program&quot; will mean the Content.
+
+Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).
+
+ * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).
+ * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Javaâ„¢ ARchive) in a directory named &quot;plugins&quot;.
+ * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.
+ * Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.
+
+The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:
+
+ * The top-level (root) directory
+ * Plug-in and Fragment directories
+ * Inside Plug-ins and Fragments packaged as JARs
+ * Sub-directories of the directory named &quot;src&quot; of certain Plug-ins
+ * Feature directories
+
+Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.
+
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
+
+ * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)
+ * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)
+ * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)
+ * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)
+ * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)
+ * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)
+
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.
+Cryptography
+
+Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
+
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
</license>
<url>
- <update label="%updateSiteName" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
+ <update label="Mylyn for Eclipse 3.4" url="http://download.eclipse.org/tools/mylyn/update/e3.4"/>
</url>
<plugin
@@ -114,6 +156,13 @@
unpack="false"/>
<plugin
+ id="org.eclipse.mylyn.web.ui.source"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
id="org.eclipse.mylyn.ide.ui.source"
download-size="0"
install-size="0"
@@ -190,18 +239,4 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.mylyn.discovery.core.source"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.discovery.ui.source"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
</feature>
diff --git a/org.eclipse.mylyn.tasks.bugs/.classpath b/org.eclipse.mylyn.tasks.bugs/.classpath
index 6a357762a..b07f119d9 100644
--- a/org.eclipse.mylyn.tasks.bugs/.classpath
+++ b/org.eclipse.mylyn.tasks.bugs/.classpath
@@ -4,7 +4,6 @@
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
<accessrules>
<accessrule kind="accessible" pattern="org/eclipse/ui/internal/views/log/*"/>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/ui/**"/>
</accessrules>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
diff --git a/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs
index f1554b100..8b08f1b8b 100644
--- a/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Tue May 12 20:42:43 PDT 2009
+#Thu Apr 24 21:03:23 PDT 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
@@ -41,7 +41,7 @@ org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nullReference=error
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
@@ -77,8 +77,8 @@ org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,API
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -124,7 +124,7 @@ org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
@@ -324,8 +324,6 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
diff --git a/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs
index 766f9cb69..5e70d0848 100644
--- a/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs
@@ -1,4 +1,4 @@
-#Thu Sep 11 16:27:18 PDT 2008
+#Sat Mar 01 03:38:47 PST 2008
cleanup_settings_version=2
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
@@ -10,7 +10,7 @@ org.eclipse.jdt.ui.gettersetter.use.is=true
org.eclipse.jdt.ui.javadoc=false
org.eclipse.jdt.ui.keywordthis=false
org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\n * Copyright (c) 2004, 2007 Mylyn project committers and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *******************************************************************************/\n\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true
diff --git a/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.mylyn.tasklist.prefs b/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.mylyn.tasklist.prefs
new file mode 100644
index 000000000..0a2cc0b30
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.mylyn.tasklist.prefs
@@ -0,0 +1,4 @@
+#Mon Jun 18 17:14:59 PDT 2007
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
index f56f4c543..63e3c131c 100644
--- a/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
@@ -1,24 +1,22 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
+Bundle-Name: Mylyn Bug Reporting
Bundle-SymbolicName: org.eclipse.mylyn.tasks.bugs;singleton:=true
-Bundle-Version: 3.2.0.qualifier
+Bundle-Version: 3.0.0.qualifier
Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
org.eclipse.ui,
- org.eclipse.ui.views.log;resolution:=optional,
- org.eclipse.ui.ide,
+ org.eclipse.ui.views.log,
org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-Vendor: %Bundle-Vendor
+Bundle-Vendor: Eclipse.org
Bundle-ClassPath: .
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.mylyn.internal.provisional.tasks.bugs,
- org.eclipse.mylyn.internal.tasks.bugs;x-internal:=true,
+Export-Package: org.eclipse.mylyn.internal.tasks.bugs;x-internal:=true,
org.eclipse.mylyn.internal.tasks.bugs.actions;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.bugs.wizards;x-internal:=true
+ org.eclipse.mylyn.internal.tasks.bugs.wizards;x-internal:=true,
+ org.eclipse.mylyn.tasks.bugs
Bundle-Localization: plugin
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin
diff --git a/org.eclipse.mylyn.tasks.bugs/about.html b/org.eclipse.mylyn.tasks.bugs/about.html
index d774b07c7..0dd939c09 100644
--- a/org.eclipse.mylyn.tasks.bugs/about.html
+++ b/org.eclipse.mylyn.tasks.bugs/about.html
@@ -7,7 +7,7 @@
<body lang="EN-US">
<h2>About This Content</h2>
-<p>June 25, 2008</p>
+<p>June 7, 2007</p>
<h3>License</h3>
<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
diff --git a/org.eclipse.mylyn.tasks.bugs/build.properties b/org.eclipse.mylyn.tasks.bugs/build.properties
index 1f473cbe4..6bd4616c8 100644
--- a/org.eclipse.mylyn.tasks.bugs/build.properties
+++ b/org.eclipse.mylyn.tasks.bugs/build.properties
@@ -1,11 +1,10 @@
###############################################################################
-# Copyright (c) 2004, 2008 Tasktop Technologies and others.
+# Copyright (c) 2005, 2007 Mylyn project committers 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
###############################################################################
-
bin.includes = META-INF/,\
plugin.xml,\
about.html,\
diff --git a/org.eclipse.mylyn.tasks.bugs/icons/etool16/task-new.gif b/org.eclipse.mylyn.tasks.bugs/icons/etool16/task-new.gif
deleted file mode 100644
index e2cde50c2..000000000
--- a/org.eclipse.mylyn.tasks.bugs/icons/etool16/task-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.bugs/plugin.properties b/org.eclipse.mylyn.tasks.bugs/plugin.properties
index 797c915c3..aba0d9c7a 100644
--- a/org.eclipse.mylyn.tasks.bugs/plugin.properties
+++ b/org.eclipse.mylyn.tasks.bugs/plugin.properties
@@ -1,17 +1,4 @@
-#Properties file for org.eclipse.mylyn.tasks.bugs
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Bug Reporting
-
-action.label = Report as Bug
-NewTaskFromErrorAction.label = Report as Bug
-
-ReportBugAction.label = Report Bug or Enhancement...
-ReportBugAction.tooltip = Report Bug or Enhancement
-
-commands.newTaskFromMarker.description = Report as Bug from Marker
-commands.newTaskFromMarker.name = New Task from Marker...
-commands.newTaskFromMarker.mnemonic = New Task from Marker
-
-BugReporter.label = Report Bug
-
-actionSet.label=Tasks Help
+#Properties file for org.eclipse.mylyn.bugzilla.ide
+Bundle-Vendor.0 = Eclipse.org
+Bundle-Name.0 = Mylyn Bugzilla Connector IDE
+action.label.0 = Report as Bug \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.bugs/plugin.xml b/org.eclipse.mylyn.tasks.bugs/plugin.xml
index 6b6c58044..e753e51c1 100644
--- a/org.eclipse.mylyn.tasks.bugs/plugin.xml
+++ b/org.eclipse.mylyn.tasks.bugs/plugin.xml
@@ -2,13 +2,12 @@
<?eclipse version="3.0"?>
<plugin>
<extension-point id="pluginRepositoryMappings" name="Plug-in to Repository Mappings" schema="schema/pluginRepositoryMappings.exsd"/>
- <extension-point id="support" name="Integrated Support" schema="schema/support.exsd"/>
<extension-point id="taskContributors" name="Task Contributors" schema="schema/taskContributors.exsd"/>
<extension point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="false"
- id="org.eclipse.mylyn.internal.provisional.tasks.bugs.objectContribution"
+ id="org.eclipse.mylyn.tasks.bugs.objectContribution"
objectClass="org.eclipse.ui.internal.views.log.LogEntry">
<action
class="org.eclipse.mylyn.internal.tasks.bugs.actions.NewTaskFromErrorAction"
@@ -16,89 +15,34 @@
icon="icons/etool16/task-repository-new.gif"
menubarPath="org.eclipse.pde.runtime.LogView"
id="org.eclipse.mylyn.tasklist.actions.newTaskFromErrorLog"
- label="%NewTaskFromErrorAction.label">
+ label="Report as Bug">
</action>
</objectContribution>
</extension>
+
+ <extension
+ point="org.eclipse.mylyn.commons.core.errorReporters">
+ <errorReporter
+ class="org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin$Reporter"
+ id="org.eclipse.mylyn.tasks.bugs.errorReporter"
+ label="Report Error as Bug">
+ </errorReporter>
+ </extension>
<extension point="org.eclipse.ui.actionSets">
<actionSet
id="org.eclipse.mylyn.doc.actionSet"
- label="%actionSet.label"
+ label="Mylyn Help"
visible="true">
<action
class="org.eclipse.mylyn.internal.tasks.bugs.actions.ReportBugAction"
icon="icons/etool16/report-bug.gif"
id="org.eclipse.mylyn.tasks.ui.bug.report"
- label="%ReportBugAction.label"
+ label="Report Bug or Enhancement..."
menubarPath="help/helpStart"
style="push"
- tooltip="%ReportBugAction.tooltip"/>
+ tooltip="Report Bug or Enhancement"/>
</actionSet>
</extension>
- <extension
- point="org.eclipse.ui.handlers">
- <handler
- class="org.eclipse.mylyn.internal.tasks.bugs.actions.NewTaskFromMarkerHandler"
- commandId="org.eclipse.mylyn.tasks.bugs.commands.newTaskFromMarker">
- <activeWhen>
- <with variable="activePart">
- <test
- args="any"
- property="org.eclipse.ui.ide.contentGenerator">
- </test>
- </with>
- </activeWhen>
- <enabledWhen>
- <and>
- <count
- value="1">
- </count>
- <iterate
- ifEmpty="false"
- operator="and">
- <instanceof
- value="org.eclipse.ui.internal.views.markers.MarkerEntry">
- </instanceof>
- </iterate>
- </and>
- </enabledWhen>
- </handler>
- </extension>
-
- <extension
- point="org.eclipse.ui.commands">
- <command
- description="%commands.newTaskFromMarker.description"
- id="org.eclipse.mylyn.tasks.bugs.commands.newTaskFromMarker"
- name="%commands.newTaskFromMarker.name">
- </command>
- </extension>
-
- <extension
- point="org.eclipse.ui.menus">
- <menuContribution
- locationURI="popup:org.eclipse.ui.ide.MarkersView?after=org.eclipse.ui.ide.markCompleted">
- <command
- commandId="org.eclipse.mylyn.tasks.bugs.commands.newTaskFromMarker"
- icon="icons/etool16/task-new.gif"
- mnemonic="%commands.newTaskFromMarker.mnemonic"
- style="push">
- <visibleWhen
- checkEnabled="true">
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
-
- <extension
- point="org.eclipse.mylyn.commons.core.errorReporters">
- <errorReporter
- class="org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin$BugReporter"
- id="org.eclipse.mylyn.tasks.bugs.taskReporter"
- label="%BugReporter.label">
- </errorReporter>
- </extension>
-
</plugin>
diff --git a/org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd b/org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd
index 6543f7d9b..fccaf03d1 100644
--- a/org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd
+++ b/org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd
@@ -1,9 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.bugs" xmlns="http://www.w3.org/2001/XMLSchema">
+<schema targetNamespace="org.eclipse.mylyn.bugzilla.ide" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.bugs" id="pluginRepositoryMappings" name="Plug-in to Repository Mappings"/>
+ <meta.schema plugin="org.eclipse.mylyn.bugzilla.ide" id="pluginRepositoryMappings" name="Plug-in to Repository Mappings"/>
</appinfo>
<documentation>
[Enter description of this extension point.]
@@ -13,7 +13,7 @@
<element name="extension">
<annotation>
<appinfo>
- <meta.element deprecated="true" internal="true" />
+ <meta.element />
</appinfo>
</annotation>
<complexType>
diff --git a/org.eclipse.mylyn.tasks.bugs/schema/support.exsd b/org.eclipse.mylyn.tasks.bugs/schema/support.exsd
deleted file mode 100644
index 29d3ebc47..000000000
--- a/org.eclipse.mylyn.tasks.bugs/schema/support.exsd
+++ /dev/null
@@ -1,322 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.bugs" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appinfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.bugs" id="support" name="Integrated Support Extensions"/>
- </appinfo>
- <documentation>
- Allows client to provide information for integrated bug reporting.
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appinfo>
- <meta.element internal="true" />
- </appinfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="category" minOccurs="0" maxOccurs="unbounded"/>
- <element ref="mapping" minOccurs="0" maxOccurs="unbounded"/>
- <element ref="product" minOccurs="0" maxOccurs="unbounded"/>
- <element ref="provider" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appinfo>
- <meta.attribute translatable="true"/>
- </appinfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="mapping">
- <complexType>
- <sequence>
- <element ref="repository" minOccurs="0" maxOccurs="1"/>
- <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="namespace" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="productId" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="repository">
- <complexType>
- <attribute name="url" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="kind" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="product">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="providerId" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="icon" type="string">
- <annotation>
- <documentation>
- A 32x32 branding icon.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="url" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="featureId" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="pluginId" type="string">
- <annotation>
- <documentation>
- If specified the product is only listed if the referenced plug-in is installed.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="property">
- <complexType>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="value" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="category">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="weight" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="provider">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="categoryId" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="icon" type="string">
- <annotation>
- <documentation>
- A 32x32 branding icon.
- </documentation>
- <appinfo>
- <meta.attribute kind="resource"/>
- </appinfo>
- </annotation>
- </attribute>
- <attribute name="url" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appinfo>
- <meta.section type="since"/>
- </appinfo>
- <documentation>
- 3.2
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="examples"/>
- </appinfo>
- <documentation>
- &lt;extension point=&quot;org.eclipse.mylyn.tasks.bugs.support&quot;&gt;
-&lt;category
- id=&quot;org.eclipse.mylyn.tasks.bugs.openSource&quot;
- name=&quot;Open-Source&quot;
- description=&quot;Community supported Open-Source projects&quot;/&gt;
-&lt;organization
- id=&quot;org.eclipse&quot;
- name=&quot;Eclipse.org&quot;
- description=&quot;Eclipse Open-Source projects&quot;
- icon=&quot;icons/32/eclipse.png&quot;/&gt;
-&lt;product
- id=&quot;org.eclipse.mylyn&quot;
- name=&quot;Mylyn&quot;
- description=&quot;Task Management and Task-Focused Interface&quot;
- pluginId=&quot;org.eclipse.mylyn&quot; (for branding icon, installed version) /&gt;
-&lt;productRepositoryMapping
- namespace=&quot;org.eclipse.mylyn&quot;
- productId=&quot;org.eclipse.mylyn&quot;
- &lt;repository
- kind=&quot;bugzilla&quot;
- url=&quot;https://bugs.eclipse.org/bugs&quot;&gt;
- &lt;/repository&gt;
- &lt;property
- name=&quot;product&quot;
- value=&quot;Mylyn&quot;&gt;
- &lt;/property&gt;
-/&gt;
-&lt;productRepositoryMapping
- namespace=&quot;org.eclipse.mylyn.tasks&quot;
- productId=&quot;org.eclipse.mylyn&quot;
- &lt;property
- name=&quot;component&quot;
- value=&quot;Tasks&quot;&gt;
- &lt;/property&gt;
-&lt;/product&gt;
-&lt;/extension&gt;
- </documentation>
- </annotation>
-
-
-
- <annotation>
- <appinfo>
- <meta.section type="copyright"/>
- </appinfo>
- <documentation>
- Copyright (c) 2009 Tasktop Technologies and others.
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd b/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd
index 5f6faae0f..5e62e4848 100644
--- a/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd
+++ b/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd
@@ -1,9 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.bugs" xmlns="http://www.w3.org/2001/XMLSchema">
+<schema targetNamespace="org.eclipse.mylyn.bugzilla.ide" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.bugs" id="taskContributors" name="Task Contributors"/>
+ <meta.schema plugin="org.eclipse.mylyn.bugzilla.ide" id="taskContributors" name="Task Contributors"/>
</appinfo>
<documentation>
[Enter description of this extension point.]
@@ -11,11 +11,6 @@
</annotation>
<element name="extension">
- <annotation>
- <appinfo>
- <meta.element internal="true" />
- </appinfo>
- </annotation>
<complexType>
<sequence minOccurs="1" maxOccurs="unbounded">
<element ref="contributor"/>
@@ -62,7 +57,7 @@
</documentation>
<appinfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.internal.provisional.tasks.bugs.AbstractTaskContributor:"/>
+ <meta.attribute kind="java"/>
</appinfo>
</annotation>
</attribute>
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java
deleted file mode 100644
index 16c1673af..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.bugs;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- */
-public abstract class AbstractTaskContributor {
-
- /**
- * @since 3.2
- */
- public void preProcess(ISupportRequest request) {
- }
-
- /**
- * @deprecated use {@link #contribute(ISTatus, ITaskContribution)} instead
- */
- @Deprecated
- public abstract Map<String, String> getAttributes(IStatus status);
-
- /**
- * Returns the id of an editor that should be used to open the {@link TaskEditorInput} with the task.
- *
- * @param status
- * the status
- * @return id of editor
- */
- @Deprecated
- public String getEditorId(IStatus status) {
- return null;
- }
-
- /**
- * @since 3.2
- */
- public void process(ITaskContribution contribution) {
- }
-
- /**
- * @deprecated use {@link #postProcess(ISupportResponse)} instead
- */
- @Deprecated
- public void postProcess(IStatus status, TaskData taskData) {
- }
-
- /**
- * @since 3.2
- */
- public void postProcess(ISupportResponse response) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProduct.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProduct.java
deleted file mode 100644
index f4076acad..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProduct.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.bugs;
-
-/**
- * @author Steffen Pingel
- * @since 3.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IProduct {
-
- public abstract String getName();
-
- public abstract String getDescription();
-
- public abstract String getId();
-
- public abstract IProvider getProvider();
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProvider.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProvider.java
deleted file mode 100644
index 4a7bf8640..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.bugs;
-
-/**
- * @author Steffen Pingel
- * @since 3.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IProvider {
-
- public abstract String getName();
-
- public abstract String getDescription();
-
- public abstract String getId();
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportRequest.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportRequest.java
deleted file mode 100644
index 3ca6990cf..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportRequest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.bugs;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @author Steffen Pingel
- * @since 3.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ISupportRequest {
-
- public ITaskContribution getOrCreateContribution(IProduct product);
-
- public ITaskContribution getDefaultContribution();
-
- public IStatus getStatus();
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ITaskContribution.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ITaskContribution.java
deleted file mode 100644
index 5002135b4..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ITaskContribution.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.bugs;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @author Steffen Pingel
- * @since 3.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITaskContribution {
-
- /**
- * Appends <code>text</code> to the description of the task.
- */
- public abstract void appendToDescription(String text);
-
- public abstract String getAttribute(String name);
-
- public abstract IProduct getProduct();
-
- public abstract IStatus getStatus();
-
- public abstract void setAttribute(String name, String value);
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AbstractSupportElement.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AbstractSupportElement.java
deleted file mode 100644
index 464be3081..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AbstractSupportElement.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class AbstractSupportElement {
-
- private String description;
-
- private ImageDescriptor icon;
-
- private String id;
-
- private String name;
-
- private String url;
-
- public String getDescription() {
- return description;
- }
-
- public ImageDescriptor getIcon() {
- return icon;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public String getUrl() {
- return url;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public void setIcon(ImageDescriptor icon) {
- this.icon = icon;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java
index 4bbd6baf4..cc71a23a7 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java
@@ -1,109 +1,212 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
-import java.util.HashMap;
+import java.util.Date;
+import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ISupportResponse;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ITaskContribution;
+import org.eclipse.mylyn.internal.tasks.core.deprecated.DefaultTaskSchema;
+import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData;
+import org.eclipse.mylyn.internal.tasks.core.deprecated.TaskSelection;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
import org.eclipse.mylyn.tasks.core.ITaskMapping;
+import org.eclipse.mylyn.tasks.core.TaskMapping;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.ui.TasksUi;
/**
* @author Steffen Pingel
*/
-public class AttributeTaskMapper implements ITaskContribution, ISupportResponse {
+@SuppressWarnings("deprecation")
+public class AttributeTaskMapper {
private final Map<String, String> attributes;
- private final IProduct product;
+ public AttributeTaskMapper(Map<String, String> attributes) {
+ Assert.isNotNull(attributes);
+ this.attributes = attributes;
+ }
- private final IStatus status;
+ public boolean isMappingComplete() {
+ return getTaskRepository() != null && attributes.get(IRepositoryConstants.PRODUCT) != null;
+ }
- private TaskData taskData;
+ public TaskRepository getTaskRepository() {
+ TaskRepository taskRepository = null;
+ String repositoryUrl = attributes.get(IRepositoryConstants.REPOSITORY_URL);
+ if (repositoryUrl != null) {
+ String connectorKind = attributes.get(IRepositoryConstants.CONNECTOR_KIND);
+ if (connectorKind != null) {
+ taskRepository = TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl);
+ }
+ }
+ return taskRepository;
+ }
- public AttributeTaskMapper(IStatus status, IProduct product) {
- Assert.isNotNull(status);
- Assert.isNotNull(product);
- this.status = status;
- this.product = product;
- this.attributes = new HashMap<String, String>();
+ public TaskSelection createTaskSelection() {
+ TaskSelection selection = new TaskSelection("", "");
+ applyTo(selection.getLegacyTaskData());
+ return selection;
}
- public void appendToDescription(String text) {
- String description = getAttribute(IRepositoryConstants.DESCRIPTION);
- setAttribute(IRepositoryConstants.DESCRIPTION, (description != null) ? description + text : text);
+ public void applyTo(RepositoryTaskData taskData) {
+ DefaultTaskSchema schema = new DefaultTaskSchema(taskData);
+ for (Entry<String, String> entry : attributes.entrySet()) {
+ if (IRepositoryConstants.PRODUCT.equals(entry.getKey())) {
+ schema.setProduct(entry.getValue());
+ } else if (IRepositoryConstants.COMPONENT.equals(entry.getKey())) {
+ schema.setComponent(entry.getValue());
+ }
+ }
}
+ @SuppressWarnings("restriction")
public TaskData createTaskData(IProgressMonitor monitor) throws CoreException {
ITaskMapping taskMapping = getTaskMapping();
return TasksUiInternal.createTaskData(getTaskRepository(), taskMapping, taskMapping, monitor);
}
- public String getAttribute(String name) {
- return attributes.get(name);
+ public ITaskMapping getTaskMapping() {
+ return new KeyValueMapping(attributes);
}
- public Map<String, String> getAttributes() {
- return attributes;
- }
+ private static class KeyValueMapping extends TaskMapping {
- public IProduct getProduct() {
- return product;
- }
+ private final Map<String, String> attributes;
- public IStatus getStatus() {
- return status;
- }
+ public KeyValueMapping(Map<String, String> attributes) {
+ Assert.isNotNull(attributes);
+ this.attributes = attributes;
+ }
- public TaskData getTaskData() {
- return taskData;
- }
+ @Override
+ public void copyFrom(ITaskMapping source) {
+ }
- public ITaskMapping getTaskMapping() {
- return new KeyValueMapping(attributes);
- }
+ @Override
+ public Date getCompletionDate() {
+ // ignore
+ return null;
+ }
- public TaskRepository getTaskRepository() {
- TaskRepository taskRepository = null;
- String repositoryUrl = attributes.get(IRepositoryConstants.REPOSITORY_URL);
- if (repositoryUrl != null) {
- String connectorKind = attributes.get(IRepositoryConstants.CONNECTOR_KIND);
- if (connectorKind != null) {
- taskRepository = TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl);
- }
+ @Override
+ public String getComponent() {
+ return attributes.get(IRepositoryConstants.COMPONENT);
}
- return taskRepository;
- }
- public boolean isMappingComplete() {
- return getTaskRepository() != null;
- }
+ @Override
+ public Date getCreationDate() {
+ // ignore
+ return null;
+ }
- public void setAttribute(String name, String value) {
- attributes.put(name, value);
- }
+ @Override
+ public String getDescription() {
+ return attributes.get(IRepositoryConstants.DESCRIPTION);
+ }
+
+ @Override
+ public Date getDueDate() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public Date getModificationDate() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getOwner() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public PriorityLevel getPriority() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getProduct() {
+ return attributes.get(IRepositoryConstants.PRODUCT);
+ }
+
+ @Override
+ public String getSummary() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public TaskData getTaskData() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getTaskKey() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getTaskKind() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getTaskUrl() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public List<String> getCc() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public List<String> getKeywords() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getReporter() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getResolution() {
+ // ignore
+ return null;
+ }
+
+ @Override
+ public String getTaskStatus() {
+ // ignore
+ return null;
+ }
- void setTaskData(TaskData taskData) {
- this.taskData = taskData;
}
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java
index afa7116c3..514618ec0 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java
@@ -1,199 +1,68 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IProduct;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.AbstractTaskContributor;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ISupportResponse;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ITaskContribution;
-import org.eclipse.mylyn.internal.tasks.bugs.wizards.ErrorLogStatus;
-import org.eclipse.mylyn.internal.tasks.bugs.wizards.ProductStatus;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.osgi.util.NLS;
+import org.eclipse.mylyn.internal.tasks.bugs.wizards.FeatureStatus;
+import org.eclipse.mylyn.tasks.bugs.AbstractTaskContributor;
+import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
import org.osgi.framework.Bundle;
/**
* @author Steffen Pingel
*/
-@SuppressWarnings("deprecation")
public class DefaultTaskContributor extends AbstractTaskContributor {
@Override
- public void process(ITaskContribution contribution) {
- String description = getDescription(contribution.getStatus());
- if (description != null) {
- contribution.appendToDescription(description);
- }
- }
-
- @Override
- public void postProcess(ISupportResponse response) {
- IStatus contribution = response.getStatus();
- TaskData taskData = response.getTaskData();
- if (contribution instanceof ProductStatus) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(taskData.getConnectorKind());
- ITaskMapping mapping = connector.getTaskMapping(taskData);
- mapping.merge(new TaskMapping() {
- @Override
- public String getSeverity() {
- return "enhancement"; //$NON-NLS-1$
- }
- });
- }
- if (response.getProduct() != null) {
- IBundleGroup bundleGroup = ((SupportProduct) response.getProduct()).getBundleGroup();
- if (bundleGroup != null) {
- TaskAttribute attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.VERSION);
- if (attribute != null) {
- final String version = getBestMatch(bundleGroup.getVersion(), attribute.getOptions());
- if (version.length() > 0) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(taskData.getConnectorKind());
- ITaskMapping mapping = connector.getTaskMapping(taskData);
- mapping.merge(new TaskMapping() {
- @Override
- public String getVersion() {
- return version;
- }
- });
- }
- }
- }
- }
- }
-
- private String getBestMatch(String version, Map<String, String> options) {
- String match = ""; //$NON-NLS-1$
- for (String option : options.values()) {
- if (version.startsWith(option) && option.length() > match.length()) {
- match = option;
- }
- }
- return match;
- }
-
- public void appendErrorDetails(StringBuilder sb, IStatus status, Date date) {
- sb.append("\n\n");
- sb.append(Messages.DefaultTaskContributor_Error_Details);
- if (date != null) {
- sb.append("\n"); //$NON-NLS-1$
- sb.append(NLS.bind("Date: {0}", date));
- }
- sb.append("\n"); //$NON-NLS-1$
- sb.append(NLS.bind("Message: {0}", status.getMessage()));
- sb.append("\n"); //$NON-NLS-1$
- sb.append(NLS.bind("Severity: {0}", getSeverityText(status.getSeverity())));
- IProduct product = Platform.getProduct();
- if (product != null) {
- sb.append("\n"); //$NON-NLS-1$
- if (product.getName() != null) {
- sb.append(NLS.bind("Product: {0} ({1})", product.getName(), product.getId()));
- } else {
- sb.append(NLS.bind("Product: {0}", product.getId()));
- }
- }
- sb.append("\n"); //$NON-NLS-1$
- sb.append(NLS.bind("Plugin: {0}", status.getPlugin()));
- }
-
- @Override
public Map<String, String> getAttributes(IStatus status) {
Map<String, String> attributes = new HashMap<String, String>();
- attributes.put(IRepositoryConstants.DESCRIPTION, getDescription(status));
- return attributes;
- }
+ if (status instanceof FeatureStatus) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("\n\n\n");
+ sb.append("-- Installed Plug-ins --\n");
+ IBundleGroup bundleGroup = ((FeatureStatus) status).getBundleGroup();
- public String getDescription(IStatus status) {
- if (status instanceof ProductStatus) {
- SupportProduct product = (SupportProduct) ((ProductStatus) status).getProduct();
- if (product.getBundleGroup() != null) {
- StringBuilder sb = new StringBuilder();
- sb.append("\n\n\n"); //$NON-NLS-1$
- sb.append(Messages.DefaultTaskContributor_INSTALLED_FEATURES_AND_PLUGINS);
- for (IBundleGroup bundleGroup : new IBundleGroup[] { product.getBundleGroup() }) {
- sb.append(bundleGroup.getIdentifier());
- sb.append(" "); //$NON-NLS-1$
- sb.append(bundleGroup.getVersion());
- sb.append("\n"); //$NON-NLS-1$
+ sb.append(bundleGroup.getIdentifier());
+ sb.append(" ");
+ sb.append(bundleGroup.getVersion());
- Bundle[] bundles = bundleGroup.getBundles();
- if (bundles != null) {
- for (Bundle bundle : bundles) {
- sb.append(" "); //$NON-NLS-1$
- sb.append(bundle.getSymbolicName());
- String version = (String) bundle.getHeaders().get(
- Messages.DefaultTaskContributor_Bundle_Version);
- if (version != null) {
- sb.append(" "); //$NON-NLS-1$
- sb.append(version);
- }
- sb.append("\n"); //$NON-NLS-1$
- }
- }
+ Bundle[] bundles = bundleGroup.getBundles();
+ if (bundles != null) {
+ for (Bundle bundle : bundles) {
+ sb.append(bundle.getBundleId());
}
- return sb.toString();
}
- } else if (status instanceof ErrorLogStatus) {
- ErrorLogStatus errorLogStatus = (ErrorLogStatus) status;
- StringBuilder sb = new StringBuilder();
- appendErrorDetails(sb, errorLogStatus, errorLogStatus.getDate());
- if (errorLogStatus.getLogSessionData() != null) {
- sb.append(Messages.DefaultTaskContributor_SESSION_DATA);
- sb.append(errorLogStatus.getLogSessionData());
- }
- if (errorLogStatus.getStack() != null) {
- sb.append(Messages.DefaultTaskContributor_EXCEPTION_STACK_TRACE);
- sb.append(errorLogStatus.getStack());
- }
- return sb.toString();
+ attributes.put(IRepositoryConstants.DESCRIPTION, sb.toString());
+
} else {
StringBuilder sb = new StringBuilder();
- appendErrorDetails(sb, status, new Date());
+ sb.append("\n\n-- Error Details --\n");
if (status.getException() != null) {
- sb.append(Messages.DefaultTaskContributor_EXCEPTION_STACK_TRACE);
+ sb.append("\nStack Trace:\n");
StringWriter writer = new StringWriter();
status.getException().printStackTrace(new PrintWriter(writer));
sb.append(writer.getBuffer());
}
- return sb.toString();
+ attributes.put(IRepositoryConstants.DESCRIPTION, sb.toString());
}
- return null;
+ return attributes;
}
- private String getSeverityText(int severity) {
- switch (severity) {
- case IStatus.ERROR:
- return Messages.DefaultTaskContributor_Error;
- case IStatus.WARNING:
- return Messages.DefaultTaskContributor_Warning;
- case IStatus.INFO:
- return Messages.DefaultTaskContributor_Info;
- case IStatus.OK:
- return Messages.DefaultTaskContributor_OK;
- }
- return "?"; //$NON-NLS-1$
+ @Override
+ public String getEditorId(IStatus status) {
+ return TaskEditor.ID_EDITOR;
}
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java
index c4073408c..691b92ce8 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
@@ -16,40 +13,17 @@ package org.eclipse.mylyn.internal.tasks.bugs;
*/
public class IRepositoryConstants {
- @Deprecated
- public static final String BRANDING = "branding"; //$NON-NLS-1$
-
- public static final String COMPONENT = "component"; //$NON-NLS-1$
-
- public static final String CONNECTOR_KIND = "repositoryKind"; //$NON-NLS-1$
-
- public static final String DESCRIPTION = "description"; //$NON-NLS-1$
-
- public static final String PRODUCT = "product"; //$NON-NLS-1$
-
- @Deprecated
- public static final String PRODUCT_CATEGORY = "productCategory"; //$NON-NLS-1$
+ public static final String REPOSITORY_URL = "repositoryUrl";
- @Deprecated
- public static final String PRODUCT_DESCRIPTION = "productDescription"; //$NON-NLS-1$
+ public static final String CONNECTOR_KIND = "repositoryKind";
- @Deprecated
- public static final String PRODUCT_NAME = "productName"; //$NON-NLS-1$
+ public static final String COMPONENT = "component";
- @Deprecated
- public static final String PRODUCT_TITLE = "productTitle"; //$NON-NLS-1$
+ public static final String PRODUCT = "product";
@Deprecated
- public static final String REPOSITORY_KIND = "repositoryKind"; //$NON-NLS-1$
-
- public static final String REPOSITORY_URL = "repositoryUrl"; //$NON-NLS-1$
-
- public static final String SEVERITY = "severity"; //$NON-NLS-1$
-
- public static final String VERSION = "version"; //$NON-NLS-1$
-
- public static final String SUMMARY = "summary"; //$NON-NLS-1$
+ public static final String BRANDING = "branding";
- public static final String PRIORITY = "priority";
+ public static final String DESCRIPTION = "description";
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java
deleted file mode 100644
index 2e3c2d581..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-
-/**
- * @author Steffen Pingel
- */
-public class KeyValueMapping extends TaskMapping {
-
- private final Map<String, String> attributes;
-
- public KeyValueMapping(Map<String, String> attributes) {
- Assert.isNotNull(attributes);
- this.attributes = attributes;
- }
-
- @Override
- public String getComponent() {
- return attributes.get(IRepositoryConstants.COMPONENT);
- }
-
- @Override
- public String getDescription() {
- return attributes.get(IRepositoryConstants.DESCRIPTION);
- }
-
- @Override
- public List<String> getKeywords() {
- // TODO implement
- return null;
- }
-
- @Override
- public String getOwner() {
- // TODO implement
- return null;
- }
-
- @Override
- public String getPriority() {
- return attributes.get(IRepositoryConstants.PRIORITY);
- }
-
- @Override
- public String getProduct() {
- return attributes.get(IRepositoryConstants.PRODUCT);
- }
-
- @Override
- public String getSeverity() {
- return attributes.get(IRepositoryConstants.SEVERITY);
- }
-
- @Override
- public String getSummary() {
- return attributes.get(IRepositoryConstants.SUMMARY);
- }
-
- @Override
- public String getTaskKind() {
- // TODO implement
- return null;
- }
-
- @Override
- public String getVersion() {
- return attributes.get(IRepositoryConstants.VERSION);
- }
-
- @Override
- public void merge(ITaskMapping source) {
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/Messages.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/Messages.java
deleted file mode 100644
index 8b9629510..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/Messages.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.bugs.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String DefaultTaskContributor_Bundle_Version;
-
- public static String DefaultTaskContributor_DATE;
-
- public static String DefaultTaskContributor_Error;
-
- public static String DefaultTaskContributor_Error_Details;
-
- public static String DefaultTaskContributor_EXCEPTION_STACK_TRACE;
-
- public static String DefaultTaskContributor_Info;
-
- public static String DefaultTaskContributor_INSTALLED_FEATURES_AND_PLUGINS;
-
- public static String DefaultTaskContributor_MESSAGE;
-
- public static String DefaultTaskContributor_OK;
-
- public static String DefaultTaskContributor_PLUGIN;
-
- public static String DefaultTaskContributor_SESSION_DATA;
-
- public static String DefaultTaskContributor_SEVERITY;
-
- public static String DefaultTaskContributor_Warning;
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMapping.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMapping.java
index 117d040bc..ea159a33c 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMapping.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMapping.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
@@ -22,9 +19,9 @@ import java.util.Map;
*/
public class PluginRepositoryMapping {
- private final List<String> prefixes = new ArrayList<String>();
+ private List<String> prefixes = new ArrayList<String>();
- private final Map<String, String> attributes = new HashMap<String, String>();
+ private Map<String, String> attributes = new HashMap<String, String>();
public void addPrefix(String prefix) {
prefixes.add(prefix);
@@ -43,7 +40,7 @@ public class PluginRepositoryMapping {
}
public List<String> getPrefixes() {
- return Collections.unmodifiableList(prefixes);
+ return Collections.unmodifiableList(prefixes);
}
-
+
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMappingManager.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMappingManager.java
index 441b44726..c23925e99 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMappingManager.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/PluginRepositoryMappingManager.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
@@ -30,31 +27,30 @@ import org.eclipse.mylyn.commons.core.StatusHandler;
*/
public class PluginRepositoryMappingManager {
- private static final String EXTENSION_ID_PLUGIN_REPOSITORY_MAPPING = "org.eclipse.mylyn.tasks.bugs.pluginRepositoryMappings"; //$NON-NLS-1$
+ private static final String[] MAPPING_CHILD_ELEMENTS = new String[] { IRepositoryConstants.PRODUCT,
+ IRepositoryConstants.COMPONENT };
- private static final String ELEMENT_MAPPING = "mapping"; //$NON-NLS-1$
+ private static final String EXTENSION_ID_PLUGIN_REPOSITORY_MAPPING = "org.eclipse.mylyn.tasks.bugs.pluginRepositoryMappings";
- private static final String ELEMENT_BRANDING = "branding"; //$NON-NLS-1$
+ private static final String ELEMENT_MAPPING = "mapping";
- private static final String ELEMENT_REPOSITORY = "repository"; //$NON-NLS-1$
+ private static final String ELEMENT_BRANDING = "branding";
- private static final String ELEMENT_PROPERTY = "property"; //$NON-NLS-1$
+ private static final String ELEMENT_REPOSITORY = "repository";
- private static final String ATTRIBUTE_PLUGIN_ID_PREFIX = "pluginIdPrefix"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_PLUGIN_ID_PREFIX = "pluginIdPrefix";
- private static final String ATTRIBUTE_REPOSITORY_URL = "url"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_REPOSITORY_URL = "url";
- private static final String ATTRIBUTE_REPOSITORY_KIND = "kind"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_REPOSITORY_KIND = "kind";
- private static final String ATTRIBUTE_BRANDING_NAME = "name"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_BRANDING_NAME = "name";
- private static final String ATTRIBUTE_BRANDING_DESCRIPTION = "description"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_BRANDING_DESCRIPTION = "description";
- private static final String ATTRIBUTE_BRANDING_CATEGORY = "category"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_BRANDING_CATEGORY = "category";
- private static final String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_VALUE = "value"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_VALUE = "value";
private TreeMap<String, PluginRepositoryMapping> mappingByPrefix;
@@ -73,21 +69,22 @@ public class PluginRepositoryMappingManager {
attributes.put(IRepositoryConstants.CONNECTOR_KIND, connectorKind);
}
// attributes
- for (IConfigurationElement attributeElement : element.getChildren(ELEMENT_PROPERTY)) {
- String name = attributeElement.getAttribute(ATTRIBUTE_NAME);
- String value = attributeElement.getAttribute(ATTRIBUTE_VALUE);
- attributes.put(name, value);
+ for (String elementName : MAPPING_CHILD_ELEMENTS) {
+ for (IConfigurationElement attributeElement : element.getChildren(elementName)) {
+ String value = attributeElement.getAttribute(ATTRIBUTE_VALUE);
+ attributes.put(elementName, value);
+ }
}
// branding
for (IConfigurationElement attributeElement : element.getChildren(ELEMENT_BRANDING)) {
- attributes.put("brandingName", attributeElement.getAttribute(ATTRIBUTE_BRANDING_NAME)); //$NON-NLS-1$
+ attributes.put("brandingName", attributeElement.getAttribute(ATTRIBUTE_BRANDING_NAME));
String description = attributeElement.getAttribute(ATTRIBUTE_BRANDING_DESCRIPTION);
if (description != null) {
- attributes.put("brandingDescription", description); //$NON-NLS-1$
+ attributes.put("brandingDescription", description);
}
String category = attributeElement.getAttribute(ATTRIBUTE_BRANDING_CATEGORY);
if (category != null) {
- attributes.put("brandingCategory", category); //$NON-NLS-1$
+ attributes.put("brandingCategory", category);
}
}
@@ -97,9 +94,9 @@ public class PluginRepositoryMappingManager {
pluginRepositoryMapping.addPrefix(pluginIdPrefix);
addPluginRepositoryMapping(pluginRepositoryMapping);
} else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Missing attributes in " //$NON-NLS-1$
- + EXTENSION_ID_PLUGIN_REPOSITORY_MAPPING + " extension for id \"" + ATTRIBUTE_PLUGIN_ID_PREFIX //$NON-NLS-1$
- + "\"")); //$NON-NLS-1$
+ StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Missing attributes in "
+ + EXTENSION_ID_PLUGIN_REPOSITORY_MAPPING + " extension for id \"" + ATTRIBUTE_PLUGIN_ID_PREFIX
+ + "\""));
}
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/ProductRepositoryMapping.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/ProductRepositoryMapping.java
deleted file mode 100644
index 7bb3f9b09..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/ProductRepositoryMapping.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Steffen Pingel
- */
-public class ProductRepositoryMapping {
-
- private final Map<String, String> attributes;
-
- private final String namespace;
-
-// private IProduct product;
-
- public ProductRepositoryMapping(String namespace) {
- this.namespace = namespace;
- this.attributes = new HashMap<String, String>();
- }
-
- public void addAttributes(Map<String, String> attributes) {
- this.attributes.putAll(attributes);
- }
-
- public Map<String, String> getAttributes() {
- return attributes;
- }
-
- public String getNamespace() {
- return namespace;
- }
-
-// public IProduct getProduct() {
-// return product;
-// }
-//
-// public void setProduct(IProduct product) {
-// this.product = product;
-// }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java
deleted file mode 100644
index 2028ff550..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider;
-
-public class SupportCategory extends AbstractSupportElement {
-
- private static final int DEFAULT_WEIGHT = 1000;
-
- private List<IProvider> providers;
-
- private int weight;
-
- public SupportCategory() {
- setWeight(DEFAULT_WEIGHT);
- }
-
- public void add(IProvider provider) {
- if (providers == null) {
- providers = new ArrayList<IProvider>();
- }
- providers.add(provider);
- }
-
- public void remove(IProvider provider) {
- if (providers != null) {
- providers.remove(provider);
- }
- }
-
- public List<IProvider> getProviders() {
- return new ArrayList<IProvider>(providers);
- }
-
- public int getWeight() {
- return weight;
- }
-
- public void setWeight(int weight) {
- this.weight = weight;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProduct.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProduct.java
deleted file mode 100644
index 1c3e2e2a2..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProduct.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider;
-
-/**
- * @author Steffen Pingel
- */
-public class SupportProduct extends AbstractSupportElement implements IProduct {
-
- private IBundleGroup bundleGroup;
-
- private boolean installed;
-
- TreeMap<String, ProductRepositoryMapping> mappingByNamespace;
-
- private String pluginId;
-
- private IProvider provider;
-
- public SupportProduct() {
- mappingByNamespace = new TreeMap<String, ProductRepositoryMapping>();
- }
-
- public void addRepositoryMapping(ProductRepositoryMapping mapping) {
- ProductRepositoryMapping existingMapping = mappingByNamespace.get(mapping.getNamespace());
- if (existingMapping != null) {
- existingMapping.getAttributes().putAll(mapping.getAttributes());
- } else {
- mappingByNamespace.put(mapping.getNamespace(), mapping);
- }
- }
-
- public Map<String, String> getAllAttributes(String prefix) {
- Map<String, String> attributes = null;
- for (int i = 0; i <= prefix.length(); i++) {
- ProductRepositoryMapping mapping = getMapping(prefix.substring(0, i));
- if (mapping != null) {
- if (attributes == null) {
- attributes = new HashMap<String, String>();
- }
- attributes.putAll(mapping.getAttributes());
- }
- }
- if (attributes != null) {
- return attributes;
- } else {
- return Collections.emptyMap();
- }
- }
-
- public String getAttribute(String prefix, String key) {
- for (int i = prefix.length() - 1; i >= 0; i--) {
- ProductRepositoryMapping mapping = getMapping(prefix.substring(0, i));
- if (mapping != null) {
- String value = mapping.getAttributes().get(key);
- if (value != null) {
- return value;
- }
- }
- }
- return null;
- }
-
- public IBundleGroup getBundleGroup() {
- return bundleGroup;
- }
-
- public ProductRepositoryMapping getMapping(String prefix) {
- return mappingByNamespace.get(prefix);
- }
-
- public String getPluginId() {
- return pluginId;
- }
-
- public IProvider getProvider() {
- return provider;
- }
-
- public boolean hasMappings() {
- return !mappingByNamespace.isEmpty();
- }
-
- /**
- * @deprecated Use {@link #isInstalled()} instead
- */
- public boolean isEnabled() {
- return isInstalled();
- }
-
- public boolean isInstalled() {
- return installed;
- }
-
- public void setBundleGroup(IBundleGroup bundleGroup) {
- this.bundleGroup = bundleGroup;
- }
-
- /**
- * @deprecated Use {@link #setInstalled(boolean)} instead
- */
- public void setEnabled(boolean enabled) {
- setInstalled(enabled);
- }
-
- public void setInstalled(boolean enabled) {
- this.installed = enabled;
- }
-
- public void setPluginId(String pluginId) {
- this.pluginId = pluginId;
- }
-
- public void setProvider(IProvider provider) {
- this.provider = provider;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProvider.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProvider.java
deleted file mode 100644
index c78130c3c..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider;
-
-/**
- * @author Steffen Pingel
- */
-public class SupportProvider extends AbstractSupportElement implements IProvider {
-
- private SupportCategory category;
-
- private List<IProduct> products;
-
- public SupportProvider() {
- }
-
- public SupportCategory getCategory() {
- return category;
- }
-
- public void setCategory(SupportCategory category) {
- this.category = category;
- }
-
- public void add(IProduct provider) {
- if (products == null) {
- products = new ArrayList<IProduct>();
- }
- products.add(provider);
- }
-
- public void remove(IProduct provider) {
- if (products != null) {
- products.remove(provider);
- }
- }
-
- public List<IProduct> getProducts() {
- return new ArrayList<IProduct>(products);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProviderManager.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProviderManager.java
deleted file mode 100644
index 651904603..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProviderManager.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.branding.IBundleGroupConstants;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author Steffen Pingel
- */
-public class SupportProviderManager {
-
- private static final String ATTRIBUTE_CATEGORY_ID = "categoryId"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_DESCRIPTION = "description"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_FEATURE_ID = "featureId"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_ICON = "icon"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_ID = "id"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_NAMESPACE = "namespace"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_PLUGIN_ID = "pluginId"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_PRODUCT_ID = "productId"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_PROVIDER_ID = "providerId"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_REPOSITORY_KIND = "kind"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_REPOSITORY_URL = "url"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_URL = "url"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_VALUE = "value"; //$NON-NLS-1$
-
- private static final String ATTRIBUTE_WEIGHT = "weight"; //$NON-NLS-1$
-
- private static final String ELEMENT_CATEGORY = "category"; //$NON-NLS-1$
-
- private static final String ELEMENT_MAPPING = "mapping"; //$NON-NLS-1$
-
- private static final String ELEMENT_PRODUCT = "product"; //$NON-NLS-1$
-
- private static final String ELEMENT_PROPERTY = "property"; //$NON-NLS-1$
-
- private static final String ELEMENT_PROVIDER = "provider"; //$NON-NLS-1$
-
- private static final String ELEMENT_REPOSITORY = "repository"; //$NON-NLS-1$
-
- private static final String EXTENSION_ID_PLUGIN_SUPPORT = "org.eclipse.mylyn.tasks.bugs.support"; //$NON-NLS-1$
-
- private HashMap<String, IBundleGroup> bundleGroupById;
-
- private List<SupportCategory> categories;
-
- private SupportProduct defaultProduct;
-
- private Map<String, SupportProduct> productById;
-
- private Map<String, SupportProvider> providerById;
-
- public SupportProviderManager() {
- readExtensions();
- }
-
- public void addCategory(SupportCategory category) {
- categories.add(category);
- }
-
- public boolean addProduct(SupportProduct product) {
- if (providerById.containsKey(product.getId())) {
- return false;
- }
- productById.put(product.getId(), product);
- return true;
- }
-
- public boolean addProvider(SupportProvider provider) {
- if (providerById.containsKey(provider.getId())) {
- return false;
- }
- providerById.put(provider.getId(), provider);
- return true;
- }
-
- private IBundleGroup getBundleGroup(String featureId) {
- if (bundleGroupById == null) {
- bundleGroupById = new HashMap<String, IBundleGroup>();
- IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
- if (providers != null) {
- for (IBundleGroupProvider provider : providers) {
- for (IBundleGroup bundleGroup : provider.getBundleGroups()) {
- bundleGroupById.put(bundleGroup.getIdentifier(), bundleGroup);
- }
- }
- }
- }
- return bundleGroupById.get(featureId);
- }
-
- public Collection<SupportCategory> getCategories() {
- return Collections.unmodifiableList(categories);
- }
-
- public SupportCategory getCategory(String categoryId) {
- for (SupportCategory category : categories) {
- if (category.getId().equals(categoryId)) {
- return category;
- }
- }
- return null;
- }
-
- public SupportProduct getDefaultProduct() {
- return defaultProduct;
- }
-
- public SupportProduct getProduct(String productId) {
- return productById.get(productId);
- }
-
- public Collection<SupportProduct> getProducts() {
- return Collections.unmodifiableCollection(productById.values());
- }
-
- public SupportProvider getProvider(String providerId) {
- return providerById.get(providerId);
- }
-
- public Collection<SupportProvider> getProviders() {
- return Collections.unmodifiableCollection(providerById.values());
- }
-
- private boolean readAttributes(IConfigurationElement element, AbstractSupportElement item) {
- item.setId(element.getAttribute(ATTRIBUTE_ID));
- item.setName(element.getAttribute(ATTRIBUTE_NAME));
- item.setDescription(element.getAttribute(ATTRIBUTE_DESCRIPTION));
- item.setUrl(element.getAttribute(ATTRIBUTE_URL));
- String iconPath = element.getAttribute(ATTRIBUTE_ICON);
- if (iconPath != null) {
- ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(element.getContributor().getName(),
- iconPath);
- if (descriptor != null) {
- item.setIcon(descriptor);
- }
- }
-
- // optionally complement data from referenced feature
- String featureId = element.getAttribute(ATTRIBUTE_FEATURE_ID);
- if (featureId != null) {
- IBundleGroup bundleGroup = getBundleGroup(featureId);
- if (bundleGroup == null) {
- // indicate that the specified feature was not found
- return false;
- } else {
- if (item.getName() == null) {
- item.setName(bundleGroup.getName());
- }
- if (item.getDescription() == null) {
- item.setDescription(bundleGroup.getDescription());
- }
- if (item.getIcon() == null) {
- String imageUrl = bundleGroup.getProperty(IBundleGroupConstants.FEATURE_IMAGE);
- if (imageUrl != null) {
- try {
- item.setIcon(ImageDescriptor.createFromURL(new URL(imageUrl)));
- } catch (MalformedURLException e) {
- // ignore
- }
- }
- }
- if (item instanceof SupportProduct) {
- ((SupportProduct) item).setBundleGroup(bundleGroup);
- }
- }
- }
- return true;
- }
-
- private void readCategory(IConfigurationElement element) {
- SupportCategory category = new SupportCategory();
- readAttributes(element, category);
- String weight = element.getAttribute(ATTRIBUTE_WEIGHT);
- if (weight != null) {
- try {
- category.setWeight(Integer.parseInt(weight));
- } catch (NumberFormatException e) {
- // ignore
- }
- }
- categories.add(category);
- }
-
- private void readExtensions() {
- categories = new ArrayList<SupportCategory>();
- productById = new HashMap<String, SupportProduct>();
- providerById = new HashMap<String, SupportProvider>();
- defaultProduct = new SupportProduct();
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_ID_PLUGIN_SUPPORT);
- IExtension[] extensions = extensionPoint.getExtensions();
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELEMENT_CATEGORY)) {
- readCategory(element);
- }
- }
- }
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELEMENT_PROVIDER)) {
- readProvider(element);
- }
- }
- }
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELEMENT_PRODUCT)) {
- readProduct(element);
- }
- }
- }
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELEMENT_MAPPING)) {
- readMapping(element);
- }
- }
- }
-
- // clear cache
- bundleGroupById = null;
- }
-
- private ProductRepositoryMapping readMapping(IConfigurationElement element) {
- String namespace = element.getAttribute(ATTRIBUTE_NAMESPACE);
- String productId = element.getAttribute(ATTRIBUTE_PRODUCT_ID);
- Map<String, String> attributes = new HashMap<String, String>();
- // repository
- for (IConfigurationElement attributeElement : element.getChildren(ELEMENT_REPOSITORY)) {
- String repositoryUrl = attributeElement.getAttribute(ATTRIBUTE_REPOSITORY_URL);
- attributes.put(IRepositoryConstants.REPOSITORY_URL, repositoryUrl);
- String connectorKind = attributeElement.getAttribute(ATTRIBUTE_REPOSITORY_KIND);
- attributes.put(IRepositoryConstants.CONNECTOR_KIND, connectorKind);
- }
- // attributes
- for (IConfigurationElement attributeElement : element.getChildren(ELEMENT_PROPERTY)) {
- String name = attributeElement.getAttribute(ATTRIBUTE_NAME);
- String value = attributeElement.getAttribute(ATTRIBUTE_VALUE);
- attributes.put(name, value);
- }
-
- if (!attributes.isEmpty()) {
- ProductRepositoryMapping mapping = new ProductRepositoryMapping(namespace);
- mapping.addAttributes(attributes);
-
- final SupportProduct product;
- if (productId == null) {
- product = defaultProduct;
- } else {
- product = getProduct(productId);
- if (product == null) {
- StatusHandler.log(new Status(
- IStatus.WARNING,
- TasksBugsPlugin.ID_PLUGIN,
- NLS.bind(
- "Mapping contributed by {0} with namespace ''{1}'' ignored, invalid product id ''{1}'' specified", //$NON-NLS-1$
- new String[] { element.getNamespaceIdentifier(), namespace, productId })));
- return null;
- }
- }
- product.addRepositoryMapping(mapping);
- return mapping;
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN, NLS.bind(
- "Mapping contributed by {0} with namespace ''{1}'' ignored, no attributes specified", //$NON-NLS-1$
- new String[] { element.getNamespaceIdentifier(), namespace })));
- return null;
- }
- }
-
- private SupportProduct readProduct(IConfigurationElement element) {
- String id = element.getAttribute(ATTRIBUTE_ID);
- String providerId = element.getAttribute(ATTRIBUTE_PROVIDER_ID);
- IProvider provider = getProvider(providerId);
- if (provider == null) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN, NLS.bind(
- "Product contributed by {0} with id ''{1}'' ignored, product id ''{2}'' is invalid", //$NON-NLS-1$
- new String[] { element.getNamespaceIdentifier(), id, providerId })));
- return null;
- }
- boolean enabled = true;
- String pluginId = element.getAttribute(ATTRIBUTE_PLUGIN_ID);
- if (pluginId != null) {
- enabled &= Platform.getBundle(pluginId) != null;
- }
- SupportProduct product = new SupportProduct();
- enabled &= readAttributes(element, product);
- // disable products that do not have a corresponding plug-in or feature installed
- product.setInstalled(enabled);
- product.setProvider(provider);
- if (!addProduct(product)) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN, NLS.bind(
- "Product contributed by {0} ignored, id ''{1}'' already present", //$NON-NLS-1$
- element.getNamespaceIdentifier(), id)));
- return null;
- }
- ((SupportProvider) provider).add(product);
- productById.put(id, product);
- return product;
- }
-
- private SupportProvider readProvider(IConfigurationElement element) {
- String id = element.getAttribute(ATTRIBUTE_ID);
- SupportProvider provider = new SupportProvider();
- readAttributes(element, provider);
- if (!addProvider(provider)) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN, NLS.bind(
- "Provider contributed by {0} ignored, id ''{1}'' already present", //$NON-NLS-1$
- element.getNamespaceIdentifier(), id)));
- return null;
- }
- String categoryId = element.getAttribute(ATTRIBUTE_CATEGORY_ID);
- SupportCategory category = getCategory(categoryId);
- if (category == null) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN, NLS.bind(
- "Provider contributed by {0} ignored with id ''{1}'' ignored, category id ''{2}'' is invalid", //$NON-NLS-1$
- new String[] { element.getNamespaceIdentifier(), id, categoryId })));
- return null;
- }
- providerById.put(id, provider);
- category.add(provider);
- provider.setCategory(category);
- return provider;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportRequest.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportRequest.java
deleted file mode 100644
index 8d6cc52e1..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportRequest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ISupportRequest;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ITaskContribution;
-
-/**
- * @author Steffen Pingel
- */
-public class SupportRequest implements ISupportRequest {
-
- private final Map<String, ITaskContribution> contributionByProductId;
-
- private final IStatus status;
-
- private final SupportProviderManager providerManager;
-
- private AttributeTaskMapper defaultContribution;
-
- private final IProduct product;
-
- public SupportRequest(SupportProviderManager providerManager, IStatus status, IProduct product) {
- this.providerManager = providerManager;
- this.status = status;
- this.contributionByProductId = new HashMap<String, ITaskContribution>();
- if (product != null) {
- this.product = product;
- this.defaultContribution = process(getNamespace(), (SupportProduct) product);
- } else {
- this.product = null;
- process();
- }
- }
-
- public SupportRequest(SupportProviderManager providerManager, IStatus status) {
- this(providerManager, status, null);
- }
-
- public ITaskContribution getOrCreateContribution(IProduct product) {
- ITaskContribution contribution = contributionByProductId.get(product.getId());
- if (contribution == null) {
- contribution = new AttributeTaskMapper(status, product);
- contributionByProductId.put(product.getId(), contribution);
- }
- return contribution;
-// ITaskContribution contribution = taskContributionByProductId.get(productId);
-// if (contribution == null) {
-// SupportProduct product = providerManager.getProduct(productId);
-// if (product == null) {
-// throw new IllegalArgumentException(NLS.bind("Invalid product id ''{0}''", productId)); //$NON-NLS-1$
-// }
-// contribution = new AttributeTaskMapper(status, product);
-// taskContributionByProductId.put(productId, contribution);
-// }
-// return contribution;
- }
-
- public ITaskContribution getDefaultContribution() {
- if (defaultContribution == null) {
- String namespace = getNamespace();
- Map<String, String> attributes = providerManager.getDefaultProduct().getAllAttributes(namespace);
-
- defaultContribution = new AttributeTaskMapper(status, providerManager.getDefaultProduct());
- defaultContribution.getAttributes().putAll(attributes);
- }
- return defaultContribution;
- }
-
- public IProduct getProduct() {
- return product;
- }
-
- public IStatus getStatus() {
- return status;
- }
-
- private void process() {
- String namespace = getNamespace();
- Collection<SupportProduct> products = providerManager.getProducts();
- for (SupportProduct product : products) {
- process(namespace, product);
- }
- }
-
- private AttributeTaskMapper process(String namespace, SupportProduct product) {
- Map<String, String> productAttributes = product.getAllAttributes(namespace);
- if (!productAttributes.isEmpty()) {
- // merge global and more specific product attributes
- Map<String, String> attributes = providerManager.getDefaultProduct().getAllAttributes(namespace);
- attributes.putAll(productAttributes);
-
- AttributeTaskMapper contribution = (AttributeTaskMapper) getOrCreateContribution(product);
- contribution.getAttributes().putAll(attributes);
- return contribution;
- }
- return null;
- }
-
- private String getNamespace() {
- return status.getPlugin();
- }
-
- public List<ITaskContribution> getContributions() {
- return new ArrayList<ITaskContribution>(contributionByProductId.values());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java
index 57ab61a90..2c12a1e6c 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
@@ -26,22 +23,19 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.core.runtime.Status;
import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.AbstractTaskContributor;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ISupportResponse;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ITaskContribution;
+import org.eclipse.mylyn.tasks.bugs.AbstractTaskContributor;
import org.eclipse.mylyn.tasks.core.data.TaskData;
/**
* @author Steffen Pingel
*/
-@SuppressWarnings("deprecation")
public class TaskContributorManager {
- private static final String ELEMENT_CLASS = "class"; //$NON-NLS-1$
+ private static final String ELEMENT_CLASS = "class";
- private static final String ELEMENT_TASK_CONTRIBUTOR = "contributor"; //$NON-NLS-1$
+ private static final String ELEMENT_TASK_CONTRIBUTOR = "contributor";
- private static final String EXTENSION_ID_TASK_CONTRIBUTORS = "org.eclipse.mylyn.tasks.bugs.taskContributors"; //$NON-NLS-1$
+ private static final String EXTENSION_ID_TASK_CONTRIBUTORS = "org.eclipse.mylyn.tasks.bugs.taskContributors";
private final DefaultTaskContributor defaultTaskContributor = new DefaultTaskContributor();
@@ -49,9 +43,6 @@ public class TaskContributorManager {
private final List<AbstractTaskContributor> taskContributors = new CopyOnWriteArrayList<AbstractTaskContributor>();
- public TaskContributorManager() {
- }
-
public void addErrorReporter(AbstractTaskContributor taskContributor) {
taskContributors.add(taskContributor);
}
@@ -69,136 +60,83 @@ public class TaskContributorManager {
return defaultTaskContributor.getEditorId(status);
}
- @Deprecated
- public void postProcess(final IStatus status, final TaskData taskData) {
- readExtensions();
-
- for (final AbstractTaskContributor contributor : taskContributors) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e)); //$NON-NLS-1$
- }
+ private synchronized void readExtensions() {
+ if (readExtensions) {
+ return;
+ }
+ readExtensions = true;
- public void run() throws Exception {
- contributor.postProcess(status, taskData);
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_ID_TASK_CONTRIBUTORS);
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for (IExtension extension : extensions) {
+ IConfigurationElement[] elements = extension.getConfigurationElements();
+ for (IConfigurationElement element : elements) {
+ if (element.getName().equals(ELEMENT_TASK_CONTRIBUTOR)) {
+ readTaskContributor(element);
}
- });
+ }
}
}
- public void process(final ITaskContribution contribution) {
- readExtensions();
-
- for (final AbstractTaskContributor contributor : taskContributors) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e)); //$NON-NLS-1$
- }
-
- public void run() throws Exception {
- contributor.process(contribution);
- }
- });
+ private void readTaskContributor(IConfigurationElement element) {
+ try {
+ Object object = element.createExecutableExtension(ELEMENT_CLASS);
+ if (object instanceof AbstractTaskContributor) {
+ taskContributors.add((AbstractTaskContributor) object);
+ } else {
+ StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN,
+ "Could not load task contributor extenstion: \"" + object.getClass().getCanonicalName() + "\""
+ + " does not implement \"" + AbstractTaskContributor.class.getCanonicalName() + "\""));
+ }
+ } catch (CoreException e) {
+ StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN,
+ "Could not load task contributor extension", e));
}
- defaultTaskContributor.process(contribution);
}
- public void postProcess(final ISupportResponse response) {
+ public void removeErrorReporter(AbstractTaskContributor taskContributor) {
+ taskContributors.remove(taskContributor);
+ }
+
+ public void postProcess(final IStatus status, final TaskData taskData) {
readExtensions();
for (final AbstractTaskContributor contributor : taskContributors) {
SafeRunner.run(new ISafeRunnable() {
public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e)); //$NON-NLS-1$
+ StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e));
}
public void run() throws Exception {
- contributor.postProcess(response);
+ contributor.postProcess(status, taskData);
}
});
}
- defaultTaskContributor.postProcess(response);
}
- @Deprecated
- public void preProcess(final IStatus status, final AttributeTaskMapper contribution) {
+ public void preProcess(final IStatus status, final Map<String, String> attributes) {
readExtensions();
final boolean[] handled = new boolean[1];
for (final AbstractTaskContributor contributor : taskContributors) {
SafeRunner.run(new ISafeRunnable() {
public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e)); //$NON-NLS-1$
+ StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e));
}
public void run() throws Exception {
Map<String, String> contributorAttributes = contributor.getAttributes(status);
if (contributorAttributes != null) {
handled[0] = true;
- contribution.getAttributes().putAll(contributorAttributes);
+ attributes.putAll(contributorAttributes);
}
}
});
}
if (!handled[0]) {
- contribution.getAttributes().putAll(defaultTaskContributor.getAttributes(status));
- }
- }
-
- public void preProcess(final SupportRequest request) {
- readExtensions();
-
- for (final AbstractTaskContributor contributor : taskContributors) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Task contributor failed", e)); //$NON-NLS-1$
- }
-
- public void run() throws Exception {
- contributor.preProcess(request);
- }
- });
- }
- defaultTaskContributor.preProcess(request);
- }
-
- private synchronized void readExtensions() {
- if (readExtensions) {
- return;
- }
- readExtensions = true;
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_ID_TASK_CONTRIBUTORS);
- IExtension[] extensions = extensionPoint.getExtensions();
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELEMENT_TASK_CONTRIBUTOR)) {
- readTaskContributor(element);
- }
- }
+ attributes.putAll(defaultTaskContributor.getAttributes(status));
}
}
- private void readTaskContributor(IConfigurationElement element) {
- try {
- Object object = element.createExecutableExtension(ELEMENT_CLASS);
- if (object instanceof AbstractTaskContributor) {
- taskContributors.add((AbstractTaskContributor) object);
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN,
- "Could not load task contributor extenstion: \"" + object.getClass().getCanonicalName() + "\"" //$NON-NLS-1$ //$NON-NLS-2$
- + " does not implement \"" + AbstractTaskContributor.class.getCanonicalName() + "\"")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksBugsPlugin.ID_PLUGIN,
- "Could not load task contributor extension", e)); //$NON-NLS-1$
- }
- }
-
- public void removeErrorReporter(AbstractTaskContributor taskContributor) {
- taskContributors.remove(taskContributor);
- }
-
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java
index 7f52fbd46..47d06ef0f 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java
@@ -1,16 +1,15 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
+import java.util.Map;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
@@ -18,9 +17,6 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.mylyn.commons.core.AbstractErrorReporter;
import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.tasks.bugs.wizards.ProductStatus;
import org.eclipse.mylyn.internal.tasks.bugs.wizards.ReportErrorWizard;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
import org.eclipse.mylyn.tasks.core.data.TaskData;
@@ -34,12 +30,9 @@ public class TaskErrorReporter {
private final TaskContributorManager contributorManager;
- private final SupportProviderManager providerManager;
-
public TaskErrorReporter() {
this.contributorManager = new TaskContributorManager();
this.mappingManager = new PluginRepositoryMappingManager();
- this.providerManager = new SupportProviderManager();
}
public TaskContributorManager getContributorManager() {
@@ -61,49 +54,120 @@ public class TaskErrorReporter {
return AbstractErrorReporter.PRIORITY_NONE;
}
-// public void process(IStatus status) {
-// Assert.isNotNull(status);
-// AttributeTaskMapper mapper = preProcess(status);
-// postProcess(mapper);
-// }
+ public void process(IStatus status) {
+ Assert.isNotNull(status);
+ AttributeTaskMapper mapper = preProcess(status);
+ postProcess(mapper);
+ }
- public SupportRequest preProcess(IStatus status, IProduct product) {
+ public AttributeTaskMapper preProcess(IStatus status) {
Assert.isNotNull(status);
- //Map<String, String> attributes = mappingManager.getAllAttributes(namespace);
- SupportRequest request = new SupportRequest(providerManager, status, product);
- contributorManager.preProcess(request);
- return request;
+ String pluginId = status.getPlugin();
+ Map<String, String> attributes = mappingManager.getAllAttributes(pluginId);
+ contributorManager.preProcess(status, attributes);
+ return new AttributeTaskMapper(attributes);
}
public void postProcess(AttributeTaskMapper mapper) {
Assert.isNotNull(mapper);
- contributorManager.process(mapper);
+ TaskData taskData;
try {
- TaskData taskData = mapper.createTaskData(null);
- mapper.setTaskData(taskData);
- contributorManager.postProcess(mapper);
+ taskData = mapper.createTaskData(null);
TasksUiInternal.createAndOpenNewTask(taskData);
} catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Unexpected error reporting error", //$NON-NLS-1$
+ StatusHandler.log(new Status(IStatus.ERROR, TasksBugsPlugin.ID_PLUGIN, "Unexpected error reporting error",
e));
}
}
public void handle(final IStatus status) {
- if (status instanceof ProductStatus) {
- SupportRequest request = preProcess(status, ((ProductStatus) status).getProduct());
- postProcess((AttributeTaskMapper) request.getDefaultContribution());
- } else {
- ReportErrorWizard wizard = new ReportErrorWizard(TaskErrorReporter.this, status);
- WizardDialog dialog = new WizardDialog(WorkbenchUtil.getShell(), wizard);
- dialog.setBlockOnOpen(false);
- dialog.setPageSize(500, 200);
- dialog.open();
- }
+ ReportErrorWizard wizard = new ReportErrorWizard(TaskErrorReporter.this, status);
+ WizardDialog dialog = new WizardDialog(TasksUiInternal.getShell(), wizard);
+ dialog.setBlockOnOpen(false);
+ dialog.open();
}
- public SupportProviderManager getProviderManager() {
- return providerManager;
- }
+ // legacy support
+// TaskRepository taskRepository = mapper.getTaskRepository();
+// if (taskRepository != null) {
+// AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
+// taskRepository.getConnectorKind());
+// if (connector instanceof AbstractLegacyRepositoryConnector) {
+// try {
+// if (openLegacyTaskEditor(status, taskRepository, mapper)) {
+// return;
+// }
+// } catch (OperationCanceledException e) {
+// return;
+// }
+// }
+// }
+//
+// @Deprecated
+// private boolean openLegacyTaskEditor(IStatus status, TaskRepository taskRepository, AttributeTaskMapper mapper) {
+// RepositoryTaskData taskData = createLegacyTaskData(taskRepository, mapper);
+// if (taskData != null) {
+// taskData.setSummary(status.getMessage());
+//
+// TaskContributorManager manager = new TaskContributorManager();
+// manager.updateAttributes(taskData, status);
+//
+// String editorId = manager.getEditorId(status);
+//
+// NewTaskEditorInput editorInput = new NewTaskEditorInput(taskRepository, taskData);
+// IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+// TasksUiUtil.openEditor(editorInput, editorId, page);
+// return true;
+// }
+// return false;
+// }
+//
+// @Deprecated
+// private RepositoryTaskData createLegacyTaskData(final TaskRepository taskRepository, AttributeTaskMapper mapper) {
+// AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
+// taskRepository.getConnectorKind());
+// if (!(connector instanceof AbstractLegacyRepositoryConnector)) {
+// return null;
+// }
+// final AbstractTaskDataHandler taskDataHandler = ((AbstractLegacyRepositoryConnector) connector).getLegacyTaskDataHandler();
+// if (taskDataHandler == null) {
+// return null;
+// }
+//
+// AbstractAttributeFactory attributeFactory = taskDataHandler.getAttributeFactory(
+// taskRepository.getRepositoryUrl(), taskRepository.getConnectorKind(), AbstractTask.DEFAULT_TASK_KIND);
+//
+// final RepositoryTaskData taskData = new RepositoryTaskData(attributeFactory, taskRepository.getConnectorKind(),
+// taskRepository.getRepositoryUrl(), TasksUiPlugin.getDefault().getNextNewRepositoryTaskId());
+// taskData.setNew(true);
+//
+// mapper.applyTo(taskData);
+//
+// try {
+// IRunnableWithProgress runnable = new IRunnableWithProgress() {
+// public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+// try {
+// if (!taskDataHandler.initializeTaskData(taskRepository, taskData, monitor)) {
+// throw new InvocationTargetException(new Exception());
+// }
+// } catch (CoreException e) {
+// throw new InvocationTargetException(e);
+// } catch (OperationCanceledException e) {
+// throw new InterruptedException();
+// }
+// }
+// };
+//
+// PlatformUI.getWorkbench().getProgressService().busyCursorWhile(runnable);
+// } catch (InvocationTargetException e) {
+// return null;
+// } catch (InterruptedException e) {
+// throw new OperationCanceledException();
+// }
+//
+// taskDataHandler.cloneTaskData(mapper.createTaskSelection().getLegacyTaskData(), taskData);
+//
+// return taskData;
+// }
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java
index 056e6a52b..2ae9d6014 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java
@@ -1,19 +1,15 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.mylyn.commons.core.AbstractErrorReporter;
-import org.eclipse.mylyn.internal.tasks.bugs.wizards.ErrorLogStatus;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
@@ -25,15 +21,11 @@ import org.osgi.framework.BundleContext;
*/
public class TasksBugsPlugin extends AbstractUIPlugin {
- public static class BugReporter extends AbstractErrorReporter {
+ public static class Reporter extends AbstractErrorReporter {
@Override
public int getPriority(IStatus status) {
- if (status instanceof ErrorLogStatus) {
- return PRIORITY_DEFAULT;
- }
- return PRIORITY_NONE;
- //return getTaskErrorReporter().getPriority(status);
+ return getTaskErrorReporter().getPriority(status);
}
@Override
@@ -52,7 +44,7 @@ public class TasksBugsPlugin extends AbstractUIPlugin {
}
}
- public static final String ID_PLUGIN = "org.eclipse.mylyn.tasks.bugs"; //$NON-NLS-1$
+ public static final String ID_PLUGIN = "org.eclipse.mylyn.tasks.bugs";
private static TasksBugsPlugin INSTANCE;
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/Messages.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/Messages.java
deleted file mode 100644
index dc90dab8c..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/Messages.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs.actions;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.bugs.actions.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String NewTaskFromErrorAction_ERROR_LOG_DATE;
-
- public static String NewTaskFromErrorAction_MESSGAE;
-
- public static String NewTaskFromErrorAction_no_stack_trace_available;
-
- public static String NewTaskFromErrorAction_PLUGIN_ID;
-
- public static String NewTaskFromErrorAction_SEVERITY;
-
- public static String NewTaskFromErrorAction_STACK_TRACE;
-
- public static String NewTaskFromMarkerHandler_LOCATION_LINE;
-
- public static String NewTaskFromMarkerHandler_New_Task_from_Marker;
-
- public static String NewTaskFromMarkerHandler_No_marker_selected;
-
- public static String NewTaskFromMarkerHandler_Resource_;
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
index 5f0aafe7f..0446a18d5 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
@@ -1,27 +1,27 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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:
- * Jeff Pound - intial API and implementation
- * Tasktop Technologies - improvements
- * Chris Aniszczyk <zx@us.ibm.com> - bug 208819
+ * Chris Aniszczyk <zx@us.ibm.com> - bug 208819
*******************************************************************************/
package org.eclipse.mylyn.internal.tasks.bugs.actions;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.commons.core.ErrorReporterManager;
-import org.eclipse.mylyn.internal.tasks.bugs.wizards.ErrorLogStatus;
+import org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.views.log.LogEntry;
-import org.eclipse.ui.internal.views.log.LogSession;
/**
* Creates a new task from the selected error log entry.
@@ -31,7 +31,7 @@ import org.eclipse.ui.internal.views.log.LogSession;
*/
public class NewTaskFromErrorAction implements IObjectActionDelegate {
- public static final String ID = "org.eclipse.mylyn.tasklist.ui.repositories.actions.create"; //$NON-NLS-1$
+ public static final String ID = "org.eclipse.mylyn.tasklist.ui.repositories.actions.create";
private LogEntry entry;
@@ -46,16 +46,16 @@ public class NewTaskFromErrorAction implements IObjectActionDelegate {
* Indicates if it should include subentries, if the {@link LogEntry} have any
*/
private void buildDescriptionFromLogEntry(LogEntry entry, StringBuilder sb, boolean includeChildren) {
- sb.append(Messages.NewTaskFromErrorAction_ERROR_LOG_DATE);
+ sb.append("\n\n-- Error Log --\nDate: ");
sb.append(entry.getDate());
- sb.append(Messages.NewTaskFromErrorAction_MESSGAE);
+ sb.append("\nMessage: ");
sb.append(entry.getMessage());
- sb.append(Messages.NewTaskFromErrorAction_SEVERITY + entry.getSeverityText());
- sb.append(Messages.NewTaskFromErrorAction_PLUGIN_ID);
+ sb.append("\nSeverity: " + entry.getSeverityText());
+ sb.append("\nPlugin ID: ");
sb.append(entry.getPluginId());
- sb.append(Messages.NewTaskFromErrorAction_STACK_TRACE);
+ sb.append("\nStack Trace:\n");
if (entry.getStack() == null) {
- sb.append(Messages.NewTaskFromErrorAction_no_stack_trace_available);
+ sb.append("no stack trace available");
} else {
sb.append(entry.getStack());
}
@@ -71,48 +71,19 @@ public class NewTaskFromErrorAction implements IObjectActionDelegate {
}
private void createTask(LogEntry entry) {
- // FIXME reenable
-// Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-// boolean includeChildren = false;
-//
-// if (entry.hasChildren()
-// && MessageDialog.openQuestion(shell, "Report Bug", "Include children of this entry in the report?")) {
-// includeChildren = true;
-// }
-// StringBuilder sb = new StringBuilder();
-// buildDescriptionFromLogEntry(entry, sb, true);
-
- ErrorLogStatus status = createStatus(entry);
-
- new ErrorReporterManager().fail(status);
- }
-
- private ErrorLogStatus createStatus(LogEntry entry) {
- ErrorLogStatus status = new ErrorLogStatus(entry.getSeverity(), entry.getPluginId(), entry.getCode(),
- entry.getMessage());
- try {
- status.setDate(entry.getDate());
- status.setStack(entry.getStack());
- LogSession session = entry.getSession();
- if (session != null) {
- status.setLogSessionData(session.getSessionData());
- }
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+ boolean includeChildren = false;
- if (entry.hasChildren()) {
- Object[] children = entry.getChildren(entry);
- if (children != null) {
- for (Object child : children) {
- if (child instanceof LogEntry) {
- ErrorLogStatus childStatus = createStatus((LogEntry) child);
- status.add(childStatus);
- }
- }
- }
- }
- } catch (Exception e) {
- // ignore any errors for setting additional attributes
+ if (entry.hasChildren()
+ && MessageDialog.openQuestion(shell, "Report Bug", "Include children of this entry in the report?")) {
+ includeChildren = true;
}
- return status;
+
+ StringBuilder sb = new StringBuilder();
+ buildDescriptionFromLogEntry(entry, sb, includeChildren);
+
+ Status status = new Status(entry.getSeverity(), entry.getPluginId(), entry.getMessage());
+ TasksBugsPlugin.getTaskErrorReporter().handle(status);
}
public void run() {
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java
deleted file mode 100644
index 64fcb7f71..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.bugs.actions;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.markers.MarkerViewHandler;
-import org.eclipse.ui.views.markers.internal.MarkerType;
-import org.eclipse.ui.views.markers.internal.MarkerTypesModel;
-
-/**
- * Creates a new task from the selected marker entry.
- *
- * @author Frank Becker
- * @since 3.0
- */
-@SuppressWarnings("restriction")
-public class NewTaskFromMarkerHandler extends MarkerViewHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IMarker[] markers = getSelectedMarkers(event);
- if (markers.length == 0 || markers[0] == null) {
- MessageDialog.openInformation(null, Messages.NewTaskFromMarkerHandler_New_Task_from_Marker,
- Messages.NewTaskFromMarkerHandler_No_marker_selected);
- return null;
- }
- final IMarker marker = markers[0];
- TaskMapping mapping = new TaskMapping() {
-
- @Override
- public String getSummary() {
- StringBuilder sb = new StringBuilder();
- try {
- MarkerType type = MarkerTypesModel.getInstance().getType(marker.getType());
- sb.append(type.getLabel() + ": "); //$NON-NLS-1$
- } catch (CoreException e) {
- // ignore
- }
-
- return sb.toString() + marker.getAttribute("message", ""); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- @Override
- public String getDescription() {
- return buildDescriptionFromMarkerItem(marker);
- }
-
- };
-
- TasksUiUtil.openNewTaskEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), mapping, null);
- return null;
- }
-
- private String buildDescriptionFromMarkerItem(IMarker marker) {
- StringBuilder sb = new StringBuilder();
- sb.append(Messages.NewTaskFromMarkerHandler_Resource_
- + marker.getResource().getFullPath().removeLastSegments(1).toString().substring(1) + "/" //$NON-NLS-1$
- + marker.getResource().getName());
- int lineNumber = marker.getAttribute(IMarker.LINE_NUMBER, -1);
- if (lineNumber != -1) {
- sb.append(Messages.NewTaskFromMarkerHandler_LOCATION_LINE + lineNumber);
- }
- return sb.toString();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java
index a770909b2..751ab24b4 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.actions;
@@ -19,7 +16,7 @@ import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
/**
- * @author Steffen Pingel
+ * @author Mik Kersten
*/
public class ReportBugAction implements IWorkbenchWindowActionDelegate {
@@ -40,5 +37,4 @@ public class ReportBugAction implements IWorkbenchWindowActionDelegate {
public void selectionChanged(IAction action, ISelection selection) {
// ignore
}
-
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/messages.properties b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/messages.properties
deleted file mode 100644
index 25866a653..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/messages.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-NewTaskFromErrorAction_ERROR_LOG_DATE=\n\n-- Error Log --\nDate:
-NewTaskFromErrorAction_MESSGAE=\nMessage:
-NewTaskFromErrorAction_no_stack_trace_available=no stack trace available
-NewTaskFromErrorAction_PLUGIN_ID=\nPlugin ID:
-NewTaskFromErrorAction_SEVERITY=\nSeverity:
-NewTaskFromErrorAction_STACK_TRACE=\nStack Trace:\n
-
-NewTaskFromMarkerHandler_LOCATION_LINE=\nLocation: line
-NewTaskFromMarkerHandler_New_Task_from_Marker=New Task from Marker
-NewTaskFromMarkerHandler_No_marker_selected=No marker selected.
-NewTaskFromMarkerHandler_Resource_=Resource:
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/messages.properties b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/messages.properties
deleted file mode 100644
index fd49b72aa..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/messages.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-DefaultTaskContributor_Bundle_Version=Bundle-Version
-DefaultTaskContributor_DATE=\nDate:
-DefaultTaskContributor_Error=Error
-DefaultTaskContributor_Error_Details=-- Error Details --
-DefaultTaskContributor_EXCEPTION_STACK_TRACE=\nException Stack Trace:\n
-DefaultTaskContributor_Info=Info
-DefaultTaskContributor_INSTALLED_FEATURES_AND_PLUGINS=-- Installed Features and Plug-ins --\n
-DefaultTaskContributor_MESSAGE=\nMessage:
-DefaultTaskContributor_OK=OK
-DefaultTaskContributor_PLUGIN=\nPlugin:
-DefaultTaskContributor_SESSION_DATA=\nSession Data:\n
-DefaultTaskContributor_SEVERITY=\nSeverity:
-DefaultTaskContributor_Warning=Warning
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/BundleGroupContainer.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/BundleGroupContainer.java
index 823bbe117..720b35b95 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/BundleGroupContainer.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/BundleGroupContainer.java
@@ -1,14 +1,10 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
import java.util.ArrayList;
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java
index fc571bc51..d27738653 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureGroup.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureGroup.java
index c53d68ea8..1507ffe03 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureGroup.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureGroup.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java
index 375be230e..5637669ab 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java
@@ -1,34 +1,31 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
+import org.eclipse.core.runtime.IBundleGroup;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
/**
* @author Steffen Pingel
*/
-public class ProductStatus extends Status {
+public class FeatureStatus extends Status {
- private final IProduct product;
+ private final IBundleGroup bundleGroup;
- public ProductStatus(IProduct product) {
- super(IStatus.INFO, product.getId(), ""); //$NON-NLS-1$
- this.product = product;
+ public FeatureStatus(IBundleGroup bundleGroup) {
+ super(IStatus.INFO, bundleGroup.getIdentifier(), "");
+ this.bundleGroup = bundleGroup;
}
- public IProduct getProduct() {
- return product;
+ public IBundleGroup getBundleGroup() {
+ return bundleGroup;
}
-
+
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java
deleted file mode 100644
index 9df2c1f84..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs.wizards;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.bugs.wizards.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String ReportBugOrEnhancementWizard_Report_Bug_or_Enhancement;
-
- public static String ReportErrorPage_Details;
-
- public static String ReportErrorPage_Report_as_Bug;
-
- public static String ReportErrorPage_Report_to_;
-
- public static String ReportErrorPage_Select_repository;
-
- public static String ReportErrorPage_AN_UNEXPETED_ERROR_HAS_OCCURED_IN_PLUGIN;
-
- public static String ReportErrorWizard_Report_as_Bug;
-
- public static String SelectFeaturePage_SELECT_FEATURE;
-
- public static String SelectProductPage_Other;
-
- public static String SelectProductPage_SELECT_PRODUCT;
-}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java
index 533199c69..7b7c4e3c0 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java
@@ -1,29 +1,18 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IBundleGroup;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.tasks.bugs.AbstractSupportElement;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportProduct;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportProvider;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportProviderManager;
+import org.eclipse.mylyn.internal.tasks.bugs.PluginRepositoryMappingManager;
import org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin;
import org.eclipse.mylyn.tasks.ui.TasksUiImages;
@@ -32,90 +21,55 @@ import org.eclipse.mylyn.tasks.ui.TasksUiImages;
*/
public class ReportBugOrEnhancementWizard extends Wizard {
- private class SupportContentProvider implements IStructuredContentProvider {
-
- private SupportProviderManager providerManager;
-
- private Object input;
-
- public Object[] getElements(Object inputElement) {
- if (inputElement instanceof SupportProvider) {
- List<SupportProduct> providerProducts = getProdcuts(inputElement);
- return providerProducts.toArray();
- } else if (input == inputElement) {
- List<AbstractSupportElement> elements = new ArrayList<AbstractSupportElement>();
- elements.addAll(providerManager.getProviders());
- elements.addAll(providerManager.getCategories());
- return elements.toArray();
- } else {
- return new Object[0];
- }
- }
-
- private List<SupportProduct> getProdcuts(Object inputElement) {
- Collection<SupportProduct> products = providerManager.getProducts();
- SupportProvider provider = (SupportProvider) inputElement;
- List<SupportProduct> providerProducts = new ArrayList<SupportProduct>();
- for (SupportProduct product : products) {
- if (provider.equals(product.getProvider()) && product.isInstalled()) {
- providerProducts.add(product);
- }
- }
- return providerProducts;
- }
-
- public void dispose() {
- // ignore
- }
+ private SelectProductPage selectProductPage;
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- this.input = newInput;
- this.providerManager = TasksBugsPlugin.getTaskErrorReporter().getProviderManager();
- }
-
- }
+ private PluginRepositoryMappingManager manager;
public ReportBugOrEnhancementWizard() {
setForcePreviousAndNextButtons(true);
setNeedsProgressMonitor(false);
- setWindowTitle(Messages.ReportBugOrEnhancementWizard_Report_Bug_or_Enhancement);
+ setWindowTitle("Report Bug or Enhancement");
setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
}
@Override
public void addPages() {
- SelectSupportElementPage page = new SelectSupportElementPage("selectProvider", new SupportContentProvider()); //$NON-NLS-1$
- page.setInput(new Object());
- addPage(page);
+ manager = new PluginRepositoryMappingManager();
+ selectProductPage = new SelectProductPage("selectBundleGroupProvider", manager);
+ addPage(selectProductPage);
}
@Override
public boolean canFinish() {
- return getSelectedElement() instanceof SupportProduct;
+ return getSelectedBundleGroup() != null;
}
- public AbstractSupportElement getSelectedElement() {
+ public IBundleGroup getSelectedBundleGroup() {
IWizardPage page = getContainer().getCurrentPage();
- if (page != null) {
- return ((SelectSupportElementPage) page).getSelectedElement();
+ if (page instanceof SelectProductPage) {
+ if (page.isPageComplete() && !((SelectProductPage)page).canFlipToNextPage()) {
+ return ((SelectProductPage)page).getSelectedBundleGroup();
+ }
+ } else if (page instanceof SelectFeaturePage) {
+ if (page.isPageComplete()) {
+ return ((SelectFeaturePage)page).getSelectedBundleGroup();
+ }
}
return null;
}
-
+
@Override
public boolean performFinish() {
- final AbstractSupportElement product = getSelectedElement();
- if (!(product instanceof SupportProduct)) {
- return false;
- }
-
+ final IBundleGroup bundle = getSelectedBundleGroup();
+ Assert.isNotNull(bundle);
+
// delay run this until after the dialog has been closed
getShell().getDisplay().asyncExec(new Runnable() {
public void run() {
- TasksBugsPlugin.getTaskErrorReporter().handle(new ProductStatus((IProduct) product));
- }
+ TasksBugsPlugin.getTaskErrorReporter().handle(new FeatureStatus(bundle));
+ }
});
-
+
return true;
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java
index 806260935..370f1f95d 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java
@@ -1,38 +1,26 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.ITaskContribution;
import org.eclipse.mylyn.internal.tasks.bugs.AttributeTaskMapper;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportRequest;
-import org.eclipse.osgi.util.NLS;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
/**
* @author Steffen Pingel
@@ -41,72 +29,46 @@ public class ReportErrorPage extends WizardPage {
private final IStatus status;
- private final SupportRequest request;
-
- private final List<AttributeTaskMapper> contributions;
+ private final AttributeTaskMapper mapper;
- private AttributeTaskMapper selectedContribution;
+ protected TaskRepository taskRepository;
- private Combo contributionCombo;
-
- public ReportErrorPage(SupportRequest request, IStatus status) {
- super("reportError"); //$NON-NLS-1$
- this.request = request;
+ public ReportErrorPage(AttributeTaskMapper mapper, IStatus status) {
+ super("reportError");
+ this.mapper = mapper;
this.status = status;
- this.contributions = new ArrayList<AttributeTaskMapper>();
- addContributions(request.getContributions());
- setTitle(Messages.ReportErrorPage_Report_as_Bug);
- setMessage(MessageFormat.format(Messages.ReportErrorPage_AN_UNEXPETED_ERROR_HAS_OCCURED_IN_PLUGIN,
- status.getPlugin()));
- }
-
- private void addContributions(List<ITaskContribution> contributions) {
- for (ITaskContribution contribution : contributions) {
- if (((AttributeTaskMapper) contribution).isMappingComplete()) {
- this.contributions.add((AttributeTaskMapper) contribution);
- }
- }
+ setTitle("Unexpected Error");
+ setMessage("An unexcpeted error has occured");
}
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(2, false));
+ composite.setLayout(new GridLayout(1, true));
-// Group errorGroup = new Group(composite, SWT.NONE);
-// GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(errorGroup);
-// errorGroup.setText("Details");
-// errorGroup.setLayout(new GridLayout(1, true));
+ Group errorGroup = new Group(composite, SWT.NONE);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(errorGroup);
+ errorGroup.setText("Error");
+ errorGroup.setLayout(new GridLayout(1, true));
- Label label = new Label(composite, SWT.NONE);
- label.setText(Messages.ReportErrorPage_Details);
+ Label label = new Label(errorGroup, SWT.NONE);
+ label.setText(status.getMessage());
+
+ label = new Label(composite, SWT.NONE);
+ label.setText("Plug-in: " + status.getPlugin());
- Text text = new Text(composite, SWT.MULTI | SWT.READ_ONLY | SWT.V_SCROLL | SWT.WRAP | SWT.BORDER);
- text.setText(status.getMessage());
- GridDataFactory.fillDefaults().span(2, 1).grab(true, true).applyTo(text);
+// Link link = new Link(composite, SWT.NONE);
+// link.setText("<a href=\"errorlog\">Show in error log</a>");
// space
- label = new Label(composite, SWT.NONE);
- GridDataFactory.fillDefaults().span(2, 1).applyTo(label);
+ new Label(composite, SWT.NONE);
- selectedContribution = null;
- if (!contributions.isEmpty()) {
+ if (mapper.isMappingComplete()) {
final Button defaultRepositoryButton = new Button(composite, SWT.RADIO);
+ defaultRepositoryButton.setText("Report to: " + mapper.getTaskRepository().getRepositoryLabel());
defaultRepositoryButton.setSelection(true);
- selectedContribution = contributions.get(0);
- if (contributions.size() == 1) {
- defaultRepositoryButton.setText(NLS.bind("Report to: {0}", getLabel(selectedContribution)));
- GridDataFactory.fillDefaults().span(2, 1).applyTo(defaultRepositoryButton);
- } else {
- contributionCombo = new Combo(composite, SWT.READ_ONLY);
- for (AttributeTaskMapper contribution : contributions) {
- contributionCombo.add(getLabel(contribution));
- }
- contributionCombo.select(0);
- }
final Button selectRepositoryButton = new Button(composite, SWT.RADIO);
- selectRepositoryButton.setText(Messages.ReportErrorPage_Select_repository);
- GridDataFactory.fillDefaults().span(2, 1).applyTo(selectRepositoryButton);
+ selectRepositoryButton.setText("Select repository");
defaultRepositoryButton.addSelectionListener(new SelectionAdapter() {
@Override
@@ -114,12 +76,7 @@ public class ReportErrorPage extends WizardPage {
if (defaultRepositoryButton.getSelection()) {
selectRepositoryButton.setSelection(false);
}
- if (contributionCombo != null) {
- contributionCombo.setEnabled(true);
- selectedContribution = contributions.get(contributionCombo.getSelectionIndex());
- } else {
- selectedContribution = contributions.get(0);
- }
+ taskRepository = mapper.getTaskRepository();
getContainer().updateButtons();
}
});
@@ -129,35 +86,26 @@ public class ReportErrorPage extends WizardPage {
public void widgetSelected(SelectionEvent event) {
if (selectRepositoryButton.getSelection()) {
defaultRepositoryButton.setSelection(false);
- if (contributionCombo != null) {
- contributionCombo.setEnabled(false);
- }
}
- selectedContribution = null;
+ taskRepository = null;
getContainer().updateButtons();
}
});
- }
- setControl(composite);
- Dialog.applyDialogFont(composite);
- }
- private String getLabel(AttributeTaskMapper contribution) {
- IProduct product = contribution.getProduct();
- if (product.getName() != null) {
- return NLS.bind("{0} - {1}", product.getProvider().getName(), product.getName());
+ taskRepository = mapper.getTaskRepository();
} else {
- return product.getProvider().getName();
+ taskRepository = null;
}
+ setControl(composite);
}
@Override
public boolean canFlipToNextPage() {
- return selectedContribution == null;
+ return taskRepository == null;
}
- public AttributeTaskMapper getSelectedContribution() {
- return selectedContribution;
+ public TaskRepository getTaskRepository() {
+ return taskRepository;
}
@Override
@@ -165,4 +113,4 @@ public class ReportErrorPage extends WizardPage {
return true;
}
-}
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java
index b55713496..83925fd49 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
@@ -14,8 +11,6 @@ package org.eclipse.mylyn.internal.tasks.bugs.wizards;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.mylyn.internal.tasks.bugs.AttributeTaskMapper;
-import org.eclipse.mylyn.internal.tasks.bugs.KeyValueMapping;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportRequest;
import org.eclipse.mylyn.internal.tasks.bugs.TaskErrorReporter;
import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
import org.eclipse.mylyn.internal.tasks.ui.wizards.NewTaskPage;
@@ -27,7 +22,7 @@ public class ReportErrorWizard extends Wizard {
private final IStatus status;
- private final SupportRequest request;
+ private final AttributeTaskMapper mapper;
private ReportErrorPage reportErrorPage;
@@ -38,28 +33,26 @@ public class ReportErrorWizard extends Wizard {
public ReportErrorWizard(TaskErrorReporter taskErrorReporter, IStatus status) {
this.taskErrorReporter = taskErrorReporter;
this.status = status;
- this.request = taskErrorReporter.preProcess(status, null);
- setWindowTitle(Messages.ReportErrorWizard_Report_as_Bug);
+ this.mapper = taskErrorReporter.preProcess(status);
+ setWindowTitle("Report Error");
}
+ @SuppressWarnings("restriction")
@Override
public void addPages() {
- reportErrorPage = new ReportErrorPage(request, status);
+ reportErrorPage = new ReportErrorPage(mapper, status);
addPage(reportErrorPage);
- KeyValueMapping defaultMapping = new KeyValueMapping(
- ((AttributeTaskMapper) request.getDefaultContribution()).getAttributes());
- newTaskPage = new NewTaskPage(ITaskRepositoryFilter.CAN_CREATE_NEW_TASK, defaultMapping);
+ newTaskPage = new NewTaskPage(ITaskRepositoryFilter.CAN_CREATE_NEW_TASK, mapper.getTaskMapping());
addPage(newTaskPage);
}
@Override
public boolean performFinish() {
- if (reportErrorPage.getSelectedContribution() != null) {
- taskErrorReporter.postProcess(reportErrorPage.getSelectedContribution());
+ if (reportErrorPage.getTaskRepository() != null) {
+ taskErrorReporter.postProcess(mapper);
return true;
} else {
return newTaskPage.performFinish();
}
}
-
}
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectFeaturePage.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectFeaturePage.java
index a723d11da..16d81588a 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectFeaturePage.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectFeaturePage.java
@@ -1,12 +1,9 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2008 Mylyn project committers 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.bugs.wizards;
@@ -15,7 +12,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
@@ -31,7 +28,7 @@ import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridLayout;
@@ -43,7 +40,7 @@ import org.eclipse.ui.branding.IBundleGroupConstants;
*/
public class SelectFeaturePage extends WizardPage {
- private static final int TABLE_HEIGHT = 200;
+ private static final int TABLE_HEIGHT = IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH;
private IBundleGroup selectedBundleGroup;
@@ -54,7 +51,7 @@ public class SelectFeaturePage extends WizardPage {
public SelectFeaturePage(String pageName, IBundleGroup[] bundleGroups) {
super(pageName);
this.bundleGroups = bundleGroups;
- setTitle(Messages.SelectFeaturePage_SELECT_FEATURE);
+ setTitle("Select a feature");
}
public void createControl(Composite parent) {
@@ -77,11 +74,7 @@ public class SelectFeaturePage extends WizardPage {
}
TableViewer viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.FILL)
- .grab(true, true)
- .hint(SWT.DEFAULT, TABLE_HEIGHT)
- .applyTo(viewer.getControl());
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).hint(SWT.DEFAULT, TABLE_HEIGHT).applyTo(viewer.getControl());
viewer.setContentProvider(new IStructuredContentProvider() {
public Object[] getElements(Object inputElement) {
@@ -105,18 +98,18 @@ public class SelectFeaturePage extends WizardPage {
}
return null;
}
-
+
@Override
public String getText(Object element) {
if (element instanceof IBundleGroup) {
IBundleGroup bundleGroup = (IBundleGroup) element;
return bundleGroup.getName();
}
- return ""; //$NON-NLS-1$
+ return "";
}
});
- viewer.setInput(TasksUiPlugin.getRepositoryManager().getRepositoryConnectors());
+ viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
@@ -147,7 +140,6 @@ public class SelectFeaturePage extends WizardPage {
viewer.setSorter(new ViewerSorter());
setControl(container);
- Dialog.applyDialogFont(container);
}
@Override
@@ -158,8 +150,8 @@ public class SelectFeaturePage extends WizardPage {
super.dispose();
}
- public IBundleGroup[] getSelectedBundleGroups() {
- return new IBundleGroup[] { selectedBundleGroup };
+ public IBundleGroup getSelectedBundleGroup() {
+ return selectedBundleGroup;
}
} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectProductPage.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectProductPage.java
index db435db7a..4629721b9 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectProductPage.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectProductPage.java
@@ -1,25 +1,24 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.bugs.wizards;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.eclipse.core.runtime.IBundleGroup;
import org.eclipse.core.runtime.IBundleGroupProvider;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
@@ -36,9 +35,10 @@ import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.mylyn.internal.tasks.bugs.AttributeTaskMapper;
import org.eclipse.mylyn.internal.tasks.bugs.IRepositoryConstants;
import org.eclipse.mylyn.internal.tasks.bugs.PluginRepositoryMappingManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridLayout;
@@ -50,25 +50,68 @@ import org.eclipse.ui.branding.IBundleGroupConstants;
*/
public class SelectProductPage extends WizardPage {
- private static final int TABLE_HEIGHT = 200;
+ private static final int TABLE_HEIGHT = IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH;
- private static final String DEFAULT_CATEGORY = Messages.SelectProductPage_Other;
+ /**
+ * A container for bundles that map to the same name.
+ */
+ private class BundleGroupContainer {
+
+ private final IBundleGroup displayGroup;
+
+ private final List<IBundleGroup> groups;
+
+ private final String name;
+
+ public BundleGroupContainer(String name, IBundleGroup displayGroup) {
+ this.name = name;
+ this.displayGroup = displayGroup;
+ this.groups = new ArrayList<IBundleGroup>();
+ this.groups.add(displayGroup);
+ }
+
+ public IBundleGroup getDisplayGroup() {
+ return displayGroup;
+ }
+
+ public void addBundleGroup(IBundleGroup bundleGroup) {
+ for (IBundleGroup group : groups) {
+ if (group.getName().equals(bundleGroup.getName())) {
+ return;
+ }
+ }
+ groups.add(bundleGroup);
+ }
+
+ public List<IBundleGroup> getGroups() {
+ return groups;
+ }
+
+ private String getName() {
+ return name;
+ }
+
+ public boolean requiresSelection() {
+ return groups.size() > 1;
+ }
+
+ }
private ImageRegistry imageRegistry;
private final PluginRepositoryMappingManager manager;
- private FeatureGroup selectedFeatureGroup;
+ private BundleGroupContainer selectedBundleGroupContainer;
public SelectProductPage(String pageName, PluginRepositoryMappingManager manager) {
super(pageName);
this.manager = manager;
- setTitle(Messages.SelectProductPage_SELECT_PRODUCT);
+ setTitle("Select a product");
}
@Override
public boolean canFlipToNextPage() {
- return selectedFeatureGroup != null && selectedFeatureGroup.requiresSelection();
+ return selectedBundleGroupContainer != null && selectedBundleGroupContainer.requiresSelection();
}
public void createControl(Composite parent) {
@@ -78,14 +121,10 @@ public class SelectProductPage extends WizardPage {
imageRegistry = new ImageRegistry(getShell().getDisplay());
- final Map<String, FeatureGroup> containerByName = getProducts();
+ final Map<String, BundleGroupContainer> containerByName = getProducts();
TableViewer viewer = new TableViewer(composite, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.FILL)
- .grab(true, true)
- .hint(SWT.DEFAULT, TABLE_HEIGHT)
- .applyTo(viewer.getControl());
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).hint(SWT.DEFAULT, TABLE_HEIGHT).applyTo(viewer.getControl());
viewer.setContentProvider(new IStructuredContentProvider() {
public void dispose() {
@@ -103,8 +142,8 @@ public class SelectProductPage extends WizardPage {
@Override
public Image getImage(Object element) {
- if (element instanceof FeatureGroup) {
- FeatureGroup product = (FeatureGroup) element;
+ if (element instanceof BundleGroupContainer) {
+ BundleGroupContainer product = (BundleGroupContainer) element;
return imageRegistry.get(product.getName());
}
return null;
@@ -112,28 +151,25 @@ public class SelectProductPage extends WizardPage {
@Override
public String getText(Object element) {
- if (element instanceof FeatureGroup) {
- FeatureGroup product = (FeatureGroup) element;
- if (product.getTitle() != null) {
- return product.getName() + "\n " + product.getTitle(); //$NON-NLS-1$
- }
+ if (element instanceof BundleGroupContainer) {
+ BundleGroupContainer product = (BundleGroupContainer) element;
return product.getName();
}
- return ""; //$NON-NLS-1$
+ return "";
}
});
- viewer.setInput(TasksUiPlugin.getRepositoryManager().getRepositoryConnectors());
+ viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- if (selection.getFirstElement() instanceof FeatureGroup) {
- selectedFeatureGroup = (FeatureGroup) selection.getFirstElement();
- if (selectedFeatureGroup.requiresSelection()) {
+ if (selection.getFirstElement() instanceof BundleGroupContainer) {
+ selectedBundleGroupContainer = (BundleGroupContainer) selection.getFirstElement();
+ if (selectedBundleGroupContainer.requiresSelection()) {
setMessage(null);
} else {
- setMessage(selectedFeatureGroup.getDescription());
+ setMessage(selectedBundleGroupContainer.getDisplayGroup().getDescription());
}
setPageComplete(true);
} else {
@@ -159,21 +195,9 @@ public class SelectProductPage extends WizardPage {
viewer.getTable().showSelection();
viewer.getTable().setFocus();
- viewer.setSorter(new ViewerSorter() {
- @Override
- public int compare(Viewer viewer, Object o1, Object o2) {
- FeatureGroup g1 = (FeatureGroup) o1;
- FeatureGroup g2 = (FeatureGroup) o2;
- int i = g1.getCategory().compareTo(g2.getCategory());
- if (i != 0) {
- return i;
- }
- return g1.getName().compareTo(g2.getName());
- }
- });
+ viewer.setSorter(new ViewerSorter());
setControl(composite);
- Dialog.applyDialogFont(composite);
}
@Override
@@ -187,15 +211,15 @@ public class SelectProductPage extends WizardPage {
@Override
public IWizardPage getNextPage() {
if (canFlipToNextPage()) {
- SelectFeaturePage page = new SelectFeaturePage("selectBundle", getSelectedBundleGroups()); //$NON-NLS-1$
+ SelectFeaturePage page = new SelectFeaturePage("selectBundle", getSelectedBundleGroups());
page.setWizard(getWizard());
return page;
}
return null;
}
- private Map<String, FeatureGroup> getProducts() {
- final Map<String, FeatureGroup> containerByName = new HashMap<String, FeatureGroup>();
+ private Map<String, BundleGroupContainer> getProducts() {
+ final Map<String, BundleGroupContainer> containerByName = new HashMap<String, BundleGroupContainer>();
IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
if (providers != null) {
for (IBundleGroupProvider provider : providers) {
@@ -207,41 +231,24 @@ public class SelectProductPage extends WizardPage {
return containerByName;
}
- private void addProduct(Map<String, FeatureGroup> featureGroupByName, IBundleGroup bundleGroup) {
+ private void addProduct(Map<String, BundleGroupContainer> containerByName, IBundleGroup bundleGroup) {
Map<String, String> attributes = manager.getAllAttributes(bundleGroup.getIdentifier());
-// AttributeTaskMapper mapper = new AttributeTaskMapper(attributes);
-// if (!mapper.isMappingComplete()) {
-// return;
-// }
+ AttributeTaskMapper mapper = new AttributeTaskMapper(attributes);
+ if (!mapper.isMappingComplete()) {
+ return;
+ }
String imageUrl = bundleGroup.getProperty(IBundleGroupConstants.FEATURE_IMAGE);
if (imageUrl == null) {
return;
}
- String productDescription = attributes.get(IRepositoryConstants.PRODUCT_DESCRIPTION);
- if (productDescription == null) {
- productDescription = bundleGroup.getDescription();
- }
-
- String productName = attributes.get(IRepositoryConstants.PRODUCT_NAME);
+ String productName = attributes.get(IRepositoryConstants.BRANDING);
if (productName == null) {
productName = bundleGroup.getName();
}
- String productTitle = attributes.get(IRepositoryConstants.PRODUCT_TITLE);
-
- String productCategory = attributes.get(IRepositoryConstants.PRODUCT_CATEGORY);
- if (productCategory == null) {
- productCategory = DEFAULT_CATEGORY;
- }
-
- String branding = attributes.get(IRepositoryConstants.BRANDING);
- if (branding == null) {
- branding = bundleGroup.getName();
- }
-
try {
ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(new URL(imageUrl));
imageRegistry.put(productName, imageDescriptor);
@@ -250,21 +257,27 @@ public class SelectProductPage extends WizardPage {
return;
}
- FeatureGroup container = featureGroupByName.get(productName);
+ BundleGroupContainer container = containerByName.get(productName);
if (container == null) {
- container = new FeatureGroup(productName, productDescription, productTitle, productCategory);
- container.addBundleGroup(bundleGroup, branding);
- featureGroupByName.put(productName, container);
+ container = new BundleGroupContainer(productName, bundleGroup);
+ containerByName.put(productName, container);
} else {
- container.addBundleGroup(bundleGroup, branding);
+ container.addBundleGroup(bundleGroup);
+ }
+ }
+
+ public IBundleGroup getSelectedBundleGroup() {
+ if (selectedBundleGroupContainer != null) {
+ return selectedBundleGroupContainer.getGroups().get(0);
}
+ return null;
}
public IBundleGroup[] getSelectedBundleGroups() {
- if (selectedFeatureGroup != null) {
- return selectedFeatureGroup.getBundleGroups().toArray(new IBundleGroup[0]);
+ if (selectedBundleGroupContainer != null) {
+ return selectedBundleGroupContainer.getGroups().toArray(new IBundleGroup[0]);
}
return null;
}
-}
+} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java
deleted file mode 100644
index 083609964..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.bugs.wizards;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.commons.ui.ControlListItem;
-import org.eclipse.mylyn.internal.commons.ui.ControlListViewer;
-import org.eclipse.mylyn.internal.commons.ui.NotificationPopupColors;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFonts;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.GradientCanvas;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProvider;
-import org.eclipse.mylyn.internal.tasks.bugs.AbstractSupportElement;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportCategory;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportProduct;
-import org.eclipse.mylyn.internal.tasks.bugs.SupportProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-/**
- * @author Steffen Pingel
- */
-@SuppressWarnings("restriction")
-public class SelectSupportElementPage extends WizardPage {
-
- public class SupportElementViewer extends ControlListViewer {
-
- public SupportElementViewer(Composite parent, int style) {
- super(parent, style);
- // ignore
- }
-
- @Override
- protected ControlListItem doCreateItem(Composite parent, Object element) {
- if (element instanceof SupportCategory) {
- return new CategoryItem(parent, SWT.NONE, element);
- }
- return new SupportElementItem(parent, SWT.NONE, element);
- }
-
- }
-
- private class CategoryItem extends ControlListItem {
-
- private Label label;
-
- public CategoryItem(Composite parent, int style, Object element) {
- super(parent, style, element);
- }
-
- @Override
- protected void createContent() {
- FillLayout layout = new FillLayout();
- setLayout(layout);
-
- GradientCanvas canvas = new GradientCanvas(this, SWT.NONE);
- NotificationPopupColors color = new NotificationPopupColors(getDisplay(), JFaceResources.getResources());
- canvas.setBackgroundGradient(new Color[] { color.getGradientBegin(), color.getGradientEnd() },
- new int[] { 100 }, true);
- canvas.setLayout(new GridLayout(1, false));
-
- label = new Label(canvas, SWT.NONE);
- label.setFont(JFaceResources.getHeaderFont());
- label.setBackground(null);
-
- canvas.setSize(canvas.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
- refresh();
- }
-
- @Override
- protected void refresh() {
- AbstractSupportElement data = (AbstractSupportElement) getData();
- label.setText(data.getName());
- }
-
- @Override
- public void setForeground(Color color) {
- // ignore
- }
-
- @Override
- public void setBackground(Color color) {
- // ignore
- }
-
- }
-
- private class SupportElementItem extends ControlListItem {
-
- private ToolBar toolBar;
-
- private Label titleLabel;
-
- private Label iconLabel;
-
- private Label descriptionLabel;
-
- private ToolBarManager toolBarManager;
-
- public SupportElementItem(Composite parent, int style, Object element) {
- super(parent, style, element);
- }
-
- @Override
- protected void createContent() {
- FormLayout layout = new FormLayout();
- layout.marginHeight = 3;
- layout.marginWidth = 3;
- setLayout(layout);
-
- iconLabel = new Label(this, SWT.NONE);
- FormData fd = new FormData();
- fd.left = new FormAttachment(0);
- iconLabel.setLayoutData(fd);
-
- titleLabel = new Label(this, SWT.NONE);
- titleLabel.setFont(CommonFonts.BOLD);
- fd = new FormData();
- fd.left = new FormAttachment(iconLabel, 5);
- titleLabel.setLayoutData(fd);
-
- descriptionLabel = new Label(this, SWT.WRAP);
- fd = new FormData();
- fd.top = new FormAttachment(titleLabel, 5);
- fd.left = new FormAttachment(iconLabel, 5);
- descriptionLabel.setLayoutData(fd);
-
- toolBarManager = new ToolBarManager(SWT.FLAT);
- toolBar = toolBarManager.createControl(this);
- fd = new FormData();
- fd.right = new FormAttachment(100);
- toolBar.setLayoutData(fd);
-
- refresh();
- }
-
- @Override
- public void dispose() {
- super.dispose();
- toolBarManager.dispose();
- }
-
- @Override
- public void setForeground(Color color) {
- super.setForeground(color);
- if (isSelected()) {
- descriptionLabel.setForeground(getDisplay().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW));
- } else {
- descriptionLabel.setForeground(getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
- }
-
- }
-
- @Override
- protected void refresh() {
- AbstractSupportElement data = (AbstractSupportElement) getData();
- iconLabel.setImage(getImage(data));
- titleLabel.setText(data.getName());
- descriptionLabel.setText(data.getDescription());
-
- toolBarManager.removeAll();
- final String url = data.getUrl();
- if (url != null) {
- Action action = new Action() {
- @Override
- public void run() {
- WorkbenchUtil.openUrl(url, IWorkbenchBrowserSupport.AS_EXTERNAL);
- }
- };
- action.setImageDescriptor(CommonImages.QUESTION);
- toolBarManager.add(action);
- }
- toolBarManager.update(false);
- }
-
- @Override
- public void setHot(boolean hot) {
- super.setHot(hot);
- updateToolBar();
- }
-
- @Override
- public void setSelected(boolean select) {
- super.setSelected(select);
- updateToolBar();
- }
-
- private void updateToolBar() {
- if (toolBar != null) {
- toolBar.setVisible(isHot() || isSelected());
- }
- }
-
- }
-
- private static final int TABLE_HEIGHT = 200;
-
- private AbstractSupportElement selectedElement;
-
- private ImageRegistry imageRegistry;
-
- private final IStructuredContentProvider contentProvider;
-
- private Object input;
-
- public SelectSupportElementPage(String pageName, IStructuredContentProvider contentProvider) {
- super(pageName);
- this.contentProvider = contentProvider;
- }
-
- public Image getImage(AbstractSupportElement data) {
- if (imageRegistry == null) {
- imageRegistry = new ImageRegistry(getShell().getDisplay());
- }
- Image image = imageRegistry.get(data.getId());
- if (image == null && data.getIcon() != null) {
- imageRegistry.put(data.getId(), data.getIcon());
- image = imageRegistry.get(data.getId());
- }
- return image;
- }
-
- public void setInput(Object input) {
- this.input = input;
-
- if (input instanceof IProvider) {
- setTitle("Support Provider");
- setMessage("Select a support provider from the list.");
- } else {
- setTitle("Supported Product");
- setMessage("Select a supported product from the list.");
- }
- }
-
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout(1, true);
- container.setLayout(layout);
-
- ControlListViewer viewer = new SupportElementViewer(container, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
- GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, TABLE_HEIGHT).applyTo(viewer.getControl());
- viewer.setContentProvider(contentProvider);
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- Object object = selection.getFirstElement();
- if (object instanceof AbstractSupportElement) {
- selectedElement = (AbstractSupportElement) object;
- } else {
- selectedElement = null;
- }
- updatePageStatus();
- }
- });
- viewer.addOpenListener(new IOpenListener() {
- public void open(OpenEvent event) {
- if (getWizard().performFinish()) {
- ((WizardDialog) getContainer()).close();
- }
- }
- });
- viewer.setSorter(new ViewerSorter() {
- @SuppressWarnings("unchecked")
- @Override
- public int compare(Viewer viewer, Object o1, Object o2) {
- int cat1 = category(o1);
- int cat2 = category(o2);
- if (cat1 != cat2) {
- return cat1 - cat2;
- }
- if (o1 instanceof AbstractSupportElement && o2 instanceof AbstractSupportElement) {
- return getComparator().compare(((AbstractSupportElement) o1).getName(),
- ((AbstractSupportElement) o2).getName());
- }
- return super.compare(viewer, o1, o2);
- }
-
- @Override
- public int category(Object element) {
- if (element instanceof SupportCategory) {
- return ((SupportCategory) element).getWeight() * 2;
- } else if (element instanceof SupportProvider) {
- return ((SupportProvider) element).getCategory().getWeight() * 2 + 1;
- }
- return super.category(element);
- }
- });
- viewer.setInput(input);
-
- setPageComplete(false);
- setControl(container);
- Dialog.applyDialogFont(container);
- }
-
- @Override
- public void dispose() {
- if (imageRegistry != null) {
- imageRegistry.dispose();
- }
- super.dispose();
- }
-
- public AbstractSupportElement getSelectedElement() {
- return selectedElement;
- }
-
- private void updatePageStatus() {
- if (selectedElement instanceof SupportProvider) {
- if (contentProvider.getElements(selectedElement).length > 0) {
- setErrorMessage(null);
- setPageComplete(true);
- } else {
- setErrorMessage("The selected provider does not specify supported products.");
- setPageComplete(false);
- }
- } else if (selectedElement instanceof SupportProduct) {
- setErrorMessage(null);
- setPageComplete(true);
- }
- }
-
- @Override
- public IWizardPage getNextPage() {
- if (selectedElement instanceof SupportProvider) {
- SelectSupportElementPage page = new SelectSupportElementPage(selectedElement.getId(), contentProvider);
- page.setInput(selectedElement);
- page.setWizard(getWizard());
- return page;
- }
- return null;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties
deleted file mode 100644
index 20cce279c..000000000
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-ReportBugOrEnhancementWizard_Report_Bug_or_Enhancement=Report Bug or Enhancement
-
-ReportErrorPage_Details=Details:
-ReportErrorPage_Report_as_Bug=Report as Bug
-ReportErrorPage_Report_to_=Report to:
-ReportErrorPage_Select_repository=Select repository
-ReportErrorPage_AN_UNEXPETED_ERROR_HAS_OCCURED_IN_PLUGIN=An unexpected error has occured in plug-in {0}
-
-ReportErrorWizard_Report_as_Bug=Report as Bug
-
-SelectFeaturePage_SELECT_FEATURE=Select a feature
-
-SelectProductPage_Other=Other
-SelectProductPage_SELECT_PRODUCT=Select a product
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java
index de85c10a1..3814166e2 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java
@@ -1,31 +1,31 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2007 Mylyn project committers 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.provisional.tasks.bugs;
+package org.eclipse.mylyn.tasks.bugs;
+
+import java.util.Map;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.mylyn.tasks.core.data.TaskData;
/**
* @author Steffen Pingel
- * @since 3.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
+ * @since 3.0
*/
-public interface ISupportResponse {
+public abstract class AbstractTaskContributor {
- public IProduct getProduct();
+ public abstract Map<String, String> getAttributes(IStatus status);
- public IStatus getStatus();
+ public String getEditorId(IStatus status) {
+ return null;
+ }
- public TaskData getTaskData();
+ public void postProcess(IStatus status, TaskData taskData) {
+ }
}
diff --git a/org.eclipse.mylyn.tasks.tests/.classpath b/org.eclipse.mylyn.tasks.tests/.classpath
deleted file mode 100644
index 77f8017a9..000000000
--- a/org.eclipse.mylyn.tasks.tests/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/**"/>
- <accessrule kind="accessible" pattern="**/internal/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <accessrules>
- <accessrule kind="nonaccessible" pattern="com/sun/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.tasks.tests/.cvsignore b/org.eclipse.mylyn.tasks.tests/.cvsignore
deleted file mode 100644
index ba077a403..000000000
--- a/org.eclipse.mylyn.tasks.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.tasks.tests/.project b/org.eclipse.mylyn.tasks.tests/.project
deleted file mode 100644
index 7098e8761..000000000
--- a/org.eclipse.mylyn.tasks.tests/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.tasks.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/.api_filters b/org.eclipse.mylyn.tasks.tests/.settings/.api_filters
deleted file mode 100644
index e90b8b192..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/.api_filters
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.mylyn.tasks.tests" version="2">
- <resource path="src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java" type="org.eclipse.mylyn.tasks.tests.ui.editor.TaskUrlHyperlinkDetectorTest">
- <filter id="571519004">
- <message_arguments>
- <message_argument value="org.eclipse.mylyn.tasks.tests.ui.editor.TaskUrlHyperlinkDetectorTest.detect(String, int, int)"/>
- <message_argument value="TextViewer"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/mylyn/tasks/tests/ui/TaskHyperlinkDetectorTest.java" type="org.eclipse.mylyn.tasks.tests.ui.TaskHyperlinkDetectorTest">
- <filter id="571519004">
- <message_arguments>
- <message_argument value="org.eclipse.mylyn.tasks.tests.ui.TaskHyperlinkDetectorTest.detect(String, int, int)"/>
- <message_argument value="TextViewer"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 01d52eaf4..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:44 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26af..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.api.tools.prefs b/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 606a24aa3..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,151 +0,0 @@
-#Tue May 20 10:45:34 PDT 2008
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_PROFILE_ELEMENT_TYPE_REMOVED_API_COMPONENT=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_ADDED_FIELD=Error
-ENUM_ELEMENT_TYPE_ADDED_METHOD=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INVALID_JAVADOC_TAG=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
diff --git a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.tasks.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 299a8e89e..000000000
--- a/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,43 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Tasks Tests
-Bundle-SymbolicName: org.eclipse.mylyn.tasks.tests;singleton:=true
-Bundle-Version: 0.0.0
-Bundle-Activator: org.eclipse.mylyn.tasks.tests.TasksTestsPlugin
-Bundle-Vendor: Eclipse Mylyn
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.net,
- org.junit,
- org.eclipse.mylyn.context.core,
- org.eclipse.mylyn.context.tests,
- org.eclipse.mylyn.commons.tests,
- org.eclipse.jdt.core,
- org.eclipse.core.resources,
- org.eclipse.ui,
- org.eclipse.mylyn.tasks.ui,
- org.eclipse.mylyn.context.ui,
- org.eclipse.mylyn.tasks.core,
- org.eclipse.mylyn.monitor.ui,
- org.eclipse.ui.forms,
- org.eclipse.mylyn.resources.tests,
- org.eclipse.mylyn.monitor.core,
- org.eclipse.mylyn.commons.net,
- org.eclipse.mylyn.commons.ui,
- org.eclipse.jface.text,
- org.eclipse.test.performance,
- org.eclipse.ui.ide,
- org.eclipse.mylyn.tasks.bugs,
- org.eclipse.mylyn.commons.core,
- org.eclipse.ui.browser,
- org.eclipse.core.expressions
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: mylyn-tasklist-tests.jar
-Export-Package: org.eclipse.mylyn.tasks.tests;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.connector;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.core;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.data;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.performance;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.ui;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.ui.editor;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.util;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.tasks.tests/about.html b/org.eclipse.mylyn.tasks.tests/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.tasks.tests/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/build.properties b/org.eclipse.mylyn.tasks.tests/build.properties
deleted file mode 100644
index f2fb7265e..000000000
--- a/org.eclipse.mylyn.tasks.tests/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2006 Mylyn project committers 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
-###############################################################################
-bin.includes = META-INF/,\
- mylyn-tasklist-tests.jar,\
- about.html,\
- plugin.xml,\
- testdata/
-jars.compile.order = mylyn-tasklist-tests.jar
-source.mylyn-tasklist-tests.jar = src/
-output.mylyn-tasklist-tests.jar = bin/
-src.includes = about.html
-jre.compilation.profile = J2SE-1.5
diff --git a/org.eclipse.mylyn.tasks.tests/plugin.xml b/org.eclipse.mylyn.tasks.tests/plugin.xml
deleted file mode 100644
index af8838a72..000000000
--- a/org.eclipse.mylyn.tasks.tests/plugin.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
- <extension
- id="org.eclipse.mylyn.jira.repository"
- name="JIRA Repository"
- point="org.eclipse.mylyn.tasks.ui.repositories">
- <connectorCore
- class="org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector"
- id="org.eclipse.mylyn.tasks.tests.repositories"
- name="Mock Repository Client"/>
- <connectorUi
- class="org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnectorUi"
- id="org.eclipse.mylyn.tasks.tests.repositories.ui"
- name="Mock Repository Connector UI">
- </connectorUi>
- </extension>
-
- <extension
- point="org.eclipse.core.runtime.contentTypes">
- <!-- content types used in tests -->
- <content-type
- base-type="org.eclipse.core.runtime.text"
- file-extensions="mylyn-test-text"
- id="org.eclipse.mylyn.tasks.tests.content-txt"
- name="Test text content type"
- priority="normal">
- </content-type>
- <content-type
- base-type="org.eclipse.core.runtime.xml"
- file-extensions="mylyn-test-xml"
- id="org.eclipse.mylyn.tasks.tests.content-xml"
- name="Test XML content type"
- priority="normal">
- </content-type>
- </extension>
-
-</plugin>
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksPerformanceTests.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksPerformanceTests.java
deleted file mode 100644
index a9d1ccffe..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksPerformanceTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.mylyn.tasks.tests.performance.TaskContainerTest;
-import org.eclipse.mylyn.tasks.tests.performance.TaskListPerformanceTest;
-
-public class AllTasksPerformanceTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Test for org.eclipse.mylyn.tests.performance");
- suite.addTestSuite(TaskContainerTest.class);
- suite.addTestSuite(TaskListPerformanceTest.class);
- return suite;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java
deleted file mode 100644
index 347b36114..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.mylyn.tasks.tests.core.FileTaskAttachmentSourceTest;
-import org.eclipse.mylyn.tasks.tests.core.ITasksCoreConstantsTest;
-import org.eclipse.mylyn.tasks.tests.core.TaskListUnmatchedContainerTest;
-import org.eclipse.mylyn.tasks.tests.core.TaskRepositoryLocationTest;
-import org.eclipse.mylyn.tasks.tests.ui.ContextPerspectiveManagerTest;
-import org.eclipse.mylyn.tasks.tests.ui.RetrieveTitleFromUrlTest;
-import org.eclipse.mylyn.tasks.tests.ui.TaskAttachmentPropertyTesterTest;
-import org.eclipse.mylyn.tasks.tests.ui.TaskHyperlinkDetectorTest;
-import org.eclipse.mylyn.tasks.tests.ui.TaskRelationHyperlinkDetectorTest;
-import org.eclipse.mylyn.tasks.tests.ui.editor.EditorUtilTest;
-import org.eclipse.mylyn.tasks.tests.ui.editor.TaskEditorPartDescriptorTest;
-import org.eclipse.mylyn.tasks.tests.ui.editor.TaskUrlHyperlinkDetectorTest;
-
-/**
- * @author Mik Kersten
- * @author Shawn Minto
- */
-public class AllTasksTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Test for org.eclipse.mylyn.tasks.tests");
- suite.addTestSuite(TaskRepositoryTest.class);
- suite.addTestSuite(LinkProviderTest.class);
- suite.addTestSuite(TaskActivationActionTest.class);
- suite.addTestSuite(TaskListPresentationTest.class);
- suite.addTestSuite(TaskRepositorySorterTest.class);
- suite.addTestSuite(CopyDetailsActionTest.class);
- suite.addTestSuite(NewTaskFromSelectionActionTest.class);
- suite.addTestSuite(TaskListTest.class);
- suite.addTestSuite(ProjectRepositoryAssociationTest.class);
- suite.addTestSuite(TaskPlanningEditorTest.class);
- suite.addTestSuite(TaskListExternalizationTest.class);
- suite.addTestSuite(TaskDataManagerTest.class);
- suite.addTestSuite(TaskRepositoryManagerTest.class);
- suite.addTestSuite(TaskRepositoriesExternalizerTest.class);
- suite.addTestSuite(TaskListContentProviderTest.class);
- suite.addTestSuite(TaskListBackupManagerTest.class);
- suite.addTestSuite(TaskListSorterTest.class);
- suite.addTestSuite(TaskKeyComparatorTest.class);
- suite.addTestSuite(TaskTest.class);
- suite.addTestSuite(TaskListUiTest.class);
- suite.addTestSuite(TaskListDropAdapterTest.class);
- suite.addTestSuite(TasksUiUtilTest.class);
- suite.addTestSuite(TaskDataExportTest.class);
- suite.addTestSuite(ScheduledPresentationTest.class);
- suite.addTestSuite(TaskActivityTimingTest.class);
- suite.addTestSuite(TaskAttachmentTest.class);
- suite.addTestSuite(RepositorySettingsPageTest.class);
- suite.addTestSuite(CommentQuoterTest.class);
- suite.addTestSuite(TaskDataStoreTest.class);
- suite.addTestSuite(TaskExportImportTest.class);
- suite.addTestSuite(PersonProposalProviderTest.class);
- suite.addTestSuite(TaskRepositoryLocationTest.class);
- suite.addTestSuite(AttachmentSizeFormatterTest.class);
- suite.addTestSuite(TaskMapperTest.class);
- suite.addTestSuite(TaskListUnmatchedContainerTest.class);
- suite.addTestSuite(TaskWorkingSetTest.class);
- suite.addTestSuite(TaskActivationHistoryTest.class);
- suite.addTestSuite(TaskActivityManagerTest.class);
- suite.addTestSuite(TaskRepositoryFilterTests.class);
- suite.addTestSuite(TaskDiffUtilTest.class);
- suite.addTestSuite(RefactorRepositoryUrlOperationTest.class);
- suite.addTestSuite(StackTraceDuplicateDetectorTest.class);
- // XXX fix and reenable
- //suite.addTestSuite(MarkTaskHandlerTest.class);
- suite.addTestSuite(RepositoryTemplateManagerTest.class);
- suite.addTestSuite(TaskHyperlinkDetectorTest.class);
- suite.addTestSuite(TaskRelationHyperlinkDetectorTest.class);
- suite.addTestSuite(TaskUrlHyperlinkDetectorTest.class);
- suite.addTestSuite(TaskEditorPartDescriptorTest.class);
- suite.addTestSuite(TaskAttachmentPropertyTesterTest.class);
- suite.addTestSuite(CommentGroupStrategyTest.class);
- suite.addTestSuite(ContextPerspectiveManagerTest.class);
- suite.addTestSuite(ITasksCoreConstantsTest.class);
- suite.addTestSuite(RetrieveTitleFromUrlTest.class);
- suite.addTestSuite(EditorUtilTest.class);
- suite.addTestSuite(FileTaskAttachmentSourceTest.class);
-
- // XXX long running tests, put back?
- //suite.addTestSuite(TaskDataImportTest.class);
- //suite.addTestSuite(QueryExportImportTest.class);
- //suite.addTestSuite(BackgroundSaveTest.class);
-
- return suite;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AttachmentSizeFormatterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AttachmentSizeFormatterTest.java
deleted file mode 100644
index 0a4cf1b65..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AttachmentSizeFormatterTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.Locale;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.editors.AttachmentSizeFormatter;
-
-/**
- * Tests attachment size value formatting.
- *
- * @author Willian Mitsuda
- * @author Frank Becker
- */
-public class AttachmentSizeFormatterTest extends TestCase {
-
- public void testInvalidString() {
- AttachmentSizeFormatter formatter = AttachmentSizeFormatter.getInstance();
- assertEquals(AttachmentSizeFormatter.UNKNOWN_SIZE, formatter.format(null));
- assertEquals(AttachmentSizeFormatter.UNKNOWN_SIZE, formatter.format("x"));
- }
-
- public void testNotAValidNumber() {
- AttachmentSizeFormatter formatter = AttachmentSizeFormatter.getInstance();
- assertEquals(AttachmentSizeFormatter.UNKNOWN_SIZE, formatter.format("-5"));
- assertEquals(AttachmentSizeFormatter.UNKNOWN_SIZE, formatter.format("1.0"));
- }
-
- public void testByteFormatter() {
- AttachmentSizeFormatter formatter = new AttachmentSizeFormatter(Locale.ENGLISH);
- assertEquals("1 byte", formatter.format("1"));
- assertEquals("2 bytes", formatter.format("2"));
- assertEquals("1023 bytes", formatter.format("1023"));
- }
-
- public void testKBFormatter() {
- AttachmentSizeFormatter formatterEnglish = new AttachmentSizeFormatter(Locale.ENGLISH);
- assertEquals("1.00 KB", formatterEnglish.format("1024"));
- assertEquals("1024.00 KB", formatterEnglish.format("1048575"));
-
- AttachmentSizeFormatter formatterGerman = new AttachmentSizeFormatter(Locale.GERMAN);
- assertEquals("1,00 KB", formatterGerman.format("1024"));
- assertEquals("1024,00 KB", formatterGerman.format("1048575"));
- }
-
- public void testMBFormatter() {
- AttachmentSizeFormatter formatterEnglish = new AttachmentSizeFormatter(Locale.ENGLISH);
- assertEquals("1.00 MB", formatterEnglish.format("1048576"));
- assertEquals("1024.00 MB", formatterEnglish.format("1073741823"));
-
- AttachmentSizeFormatter formatterGerman = new AttachmentSizeFormatter(Locale.GERMAN);
- assertEquals("1,00 MB", formatterGerman.format("1048576"));
- assertEquals("1024,00 MB", formatterGerman.format("1073741823"));
- }
-
- public void testGBFormatter() {
- AttachmentSizeFormatter formatterEnglish = new AttachmentSizeFormatter(Locale.ENGLISH);
- assertEquals("1.00 GB", formatterEnglish.format("1073741824"));
-
- AttachmentSizeFormatter formatterGerman = new AttachmentSizeFormatter(Locale.GERMAN);
- assertEquals("1,00 GB", formatterGerman.format("1073741824"));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/BackgroundSaveTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/BackgroundSaveTest.java
deleted file mode 100644
index 2d918bbaa..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/BackgroundSaveTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Locale;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-
-/**
- * Tests the mechanism for saving the task data periodically.
- *
- * @author Wesley Coelho
- * @author Mik Kersten (rewrite)
- */
-public class BackgroundSaveTest extends TestCase {
-
- public void testBackgroundSave() throws InterruptedException, IOException {
- if (System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("linux")) {
- System.out.println("> BackgroundSaveTest.testBackgroundSave() not run on Linux due to IO concurrency");
- } else {
- LocalTask task = new LocalTask("1", "summary");
- String filePath = TasksUiPlugin.getDefault().getDataDirectory() + File.separator
- + ITasksCoreConstants.DEFAULT_TASK_LIST_FILE;
-
- final File file = new File(filePath);
- long previouslyModified = file.lastModified();
- TasksUiPlugin.getTaskList().addTask(task);
- TasksUiPlugin.getExternalizationManager().requestSave();
- Thread.sleep(5000);
- assertTrue(file.lastModified() > previouslyModified);
- TasksUiPlugin.getTaskList().deleteTask(task);
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentGroupStrategyTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentGroupStrategyTest.java
deleted file mode 100644
index 5300c305e..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentGroupStrategyTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jingwen Ou 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:
- * Jingwen Ou - initial implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.RepositoryPerson;
-import org.eclipse.mylyn.internal.tasks.core.TaskComment;
-import org.eclipse.mylyn.internal.tasks.ui.editors.CommentGroupStrategy;
-import org.eclipse.mylyn.internal.tasks.ui.editors.CommentGroupStrategy.CommentGroup;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Jingwen Ou
- */
-public class CommentGroupStrategyTest extends TestCase {
-
- private static final String MOCK_CURRENT_PERSON_ID = "mockCurrentPersonId";
-
- private static final String MOCK_TASK_ATTRIBUTE = "mockTaskAttribute";
-
- private static final String MOCK_TEXT = "mockText";
-
- private final List<ITaskComment> comments;
-
- private final TaskRepository repository;
-
- private final CommentGroupStrategy strategy;
-
- private final ITask task;
-
- private final TaskData taskData;
-
- public CommentGroupStrategyTest() {
- repository = TaskTestUtil.createMockRepository();
- task = TaskTestUtil.createMockTask("1");
- taskData = TaskTestUtil.createMockTaskData("1");
- comments = new ArrayList<ITaskComment>();
- strategy = new CommentGroupStrategy();
- }
-
- private TaskComment mockComment(int number, String personId, Date date) {
- return mockComment(number, personId, date, MOCK_TEXT);
- }
-
- private TaskComment mockComment(int number, String personId, Date date, String text) {
- TaskAttribute taskAttribute = taskData.getRoot().createAttribute(MOCK_TASK_ATTRIBUTE + comments.size());
- TaskComment comment = new TaskComment(repository, task, taskAttribute);
- comment.setNumber(number);
- comment.setAuthor(new RepositoryPerson(repository, personId));
- comment.setCreationDate(date);
- comment.setText(text);
- return comment;
- }
-
- @Override
- protected void setUp() throws Exception {
- comments.clear();
- }
-
- public void testGroupCommentsAuthoredLatestComment() {
- int recentComments = CommentGroupStrategy.MAX_CURRENT;
-
- // didn't author previous comments
- for (int i = 0; i < recentComments; i++) {
- comments.add(mockComment(i + 1, "OtherPerson", new Date(i + 1)));
- }
- // authored the latest comment
- comments.add(mockComment(recentComments + 1, MOCK_CURRENT_PERSON_ID, new Date(recentComments + 1)));
-
- List<CommentGroup> group = strategy.groupComments(comments, MOCK_CURRENT_PERSON_ID);
-
- assertEquals(2, group.size());
-
- CommentGroup recentGroup = group.get(0);
- assertEquals(CommentGroup.RECENT, recentGroup.getGroupName());
- assertEquals(recentComments, recentGroup.getComments().size());
-
- CommentGroup currentGroup = group.get(1);
- assertEquals(CommentGroup.CURRENT, currentGroup.getGroupName());
- assertEquals(1, currentGroup.getComments().size());
- }
-
- public void testGroupCommentsMaxCurrent() {
- // one less than max current
- int oneLessThanMaxCurrent = CommentGroupStrategy.MAX_CURRENT - 1;
-
- for (int i = 0; i < oneLessThanMaxCurrent; i++) {
- comments.add(mockComment(i + 1, MOCK_CURRENT_PERSON_ID, new Date(i + 1)));
- }
-
- List<CommentGroup> group = strategy.groupComments(comments, MOCK_CURRENT_PERSON_ID);
-
- assertEquals(1, group.size());
-
- CommentGroup currentGroup = group.get(0);
- assertEquals(CommentGroup.CURRENT, currentGroup.getGroupName());
- assertEquals(oneLessThanMaxCurrent, currentGroup.getComments().size());
- }
-
- public void testGroupCommentsNotAuthoredLastestComment() {
- // didn't author previous comments
- for (int i = 0; i < CommentGroupStrategy.MAX_CURRENT; i++) {
- comments.add(mockComment(i + 1, "OtherPerson", new Date(i + 1)));
- }
- // not even the latest comment
- comments.add(mockComment(CommentGroupStrategy.MAX_CURRENT + 1, "OtherPerson", new Date(
- CommentGroupStrategy.MAX_CURRENT + 1)));
-
- List<CommentGroup> group = strategy.groupComments(comments, MOCK_CURRENT_PERSON_ID);
-
- assertEquals(2, group.size());
-
- CommentGroup recentGroup = group.get(0);
- assertEquals(CommentGroup.RECENT, recentGroup.getGroupName());
- assertEquals(1, recentGroup.getComments().size());
-
- CommentGroup currentGroup = group.get(1);
- assertEquals(CommentGroup.CURRENT, currentGroup.getGroupName());
- assertEquals(CommentGroupStrategy.MAX_CURRENT, currentGroup.getComments().size());
- }
-
- public void testGroupComments_RecentAndOlder() {
- int total = CommentGroupStrategy.MAX_CURRENT + CommentGroupStrategy.MAX_RECENT;
- // didn't author previous comments
- for (int i = 0; i < total; i++) {
- comments.add(mockComment(i + 1, "OtherPerson", new Date(i + 1)));
- }
- // not even the latest comment
- comments.add(mockComment(total + 1, "OtherPerson", new Date(total + 1)));
-
- List<CommentGroup> group = strategy.groupComments(comments, MOCK_CURRENT_PERSON_ID);
-
- assertEquals(3, group.size());
-
- CommentGroup olderGroup = group.get(0);
- assertEquals(CommentGroup.OLDER, olderGroup.getGroupName());
- assertEquals(1, olderGroup.getComments().size());
-
- CommentGroup recentGroup = group.get(1);
- assertEquals(CommentGroup.RECENT, recentGroup.getGroupName());
- assertEquals(CommentGroupStrategy.MAX_RECENT, recentGroup.getComments().size());
-
- CommentGroup currentGroup = group.get(2);
- assertEquals(CommentGroup.CURRENT, currentGroup.getGroupName());
- assertEquals(CommentGroupStrategy.MAX_CURRENT, currentGroup.getComments().size());
- }
-
- public void testGroupCommentsRecentAndOlder2() {
- int older = 10;
- int recent = CommentGroupStrategy.MAX_RECENT;
- int total = older + recent;
- // author previous comments
- for (int i = 0; i < total; i++) {
- comments.add(mockComment(i + 1, MOCK_CURRENT_PERSON_ID, new Date(i + 1)));
- }
- // even the latest comment
- comments.add(mockComment(total + 1, MOCK_CURRENT_PERSON_ID, new Date(total + 1)));
-
- List<CommentGroup> group = strategy.groupComments(comments, MOCK_CURRENT_PERSON_ID);
-
- assertEquals(3, group.size());
-
- CommentGroup olderGroup = group.get(0);
- assertEquals(CommentGroup.OLDER, olderGroup.getGroupName());
- assertEquals(older, olderGroup.getComments().size());
-
- CommentGroup recentGroup = group.get(1);
- assertEquals(CommentGroup.RECENT, recentGroup.getGroupName());
- assertEquals(recent, recentGroup.getComments().size());
-
- CommentGroup currentGroup = group.get(2);
- assertEquals(CommentGroup.CURRENT, currentGroup.getGroupName());
- assertEquals(1, currentGroup.getComments().size());
- }
-
- // 2: current person
- // 1: current person
- public void testIsCurrentAuthoredPreviousComment() {
- comments.add(mockComment(2, MOCK_CURRENT_PERSON_ID, new Date(2)));
- boolean isCurrent = strategy.isCurrent(comments, mockComment(1, MOCK_CURRENT_PERSON_ID, new Date(1)),
- MOCK_CURRENT_PERSON_ID);
- assertEquals(false, isCurrent);
- }
-
- // 2: current person - system generated, e.g. mylyn/context/zip
- // 1: current person
- public void testIsCurrentAuthoredPreviousCommentButSystemGenerated() {
- comments.add(mockComment(2, MOCK_CURRENT_PERSON_ID, new Date(2), AttachmentUtil.CONTEXT_DESCRIPTION));
- boolean isCurrent = strategy.isCurrent(comments, mockComment(1, MOCK_CURRENT_PERSON_ID, new Date(1)),
- MOCK_CURRENT_PERSON_ID);
- assertEquals(true, isCurrent);
- }
-
- // test max current
- public void testIsCurrentMaxCurrent() {
- for (int i = 0; i < CommentGroupStrategy.MAX_CURRENT; i++) {
- comments.add(mockComment(i + 1, MOCK_CURRENT_PERSON_ID, new Date(i + 1)));
- }
-
- boolean isCurrent = strategy.isCurrent(comments, mockComment(CommentGroupStrategy.MAX_CURRENT + 1,
- MOCK_CURRENT_PERSON_ID, new Date(CommentGroupStrategy.MAX_CURRENT + 1)), MOCK_CURRENT_PERSON_ID);
- assertEquals(false, isCurrent);
- }
-
- // no comment
- public void testIsCurrentNoComment() {
- boolean isCurrent = strategy.isCurrent(comments, mockComment(1, MOCK_CURRENT_PERSON_ID, new Date(1)),
- MOCK_CURRENT_PERSON_ID);
- assertEquals(true, isCurrent);
- }
-
- // 2: another person
- // 1: current person
- public void testIsCurrentNotAuthoredPreviousComment() {
- comments.add(mockComment(2, "AnotherPerson", new Date(2), MOCK_TEXT));
- boolean isCurrent = strategy.isCurrent(comments, mockComment(1, MOCK_CURRENT_PERSON_ID, new Date(1)),
- MOCK_CURRENT_PERSON_ID);
- assertEquals(true, isCurrent);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentQuoterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentQuoterTest.java
deleted file mode 100644
index fa74cc620..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CommentQuoterTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.CommentQuoter;
-
-/**
- * Test many quoting scenarios
- *
- * @author Willian Mitsuda
- */
-public class CommentQuoterTest extends TestCase {
-
- public void testNoWrapping() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababa");
- assertEquals("> bababa\n", quotedText);
- }
-
- public void testSimpleWrapping() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababa bobobo");
- assertEquals("> bababa\n> bobobo\n", quotedText);
- }
-
- public void testNoWayToWrap() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("babababababa");
- assertEquals("> babababababa\n", quotedText);
- }
-
- public void testExactWrap() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababababa");
- assertEquals("> bababababa\n", quotedText);
- }
-
- public void testMultiLineNoWrapping() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababa\nbobobo");
- assertEquals("> bababa\n> bobobo\n", quotedText);
- }
-
- public void testMultiLineWithWrapping() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababa bebebe\nbibibibibibi bibi\nbobobo bububu");
- assertEquals("> bababa\n> bebebe\n> bibibibibibi\n> bibi\n> bobobo\n> bububu\n", quotedText);
- }
-
- public void testExcessiveSpacingWrapping() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababa bobobo");
- assertEquals("> bababa\n> bobobo\n", quotedText);
- }
-
- public void testBlankLineQuoting() {
- CommentQuoter quoter = new CommentQuoter(10);
- String quotedText = quoter.quote("bababa\n\nbobobo");
- assertEquals("> bababa\n> \n> bobobo\n", quotedText);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java
deleted file mode 100644
index 2de6d6af7..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Mik Kersten
- */
-public class CopyDetailsActionTest extends TestCase {
-
- public void testIdLabelIncluded() {
- MockTask task = new MockTask("123");
- String text = CopyTaskDetailsAction.getTextForTask(task);
- assertTrue(text.startsWith(task.getTaskKey()));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/DateRangeTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/DateRangeTest.java
deleted file mode 100644
index e87599513..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/DateRangeTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TimeZone;
-import java.util.TreeMap;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.DayDateRange;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.WeekDateRange;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Rob Elves
- */
-public class DateRangeTest extends TestCase {
-
- private static final int HOUR = 60 * 60 * 1000;
-
- public void testCompareInstant() {
- DateRange range1 = new DateRange(TaskActivityUtil.getCurrentWeek().getToday().previous().getStartDate());
- DateRange range2 = new DateRange(TaskActivityUtil.getCurrentWeek().getToday().getStartDate());
- assertEquals(-1, range1.compareTo(range2));
- assertEquals(1, range2.compareTo(range1));
- }
-
- public void testCompareRanges() {
- DateRange range1 = TaskActivityUtil.getCurrentWeek().getToday().previous();
- DateRange range2 = TaskActivityUtil.getCurrentWeek().getToday();
- assertEquals(-1, range1.compareTo(range2));
- assertEquals(1, range2.compareTo(range1));
- }
-
- public void testQueryDateRange() {
- SortedMap<DateRange, Set<ITask>> scheduledTasks = Collections.synchronizedSortedMap(new TreeMap<DateRange, Set<ITask>>());
- DateRange range1 = TaskActivityUtil.getCurrentWeek().getToday().previous();
- Set<ITask> tasks = new HashSet<ITask>();
- tasks.add(new LocalTask("1", "summaryForLocalTask"));
- scheduledTasks.put(range1, tasks);
- assertFalse(scheduledTasks.isEmpty());
- assertNotNull(scheduledTasks.get(range1));
-
- DateRange rangeTest = TaskActivityUtil.getCurrentWeek().getToday().previous();
- assertNotNull(scheduledTasks.get(rangeTest));
-
- DateRange range2 = TaskActivityUtil.getCurrentWeek().getToday();
- tasks = new HashSet<ITask>();
- tasks.add(new LocalTask("2", "summaryForLocalTask2"));
- scheduledTasks.put(range2, tasks);
-
- SortedMap<DateRange, Set<ITask>> result = scheduledTasks.subMap(range1, range2);
- assertEquals(1, result.size());
-
- DateRange range0 = TaskActivityUtil.getCurrentWeek().getToday().previous().previous();
- DateRange range3 = TaskActivityUtil.getCurrentWeek().getToday().next();
- result = scheduledTasks.subMap(range0, range3);
- assertEquals(2, result.size());
- }
-
- public void testIsWeekRange() {
- TimeZone defaultTimeZone = TimeZone.getDefault();
- try {
- TimeZone.setDefault(TimeZone.getTimeZone("PST"));
- Calendar time = TaskActivityUtil.getCalendar();
-
- time.set(2008, 9, 1);
- DateRange range = TaskActivityUtil.getWeekOf(time.getTime());
- assertTrue(WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() + 1);
- assertTrue("1 ms longer than a week, expected to be within legal interval", WeekDateRange.isWeekRange(
- range.getStartDate(), range.getEndDate()));
- range = TaskActivityUtil.getDayOf(time.getTime());
- assertFalse("only a day", WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
-
- // PST changes to PDT on Mar 9th 2008
- time.set(2008, 2, 9);
- range = TaskActivityUtil.getWeekOf(time.getTime());
- assertEquals(0, range.getStartDate().get(Calendar.DST_OFFSET));
- assertEquals(HOUR, range.getEndDate().get(Calendar.DST_OFFSET));
- assertTrue(WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() + 1);
- assertFalse("1 ms too long", WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
- range = TaskActivityUtil.getDayOf(time.getTime());
- assertFalse(WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
-
- // PDT changes to PST on Nov 2nd 2008
- time.set(2008, 10, 2);
- range = TaskActivityUtil.getWeekOf(time.getTime());
- assertEquals(HOUR, range.getStartDate().get(Calendar.DST_OFFSET));
- assertEquals(0, range.getEndDate().get(Calendar.DST_OFFSET));
- assertTrue(WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() - 1);
- assertFalse("1 ms too short", WeekDateRange.isWeekRange(range.getStartDate(), range.getEndDate()));
- } finally {
- TimeZone.setDefault(defaultTimeZone);
- }
- }
-
- public void testIsDayRange() {
- TimeZone defaultTimeZone = TimeZone.getDefault();
- try {
- TimeZone.setDefault(TimeZone.getTimeZone("PST"));
- Calendar time = TaskActivityUtil.getCalendar();
- time.set(2008, 9, 1);
- DateRange range = TaskActivityUtil.getDayOf(time.getTime());
- assertTrue(DayDateRange.isDayRange(range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() + 1);
- assertTrue("1 ms longer than a day, expected to be within legal interval", DayDateRange.isDayRange(
- range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() + HOUR);
- assertFalse("1 hour + 1 ms longer than a day", DayDateRange.isDayRange(range.getStartDate(),
- range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() - 2 * HOUR - 2);
- assertFalse("1 hour + 1 ms shorter than a day", DayDateRange.isDayRange(range.getStartDate(),
- range.getEndDate()));
- range = TaskActivityUtil.getDayOf(time.getTime());
- assertTrue("a week", DayDateRange.isDayRange(range.getStartDate(), range.getEndDate()));
-
- // PDT changes to PST on Mar 9th 2008
- time.set(2008, 2, 9);
- range = TaskActivityUtil.getDayOf(time.getTime());
- assertEquals(0, range.getStartDate().get(Calendar.DST_OFFSET));
- assertEquals(HOUR, range.getEndDate().get(Calendar.DST_OFFSET));
- assertTrue(DayDateRange.isDayRange(range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() + 1);
- assertFalse("1 ms too long", DayDateRange.isDayRange(range.getStartDate(), range.getEndDate()));
-
- // PST changes to PDT on Nov 2nd 2008
- time.set(2008, 10, 2);
- range = TaskActivityUtil.getDayOf(time.getTime());
- assertEquals(HOUR, range.getStartDate().get(Calendar.DST_OFFSET));
- assertEquals(0, range.getEndDate().get(Calendar.DST_OFFSET));
- assertTrue(DayDateRange.isDayRange(range.getStartDate(), range.getEndDate()));
- range.getStartDate().setTimeInMillis(range.getStartDate().getTimeInMillis() - 1);
- assertFalse("1 ms too short", DayDateRange.isDayRange(range.getStartDate(), range.getEndDate()));
- } finally {
- TimeZone.setDefault(defaultTimeZone);
- }
- }
-
- public void testNext() {
- Calendar time = TaskActivityUtil.getCalendar();
- time.set(2008, 11, 31);
- DayDateRange day = TaskActivityUtil.getDayOf(time.getTime());
- assertEquals(2009, day.next().getStartDate().get(Calendar.YEAR));
- assertEquals(2008, day.getStartDate().get(Calendar.YEAR));
- assertEquals(day, day.next().previous());
-
- WeekDateRange week = TaskActivityUtil.getWeekOf(time.getTime());
- assertEquals(2009, week.next().getStartDate().get(Calendar.YEAR));
- assertEquals(2008, week.getStartDate().get(Calendar.YEAR));
- assertEquals(week, week.next().previous());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/LinkProviderTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/LinkProviderTest.java
deleted file mode 100644
index 6b2a361bb..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/LinkProviderTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryManager;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class LinkProviderTest extends TestCase {
-
- public class LinkProviderStub extends AbstractTaskRepositoryLinkProvider {
-
- int executions = 0;
-
- int timeout = 0;
-
- @Override
- public TaskRepository getTaskRepository(IResource resource, IRepositoryManager repositoryManager) {
- executions++;
- try {
- Thread.sleep(timeout);
- } catch (InterruptedException e) {
- fail();
- }
- return null;
- }
- }
-
- private String defaultTimeout;
-
- private LinkProviderStub provider;
-
- @Override
- protected void setUp() throws Exception {
- defaultTimeout = System.getProperty(ITasksCoreConstants.PROPERTY_LINK_PROVIDER_TIMEOUT, "");
- provider = new LinkProviderStub();
- TasksUiPlugin.getDefault().addRepositoryLinkProvider(provider);
- }
-
- @Override
- protected void tearDown() throws Exception {
- TasksUiPlugin.getDefault().removeRepositoryLinkProvider(provider);
- System.setProperty(ITasksCoreConstants.PROPERTY_LINK_PROVIDER_TIMEOUT, defaultTimeout);
- }
-
- public void testTimeout() {
- System.setProperty(ITasksCoreConstants.PROPERTY_LINK_PROVIDER_TIMEOUT, "50");
-
- provider.timeout = 40;
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(1, provider.executions);
-
- provider.timeout = 60;
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(2, provider.executions);
-
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(2, provider.executions);
- }
-
- public void testTimeoutInfinite() {
- System.setProperty(ITasksCoreConstants.PROPERTY_LINK_PROVIDER_TIMEOUT, "50");
-
- provider.timeout = 40;
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(1, provider.executions);
-
- System.setProperty(ITasksCoreConstants.PROPERTY_LINK_PROVIDER_TIMEOUT, "-1");
-
- provider.timeout = 0;
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(2, provider.executions);
-
- provider.timeout = 60;
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(3, provider.executions);
-
- TasksUiPlugin.getDefault().getRepositoryForResource(ResourcesPlugin.getWorkspace().getRoot());
- assertEquals(4, provider.executions);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskFromSelectionActionTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskFromSelectionActionTest.java
deleted file mode 100644
index bb8af8e32..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskFromSelectionActionTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.TaskComment;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskFromSelectionAction;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class NewTaskFromSelectionActionTest extends TestCase {
-
- // FIXME causes display of modal dialog
-// public void testNoSelection() throws Exception {
-// NewTaskFromSelectionAction action = new NewTaskFromSelectionAction();
-// assertNull(action.getTaskSelection());
-// action.run();
-// action.selectionChanged(null);
-// assertNull(action.getTaskSelection());
-// }
-
- public void testComment() throws Exception {
- TaskRepository taskRepository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- TaskData taskData = new TaskData(new TaskAttributeMapper(taskRepository), "kind", "http://url", "1");
- TaskComment comment = new TaskComment(taskRepository, new MockTask("1"), taskData.getRoot().createAttribute(
- "id"));
-
- NewTaskFromSelectionAction action = new NewTaskFromSelectionAction();
- action.selectionChanged(new StructuredSelection(comment));
- assertNotNull(action.getTaskMapping());
- }
-
- public void testText() throws Exception {
- NewTaskFromSelectionAction action = new NewTaskFromSelectionAction();
- action.selectionChanged(new TextSelection(0, 0) {
- @Override
- public String getText() {
- return "text";
- }
- });
- assertNotNull(action.getTaskMapping());
-
- action.selectionChanged(new TextSelection(0, 0));
- assertNull(action.getTaskMapping());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java
deleted file mode 100644
index 21e05d5da..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.MultiRepositoryAwareWizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.SelectRepositoryPage;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.wizards.NewTaskWizard;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- */
-public class NewTaskWizardRepositorySelectionTest extends TestCase {
-
- // see bug 203801
- public void testRepositorySettingWithTaskListSelection() {
- TaskRepository mockRepository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(mockRepository);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- TaskListView view = (TaskListView) TasksUiUtil.openTasksViewInActivePerspective();
- MockTask mockTask = new MockTask("mock.task");
- TasksUiPlugin.getTaskActivityManager().scheduleNewTask(mockTask);
- TasksUiPlugin.getTaskList().addTask(mockTask);
-
- view.setFocusedMode(true);
- view.getViewer().refresh();
- view.getViewer().expandAll();
- view.getViewer().setSelection(new StructuredSelection(mockTask), true);
- assertEquals(mockTask, ((StructuredSelection) view.getViewer().getSelection()).getFirstElement());
-
- MultiRepositoryAwareWizard wizard = TasksUiInternal.createNewTaskWizard(null);
- WizardDialog dialog = null;
- dialog = new WizardDialog(shell, wizard);
- dialog.setBlockOnOpen(false);
- dialog.open();
-
- SelectRepositoryPage page = (SelectRepositoryPage) wizard.getPages()[0];
- assertTrue(page.getRepositories().contains(mockRepository));
- assertEquals(mockRepository, ((IStructuredSelection) page.getViewer().getSelection()).getFirstElement());
-
- TasksUiPlugin.getRepositoryManager().removeRepository(mockRepository,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TasksUiPlugin.getTaskList().deleteTask(mockTask);
- wizard.dispose();
- dialog.close();
- }
-
- // see bug bug 202184
- public void testDefaultWithNoTaskListSelection() {
- TaskListView view = (TaskListView) TasksUiUtil.openTasksViewInActivePerspective();
- view.getViewer().setSelection(new StructuredSelection());
-
- NewTaskWizard wizard = new NewTaskWizard(null, null);
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- WizardDialog dialog = null;
- dialog = new WizardDialog(shell, wizard);
- dialog.setBlockOnOpen(false);
- dialog.open();
-
- SelectRepositoryPage page = (SelectRepositoryPage) wizard.getPages()[0];
- TaskRepository localRepository = TasksUiPlugin.getRepositoryManager().getRepositories(
- LocalRepositoryConnector.CONNECTOR_KIND).iterator().next();
- assertEquals(localRepository, ((IStructuredSelection) page.getViewer().getSelection()).getFirstElement());
-
- wizard.dispose();
- dialog.close();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java
deleted file mode 100644
index 417ef2247..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.PersonContentProposal;
-import org.eclipse.mylyn.internal.tasks.ui.PersonProposalProvider;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class PersonProposalProviderTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
- }
-
- public void testGetProposalsNullParameters() {
- PersonProposalProvider provider = new PersonProposalProvider((AbstractTask) null, (TaskData) null);
- IContentProposal[] result = provider.getProposals("", 0);
- assertNotNull(result);
- assertEquals(0, result.length);
-
- result = provider.getProposals(" ", 1);
- assertNotNull(result);
- assertEquals(0, result.length);
- }
-
- public void testGetProposalsCurrentTask() {
- MockTask task = new MockTask(null, "1", null);
- task.setOwner("foo");
- PersonProposalProvider provider = new PersonProposalProvider(task, (TaskData) null);
- IContentProposal[] result = provider.getProposals("", 0);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo", result[0].getContent());
-
- result = provider.getProposals("a", 1);
- assertNotNull(result);
- assertEquals(0, result.length);
-
- result = provider.getProposals("fo", 2);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo", result[0].getContent());
-
- result = provider.getProposals("", 0);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo", result[0].getContent());
- }
-
- public void testGetProposalsMultipleAddresses() {
- IContentProposal[] result;
-
- MockTask task = new MockTask(null, "1", null);
- task.setOwner("foo");
- PersonProposalProvider provider = new PersonProposalProvider(task, (TaskData) null);
-
- result = provider.getProposals("f,xx", 1);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo,xx", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(3, result[0].getCursorPosition());
-
- result = provider.getProposals("f xx", 1);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo xx", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(3, result[0].getCursorPosition());
-
- result = provider.getProposals("a,xx", 1);
- assertNotNull(result);
- assertEquals(0, result.length);
-
- result = provider.getProposals("xx,f", 4);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("xx,foo", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(6, result[0].getCursorPosition());
-
- result = provider.getProposals("xx f", 4);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("xx foo", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(6, result[0].getCursorPosition());
-
- result = provider.getProposals("xx,a", 4);
- assertNotNull(result);
- assertEquals(0, result.length);
-
- result = provider.getProposals("xyz,f,yy", 4);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("xyz,foo,yy", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(7, result[0].getCursorPosition());
-
- result = provider.getProposals("xx f yy", 4);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("xx foo yy", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(6, result[0].getCursorPosition());
-
- result = provider.getProposals("xx,a,yy", 4);
- assertNotNull(result);
- assertEquals(0, result.length);
-
- result = provider.getProposals("xx,,yy", 3);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("xx,foo,yy", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(6, result[0].getCursorPosition());
-
- result = provider.getProposals("x yy", 2);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("x foo", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(5, result[0].getCursorPosition());
-
- result = provider.getProposals(", ", 1);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals(",foo ", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(4, result[0].getCursorPosition());
-
- result = provider.getProposals(", ", 0);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo, ", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(3, result[0].getCursorPosition());
- }
-
- public void testConstructorRepositoryUrlKind() throws Exception {
- MockTask task1 = new MockTask(MockRepositoryConnector.REPOSITORY_URL, "1");
- task1.setOwner("foo");
- PersonProposalProvider provider = new PersonProposalProvider(MockRepositoryConnector.REPOSITORY_URL,
- MockRepositoryConnector.REPOSITORY_KIND);
- MockRepositoryQuery query = new MockRepositoryQuery("summary");
- TasksUiPlugin.getTaskList().addQuery(query);
- TasksUiPlugin.getTaskList().addTask(task1, query);
-
- IContentProposal[] result = provider.getProposals("f,xx", 1);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertEquals("foo,xx", result[0].getContent());
- assertEquals("foo", result[0].getLabel());
- assertEquals(3, result[0].getCursorPosition());
- }
-
- public void testCurrentUser() throws Exception {
- TaskTask task = TaskTestUtil.createMockTask("1");
- task.setOwner("user");
- TasksUiPlugin.getTaskList().addTask(task);
- TaskRepository repository = TaskTestUtil.createMockRepository();
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("user", ""), false);
- TasksUi.getRepositoryManager().addRepository(repository);
-
- PersonProposalProvider provider = new PersonProposalProvider(MockRepositoryConnector.REPOSITORY_URL,
- MockRepositoryConnector.REPOSITORY_KIND);
- IContentProposal[] result = provider.getProposals("user", 1);
- assertNotNull(result);
- assertEquals(1, result.length);
- assertTrue(((PersonContentProposal) result[0]).isCurrentUser());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ProjectRepositoryAssociationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ProjectRepositoryAssociationTest.java
deleted file mode 100644
index 48559063a..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ProjectRepositoryAssociationTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.resources.tests.ResourceTestUtil;
-import org.eclipse.mylyn.resources.tests.TestProject;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Rob Elves
- */
-public class ProjectRepositoryAssociationTest extends TestCase {
-
- private static final String REPOSITORY_URL = "http://mylyn.eclipse.org/bugs222";
-
- private static final String REPOSITORY_KIND = "bugzilla";
-
- private TestProject projectWrapper;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- projectWrapper = new TestProject(this.getClass().getName());
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- ResourceTestUtil.deleteProject(projectWrapper.getProject());
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- public void testRepositoryForProject() throws CoreException {
- assertNull(TasksUiPlugin.getDefault().getRepositoryForResource(projectWrapper.getProject()));
- TaskRepository repository = new TaskRepository(REPOSITORY_KIND, REPOSITORY_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- TasksUiPlugin.getDefault().setRepositoryForResource(projectWrapper.getProject(), repository);
- TaskRepository returnedRepository = TasksUiPlugin.getDefault().getRepositoryForResource(
- projectWrapper.getProject());
- assertNotNull(returnedRepository);
- assertEquals(REPOSITORY_KIND, returnedRepository.getConnectorKind());
- assertEquals(REPOSITORY_URL, returnedRepository.getRepositoryUrl());
-
- TasksUiPlugin.getRepositoryManager().removeRepository(repository,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- public void testRepositoryForFolder() throws CoreException {
- IFolder folder = projectWrapper.createFolder("testFolder");
- assertTrue(folder.exists());
- assertNull(TasksUiPlugin.getDefault().getRepositoryForResource(folder));
- TaskRepository repository = new TaskRepository(REPOSITORY_KIND, REPOSITORY_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- TasksUiPlugin.getDefault().setRepositoryForResource(folder, repository);
- TaskRepository returnedRepository = TasksUiPlugin.getDefault().getRepositoryForResource(folder);
- assertNotNull(returnedRepository);
- assertEquals(REPOSITORY_KIND, returnedRepository.getConnectorKind());
- assertEquals(REPOSITORY_URL, returnedRepository.getRepositoryUrl());
-
- TasksUiPlugin.getRepositoryManager().removeRepository(repository,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java
deleted file mode 100644
index 9525be803..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Jevgeni Holodkov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import junit.framework.TestCase;
-
-/**
- * @author Jevgeni Holodkov
- */
-// FIXME fix test
-public class QueryExportImportTest extends TestCase {
-
- public void testRewriteTestCases() {
- }
-
-// private File dest;
-//
-// private TaskListElementImporter taskListWriter;
-//
-// @Override
-// protected void setUp() throws Exception {
-// removeFiles(new File(TasksUiPlugin.getDefault().getDataDirectory()));
-//
-// // Create test export destination directory
-// dest = new File(TasksUiPlugin.getDefault().getDataDirectory() + File.separator + "TestDir");
-// if (dest.exists()) {
-// removeFiles(dest);
-// } else {
-// dest.mkdir();
-// }
-// assertTrue(dest.exists());
-// taskListWriter = TasksUiPlugin.getTaskListWriter();
-//
-// TaskTestUtil.resetTaskListAndRepositories();
-// }
-//
-// @Override
-// protected void tearDown() throws Exception {
-// removeFiles(dest);
-// dest.delete();
-// assertFalse(dest.exists());
-//
-// TaskTestUtil.resetTaskListAndRepositories();
-// }
-//
-// public void testExportImportQuery() throws Exception {
-// List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
-//
-// MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
-// query1.setRepositoryUrl(MockRepositoryConnector.REPOSITORY_URL);
-// MockRepositoryQuery query2 = new MockRepositoryQuery("Test Query 2");
-// query2.setRepositoryUrl(MockRepositoryConnector.REPOSITORY_URL);
-// queries.add(query1);
-// queries.add(query2);
-//
-// File outFile = new File(dest, "test-query.xml.zip");
-//
-// taskListWriter.writeQueries(queries, outFile);
-// assertTrue(outFile.exists());
-//
-// File inFile = new File(dest, "test-query.xml.zip");
-// List<RepositoryQuery> resultQueries = taskListWriter.readQueries(inFile);
-// assertEquals("2 Queries is imported", 2, resultQueries.size());
-// }
-//
-// public void testImportedQueriesNameConflictResolving1() {
-// TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
-// MockRepositoryConnector.REPOSITORY_URL);
-// TasksUiPlugin.getRepositoryManager().addRepository(repository);
-//
-// // create test data
-// List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
-//
-// MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
-// query1.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query2 = new MockRepositoryQuery("Test Query");
-// query2.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query3 = new MockRepositoryQuery("Test Query");
-// query3.setRepositoryUrl(repository.getRepositoryUrl());
-//
-// queries.add(query1);
-// queries.add(query2);
-// queries.add(query3);
-//
-// // run tested functionality
-// QueryImportAction action = new QueryImportAction();
-// action.insertQueries(queries);
-//
-// // extract results
-// Set<RepositoryQuery> queriesSet = TasksUiPlugin.getTaskList().getQueries();
-// Map<String, RepositoryQuery> queriesMap = new HashMap<String, RepositoryQuery>();
-// for (RepositoryQuery query : queriesSet) {
-// queriesMap.put(query.getHandleIdentifier(), query);
-// }
-//
-// // check that the actual result is correct
-// assertTrue("'Test Query' query inserted", queriesMap.containsKey("Test Query"));
-// assertTrue("'Test Query[1]' query inserted", queriesMap.containsKey("Test Query[1]"));
-// assertTrue("'Test Query[2]' query inserted", queriesMap.containsKey("Test Query[2]"));
-// }
-//
-// public void testImportedQueriesNameConflictResolving2() {
-// TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
-// MockRepositoryConnector.REPOSITORY_URL);
-// TasksUiPlugin.getRepositoryManager().addRepository(repository);
-//
-// // create test data
-// List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
-//
-// MockRepositoryQuery query1 = new MockRepositoryQuery("Test2");
-// query1.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query2 = new MockRepositoryQuery("Test2[1]");
-// query2.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query3 = new MockRepositoryQuery("Test2");
-// query3.setRepositoryUrl(repository.getRepositoryUrl());
-//
-// queries.add(query1);
-// queries.add(query2);
-// queries.add(query3);
-//
-// // run tested functionality
-// QueryImportAction action = new QueryImportAction();
-// action.insertQueries(queries);
-//
-// // extract results
-// Set<RepositoryQuery> queriesSet = TasksUiPlugin.getTaskList().getQueries();
-// Map<String, RepositoryQuery> queriesMap = new HashMap<String, RepositoryQuery>();
-// for (RepositoryQuery query : queriesSet) {
-// queriesMap.put(query.getHandleIdentifier(), query);
-// }
-//
-// // check that the actual result is correct
-// assertTrue("'Test2' query inserted", queriesMap.containsKey("Test2"));
-// assertTrue("'Test2[1]' query inserted", queriesMap.containsKey("Test2[1]"));
-// assertTrue("'Test2[2]' query inserted", queriesMap.containsKey("Test2[2]"));
-//
-// }
-//
-// public void testImportedBadQueriesNameConflictResolving() {
-// TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
-// MockRepositoryConnector.REPOSITORY_URL);
-// TasksUiPlugin.getRepositoryManager().addRepository(repository);
-//
-// // create test data
-// List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
-//
-// MockRepositoryQuery query1 = new MockRepositoryQuery("Test[-10]");
-// query1.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query2 = new MockRepositoryQuery("Test[ABC]");
-// query2.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query3 = new MockRepositoryQuery("Test[1]");
-// query3.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query4 = new MockRepositoryQuery("Test");
-// query4.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query5 = new MockRepositoryQuery("Test");
-// query5.setRepositoryUrl(repository.getRepositoryUrl());
-//
-// queries.add(query1);
-// queries.add(query2);
-// queries.add(query3);
-// queries.add(query4);
-// queries.add(query5);
-//
-// // run tested functionality
-// QueryImportAction action = new QueryImportAction();
-// action.insertQueries(queries);
-//
-// // extract results
-// Set<RepositoryQuery> queriesSet = TasksUiPlugin.getTaskList().getQueries();
-// Map<String, RepositoryQuery> queriesMap = new HashMap<String, RepositoryQuery>();
-// for (RepositoryQuery query : queriesSet) {
-// queriesMap.put(query.getHandleIdentifier(), query);
-// }
-//
-// // check that the actual result is correct
-// assertTrue("'Test[-10]' query inserted", queriesMap.containsKey("Test[-10]"));
-// assertTrue("'Test[ABC]' query inserted", queriesMap.containsKey("Test[ABC]"));
-// assertTrue("'Test[1]' query inserted", queriesMap.containsKey("Test[1]"));
-// assertTrue("'Test' query inserted", queriesMap.containsKey("Test"));
-// assertTrue("Another 'Test' query inserted", queriesMap.containsKey("Test[2]"));
-// }
-//
-// public void testImportedBadQueries() {
-// TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
-// MockRepositoryConnector.REPOSITORY_URL);
-// TasksUiPlugin.getRepositoryManager().addRepository(repository);
-//
-// // create test data
-// List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
-//
-// MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
-// query1.setRepositoryUrl(repository.getRepositoryUrl());
-// MockRepositoryQuery query2 = new MockRepositoryQuery("Bad Query");
-// query2.setRepositoryUrl("bad url");
-//
-// queries.add(query1);
-// queries.add(query2);
-//
-// // run tested functionality
-// QueryImportAction action = new QueryImportAction();
-// List<RepositoryQuery> badQueries = action.insertQueries(queries);
-//
-// // extract results
-// Set<RepositoryQuery> queriesSet = TasksUiPlugin.getTaskList().getQueries();
-// Map<String, RepositoryQuery> queriesMap = new HashMap<String, RepositoryQuery>();
-// for (RepositoryQuery query : queriesSet) {
-// queriesMap.put(query.getHandleIdentifier(), query);
-// }
-//
-// // check that the actual result is correct
-// assertEquals("There is a bad query", 1, badQueries.size());
-// assertEquals(query2, badQueries.get(0));
-// assertTrue("'Test Query' query inserted", queriesMap.containsKey("Test Query"));
-// }
-//
-// public void testExportImportQueryWithRepositoryInfo() throws Exception {
-// TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
-// MockRepositoryConnector.REPOSITORY_URL);
-// TasksUiPlugin.getRepositoryManager().addRepository(repository);
-//
-// // create test data
-// List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
-// MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
-// query1.setRepositoryUrl(repository.getRepositoryUrl());
-// queries.add(query1);
-//
-// File outFile = new File(dest, "test-repository-query.xml.zip");
-//
-// taskListWriter.writeQueries(queries, outFile);
-//
-// assertTrue(outFile.exists());
-//
-// List<String> files = new ArrayList<String>();
-// ZipInputStream inputStream = new ZipInputStream(new FileInputStream(outFile));
-// ZipEntry entry = null;
-// while ((entry = inputStream.getNextEntry()) != null) {
-// files.add(entry.getName());
-// }
-// inputStream.close();
-//
-// assertTrue("exported file contains a file with queries", files.contains(ITasksCoreConstants.OLD_TASK_LIST_FILE));
-// assertTrue("exported file contains a file with repositories",
-// files.contains(TaskRepositoryManager.OLD_REPOSITORIES_FILE));
-//
-// TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-// assertTrue("There are currently no repositories defined", TasksUiPlugin.getRepositoryManager().getRepository(
-// MockRepositoryConnector.REPOSITORY_URL) == null);
-//
-// List<RepositoryQuery> resultQueries = taskListWriter.readQueries(outFile);
-// Set<TaskRepository> repositories = taskListWriter.readRepositories(outFile);
-//
-// TasksUiPlugin.getRepositoryManager().insertRepositories(repositories,
-// TasksUiPlugin.getDefault().getRepositoriesFilePath());
-// QueryImportAction action = new QueryImportAction();
-// action.insertQueries(resultQueries);
-//
-// // extract results
-// Set<RepositoryQuery> queriesSet = TasksUiPlugin.getTaskList().getQueries();
-// Map<String, RepositoryQuery> queriesMap = new HashMap<String, RepositoryQuery>();
-// for (RepositoryQuery query : queriesSet) {
-// queriesMap.put(query.getHandleIdentifier(), query);
-// }
-//
-// // check that the actual result is correct
-// assertTrue("'Test Query' query inserted", queriesMap.containsKey("Test Query"));
-// assertTrue("1 repository is loaded", TasksUiPlugin.getRepositoryManager().getRepository(
-// MockRepositoryConnector.REPOSITORY_URL) != null);
-// }
-//
-// private void removeFiles(File root) {
-// if (root.isDirectory()) {
-// for (File file : root.listFiles()) {
-// if (file.isDirectory()) {
-// removeFiles(file);
-// }
-// file.delete();
-// }
-// }
-// }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java
deleted file mode 100644
index 1f2c123d9..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.util.Calendar;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
-import org.eclipse.mylyn.internal.context.core.InteractionContextManager;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.RefactorRepositoryUrlOperation;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.monitor.core.InteractionEvent;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-
-/**
- * @author Robert Elves
- * @author Steffen Pingel
- */
-public class RefactorRepositoryUrlOperationTest extends TestCase {
-
- private TaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- taskList = TasksUiPlugin.getTaskList();
- TaskTestUtil.resetTaskList();
- }
-
- public void testMigrateTaskContextFiles() throws Exception {
- File fileA = ContextCorePlugin.getContextStore().getFileForContext("http://a-1");
- fileA.createNewFile();
- fileA.deleteOnExit();
- assertTrue(fileA.exists());
- new RefactorRepositoryUrlOperation("http://a", "http://b").run(new NullProgressMonitor());
- File fileB = ContextCorePlugin.getContextStore().getFileForContext("http://b-1");
- assertTrue(fileB.exists());
- assertFalse(fileA.exists());
- }
-
- public void testMigrateQueryUrlHandles() throws Exception {
- RepositoryQuery query = new MockRepositoryQuery("mquery");
- query.setRepositoryUrl("http://foo.bar");
- query.setUrl("http://foo.bar/b");
- taskList.addQuery(query);
- assertTrue(taskList.getRepositoryQueries("http://foo.bar").size() > 0);
- new RefactorRepositoryUrlOperation("http://foo.bar", "http://bar.baz").run(new NullProgressMonitor());
- assertTrue(taskList.getRepositoryQueries("http://foo.bar").size() == 0);
- assertTrue(taskList.getRepositoryQueries("http://bar.baz").size() > 0);
- IRepositoryQuery changedQuery = taskList.getRepositoryQueries("http://bar.baz").iterator().next();
- assertEquals("http://bar.baz/b", changedQuery.getUrl());
- }
-
- public void testMigrateQueryHandles() throws Exception {
- RepositoryQuery query = new MockRepositoryQuery("mquery");
- query.setRepositoryUrl("http://a");
- taskList.addQuery(query);
- new RefactorRepositoryUrlOperation("http://a", "http://b").run(new NullProgressMonitor());
- assertFalse(taskList.getRepositoryQueries("http://b").isEmpty());
- assertTrue(taskList.getRepositoryQueries("http://a").isEmpty());
- }
-
- public void testMigrateTaskHandles() throws Exception {
- AbstractTask task = new MockTask("http://a", "123");
- AbstractTask task2 = new MockTask("http://other", "other");
- taskList.addTask(task);
- taskList.addTask(task2);
-
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://a");
- TasksUi.getRepositoryManager().addRepository(repository);
- TaskRepository repository2 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://other");
- TasksUi.getRepositoryManager().addRepository(repository2);
-
- try {
- TaskData taskData = new TaskData(new TaskAttributeMapper(repository), task.getConnectorKind(),
- task.getRepositoryUrl(), task.getTaskId());
- TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true);
-
- TaskData taskData2 = new TaskData(new TaskAttributeMapper(repository2), task2.getConnectorKind(),
- task2.getRepositoryUrl(), task2.getTaskId());
- taskData2.getRoot().createAttribute("comment").setValue("TEST");
- TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task2, taskData2, true);
-
- new RefactorRepositoryUrlOperation("http://a", "http://b").run(new NullProgressMonitor());
- repository.setRepositoryUrl("http://b");
- assertNull(taskList.getTask("http://a-123"));
- assertNotNull(taskList.getTask("http://b-123"));
- assertNotNull(TasksUi.getTaskDataManager().getTaskData(task));
- TaskData otherData = TasksUi.getTaskDataManager().getTaskData(task2);
- assertNotNull(otherData);
- assertEquals("TEST", otherData.getRoot().getAttribute("comment").getValue());
- } finally {
- TasksUiPlugin.getTaskDataManager().deleteTaskData(task);
- TasksUiPlugin.getTaskDataManager().deleteTaskData(task2);
- }
- }
-
- public void testMigrateTaskHandlesWithExplicitSet() throws Exception {
- AbstractTask task = new MockTask("http://aa", "123");
- task.setUrl("http://aa/task/123");
- taskList.addTask(task);
- new RefactorRepositoryUrlOperation("http://aa", "http://bb").run(new NullProgressMonitor());
- assertNull(taskList.getTask("http://aa-123"));
- assertNotNull(taskList.getTask("http://bb-123"));
- assertEquals("http://bb/task/123", task.getUrl());
- }
-
- public void testRefactorMetaContextHandles() throws Exception {
- String firstUrl = "http://repository1.com/bugs";
- String secondUrl = "http://repository2.com/bugs";
- AbstractTask task1 = new MockTask(firstUrl, "1");
- AbstractTask task2 = new MockTask(firstUrl, "2");
- taskList.addTask(task1);
- taskList.addTask(task2);
- Calendar startDate = Calendar.getInstance();
- Calendar endDate = Calendar.getInstance();
- endDate.add(Calendar.MINUTE, 5);
-
- Calendar startDate2 = Calendar.getInstance();
- startDate2.add(Calendar.MINUTE, 15);
- Calendar endDate2 = Calendar.getInstance();
- endDate2.add(Calendar.MINUTE, 25);
-
- ContextCorePlugin.getContextManager().resetActivityMetaContext();
- InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- assertEquals(0, metaContext.getInteractionHistory().size());
-
- ContextCorePlugin.getContextManager().processActivityMetaContextEvent(
- new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(), "origin",
- null, InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startDate.getTime(),
- endDate.getTime()));
-
- ContextCorePlugin.getContextManager().processActivityMetaContextEvent(
- new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task2.getHandleIdentifier(), "origin",
- null, InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startDate2.getTime(),
- endDate2.getTime()));
-
- assertEquals(2, metaContext.getInteractionHistory().size());
- assertEquals(60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- assertEquals(2 * 60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task2));
- new RefactorRepositoryUrlOperation(firstUrl, secondUrl).run(new NullProgressMonitor());
- metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- assertEquals(2, metaContext.getInteractionHistory().size());
- assertEquals(60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(new MockTask(secondUrl, "1")));
- assertEquals(2 * 60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(
- new MockTask(secondUrl, "2")));
- assertEquals(secondUrl + "-1", metaContext.getInteractionHistory().get(0).getStructureHandle());
- }
-
- public void testMigrateTaskHandlesUnsubmittedTask() throws Exception {
- ITask task = TasksUiUtil.createOutgoingNewTask(MockRepositoryConnector.REPOSITORY_KIND, "http://a");
- String handleIdentifier = task.getHandleIdentifier();
- taskList.addTask(task);
- assertEquals("http://a", task.getAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_REPOSITORY_URL));
-
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://a");
- TasksUi.getRepositoryManager().addRepository(repository);
-
- try {
- TaskData taskData = new TaskData(new TaskAttributeMapper(repository), repository.getConnectorKind(),
- repository.getRepositoryUrl(), "");
- ITaskDataWorkingCopy workingCopy = TasksUi.getTaskDataManager().createWorkingCopy(task, taskData);
- workingCopy.save(null, null);
-
- new RefactorRepositoryUrlOperation("http://a", "http://b").run(new NullProgressMonitor());
- repository.setRepositoryUrl("http://b");
- assertEquals(task, taskList.getTask(handleIdentifier));
- assertEquals("http://b", task.getAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_REPOSITORY_URL));
- taskData = TasksUi.getTaskDataManager().getTaskData(task);
- assertNotNull(taskData);
- assertEquals("http://b", taskData.getRepositoryUrl());
- } finally {
- TasksUiPlugin.getTaskDataManager().deleteTaskData(task);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositorySettingsPageTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositorySettingsPageTest.java
deleted file mode 100644
index 8034618fb..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositorySettingsPageTest.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class RepositorySettingsPageTest extends TestCase {
-
- public void testNeedsEncoding() {
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://localhost/");
- repository.setCharacterEncoding("UTF-8");
-
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(repository);
- page.setNeedsEncoding(true);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- page.setVisible(true);
-
- TaskRepository repository2 = page.createTaskRepository();
- assertEquals("UTF-8", repository2.getCharacterEncoding());
- }
-
- public void testNeedsEncodingFalse() {
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(null);
- page.setNeedsEncoding(false);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- page.setVisible(true);
-
- page.createTaskRepository();
- }
-
- public void testNeedsAnonyoumousLoginFalse() {
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(null);
- page.setNeedsAnonymousLogin(false);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- page.setVisible(true);
-
- assertNull(page.getAnonymousButton());
- }
-
- public void testNeedsAnonyoumousLoginNoRepository() {
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(null);
- page.setNeedsAnonymousLogin(true);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- page.setVisible(true);
-
- assertNotNull(page.getAnonymousButton());
-
- assertTrue(page.getAnonymousButton().getSelection());
- assertFalse(page.getUserNameEditor().getTextControl(page.getParent()).isEnabled());
- assertFalse(page.getPasswordEditor().getTextControl(page.getParent()).isEnabled());
- assertEquals("", page.getUserName());
- assertEquals("", page.getPassword());
- page.getAnonymousButton().setSelection(false);
- }
-
- public void testNeedsAnonyoumousLogin() {
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://localhost/");
-
- TasksUiPlugin.getDefault().addRepositoryConnectorUi(new MockRepositoryConnectorUi());
-
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(repository);
- page.setNeedsAnonymousLogin(true);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- page.setVisible(true);
-
- assertNotNull(page.getAnonymousButton());
-
- assertTrue(page.getAnonymousButton().getSelection());
- assertFalse(page.getUserNameEditor().getTextControl(page.getParent()).isEnabled());
- assertFalse(page.getPasswordEditor().getTextControl(page.getParent()).isEnabled());
- assertEquals("", page.getUserName());
- assertEquals("", page.getPassword());
-
- page.getAnonymousButton().setSelection(false);
- page.getAnonymousButton().notifyListeners(SWT.Selection, new Event());
- assertTrue(page.getUserNameEditor().getTextControl(page.getParent()).isEnabled());
- assertTrue(page.getPasswordEditor().getTextControl(page.getParent()).isEnabled());
- page.getUserNameEditor().setStringValue("user");
- page.getPasswordEditor().setStringValue("password");
- assertEquals("user", page.getUserName());
- assertEquals("password", page.getPassword());
-
- page.getAnonymousButton().setSelection(true);
- page.getAnonymousButton().notifyListeners(SWT.Selection, new Event());
- assertFalse(page.getUserNameEditor().getTextControl(page.getParent()).isEnabled());
- assertFalse(page.getPasswordEditor().getTextControl(page.getParent()).isEnabled());
- assertEquals("", page.getUserName());
- assertEquals("", page.getPassword());
-
- page.getAnonymousButton().setSelection(false);
- page.getAnonymousButton().notifyListeners(SWT.Selection, new Event());
- assertTrue(page.getUserNameEditor().getTextControl(page.getParent()).isEnabled());
- assertTrue(page.getPasswordEditor().getTextControl(page.getParent()).isEnabled());
- assertEquals("user", page.getUserNameEditor().getStringValue());
- assertEquals("password", page.getPasswordEditor().getStringValue());
- assertEquals("user", page.getUserName());
- assertEquals("password", page.getPassword());
- }
-
- public void testSavePassword() {
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://localhost/");
- TasksUiPlugin.getDefault().addRepositoryConnectorUi(new MockRepositoryConnectorUi());
-
- assertTrue(repository.getSavePassword(AuthenticationType.REPOSITORY));
-
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(repository);
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- assertTrue(page.getSavePassword());
- } finally {
- page.dispose();
- }
-
- repository.setCredentials(AuthenticationType.REPOSITORY, null, false);
- page = new MockRepositorySettingsPage(repository);
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- assertFalse(page.getSavePassword());
- } finally {
- page.dispose();
- }
- }
-
- public void testSaveHttpPassword() {
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://localhost/");
- TasksUiPlugin.getDefault().addRepositoryConnectorUi(new MockRepositoryConnectorUi());
-
- assertTrue(repository.getSavePassword(AuthenticationType.HTTP));
-
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(repository);
- page.setNeedsHttpAuth(true);
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- assertTrue(page.getSaveHttpPassword());
- } finally {
- page.dispose();
- }
-
- repository.setCredentials(AuthenticationType.HTTP, null, false);
-// page = new MockRepositorySettingsPage(repository);
- page.setNeedsHttpAuth(true);
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- assertFalse(page.getSaveHttpPassword());
- } finally {
- page.dispose();
- }
- }
-
- public void testSaveProxyPassword() {
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://localhost/");
- TasksUiPlugin.getDefault().addRepositoryConnectorUi(new MockRepositoryConnectorUi());
-
- assertTrue(repository.getSavePassword(AuthenticationType.PROXY));
-
- MockRepositorySettingsPage page = new MockRepositorySettingsPage(repository);
- page.setNeedsProxy(true);
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- assertTrue(page.getSaveProxyPassword());
- } finally {
- page.dispose();
- }
-
- repository.setCredentials(AuthenticationType.PROXY, null, false);
- page = new MockRepositorySettingsPage(repository);
- page.setNeedsProxy(true);
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- assertFalse(page.getSaveProxyPassword());
- } finally {
- page.dispose();
- }
- }
-
- private class MockRepositorySettingsPage extends AbstractRepositorySettingsPage {
-
- public MockRepositorySettingsPage(TaskRepository taskRepository) {
- super("title", "summary", taskRepository);
- }
-
- @Override
- protected void createAdditionalControls(Composite parent) {
- // ignore
- }
-
- @Override
- protected boolean isValidUrl(String name) {
- // ignore
- return false;
- }
-
- @Override
- protected void validateSettings() {
- // ignore
- }
-
- Button getAnonymousButton() {
- return anonymousButton;
- }
-
- StringFieldEditor getUserNameEditor() {
- return repositoryUserNameEditor;
- }
-
- StringFieldEditor getPasswordEditor() {
- return repositoryPasswordEditor;
- }
-
- Composite getParent() {
- return compositeContainer;
- }
-
- @Override
- protected Validator getValidator(TaskRepository repository) {
- // ignore
- return null;
- }
-
- @Override
- public String getConnectorKind() {
- return MockRepositoryConnector.REPOSITORY_KIND;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTemplateManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTemplateManagerTest.java
deleted file mode 100644
index e6aa8e17f..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTemplateManagerTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager;
-import org.eclipse.mylyn.internal.tasks.ui.TaskRepositoryUtil;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author Steffen Pingel
- */
-public class RepositoryTemplateManagerTest extends TestCase {
-
- private RepositoryTemplateManager manager;
-
- @Override
- protected void setUp() throws Exception {
- manager = TasksUiPlugin.getRepositoryTemplateManager();
- }
-
- public void testTemplateDeletion() {
- RepositoryTemplate template = new RepositoryTemplate("Mock", MockRepositoryConnector.REPOSITORY_URL, "", "",
- "", "", "", "", false, true);
- try {
- manager.addTemplate(MockRepositoryConnector.REPOSITORY_KIND, template);
- assertFalse(TaskRepositoryUtil.isAddAutomaticallyDisabled(MockRepositoryConnector.REPOSITORY_URL));
- TaskRepositoryUtil.disableAddAutomatically(MockRepositoryConnector.REPOSITORY_URL);
- assertTrue(TaskRepositoryUtil.isAddAutomaticallyDisabled(MockRepositoryConnector.REPOSITORY_URL));
- } finally {
- manager.removeTemplate(MockRepositoryConnector.REPOSITORY_KIND, template);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ScheduledPresentationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ScheduledPresentationTest.java
deleted file mode 100644
index c64bc7a5b..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ScheduledPresentationTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.Calendar;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContextManager;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListInterestFilter;
-import org.eclipse.mylyn.monitor.core.InteractionEvent;
-
-/**
- * @author Rob Elves
- */
-public class ScheduledPresentationTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- ContextCorePlugin.getContextManager().getActivityMetaContext().reset();
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- TaskTestUtil.resetTaskList();
- TasksUiPlugin.getExternalizationManager().requestSave();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskList();
- TasksUiPlugin.getExternalizationManager().requestSave();
- }
-
- public void testWeekStartChange() {
- TaskListInterestFilter filter = new TaskListInterestFilter();
- TasksUiPlugin.getTaskActivityManager().setWeekStartDay(Calendar.MONDAY);
- DateRange lastDay = TaskActivityUtil.getCurrentWeek().getDayOfWeek(Calendar.SUNDAY);
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task1, lastDay);
- assertTrue(filter.isInterestingForThisWeek(null, task1));
-
- TasksUiPlugin.getTaskActivityManager().setWeekStartDay(Calendar.SUNDAY);
- assertFalse(filter.isInterestingForThisWeek(null, task1));
-
- }
-
-// public void testResetAndRollOver() {
-//
-// ScheduledTaskContainer pastWeeks = TasksUiPlugin.getTaskActivityManager().getActivityPast();
-// ScheduledTaskContainer thisWeek = TasksUiPlugin.getTaskActivityManager().getActivityThisWeek();
-// ScheduledTaskContainer nextWeek = TasksUiPlugin.getTaskActivityManager().getActivityNextWeek();
-// ScheduledTaskContainer futureWeeks = TasksUiPlugin.getTaskActivityManager().getActivityFuture();
-//
-// assertEquals(0, thisWeek.getChildren().size());
-// assertTrue(thisWeek.isPresent());
-// assertTrue(nextWeek.isFuture());
-//
-// long pastStartTime = pastWeeks.getEnd().getTimeInMillis();
-// long thisWeekStartTime = thisWeek.getStart().getTimeInMillis();
-// long nextStartTime = nextWeek.getStart().getTimeInMillis();
-// long futureStartTime = futureWeeks.getStart().getTimeInMillis();
-//
-// Calendar pastWeeksTaskStart = Calendar.getInstance();
-// pastWeeksTaskStart.setTimeInMillis(pastStartTime - 10);
-// assertTrue(pastWeeks.includes(pastWeeksTaskStart));
-//
-// Calendar thisWeekTaskStart = Calendar.getInstance();
-// thisWeekTaskStart.setTimeInMillis(thisWeekStartTime + 10);
-// assertTrue(thisWeek.includes(thisWeekTaskStart));
-//
-// Calendar thisWeekTaskStop = Calendar.getInstance();
-// thisWeekTaskStop.setTimeInMillis(thisWeek.getEnd().getTimeInMillis() - 10);
-// assertTrue(thisWeek.includes(thisWeekTaskStop));
-//
-// Calendar nextWeekTaskStart = Calendar.getInstance();
-// nextWeekTaskStart.setTimeInMillis(nextStartTime + 10);
-// assertTrue(nextWeek.includes(nextWeekTaskStart));
-//
-// Calendar futureWeekTaskStart = Calendar.getInstance();
-// futureWeekTaskStart.setTimeInMillis(futureStartTime + 10);
-// assertTrue(futureWeeks.includes(futureWeekTaskStart));
-//
-// AbstractTask task1 = new LocalTask("task 1", "Task 1");
-// TasksUiPlugin.getTaskList().addTask(task1);
-//
-// assertEquals(0, TasksUiPlugin.getTaskActivityManager()
-// .getScheduledTasks(thisWeek.getStart(), thisWeek.getEnd())
-// .size());
-//
-// TasksUiPlugin.getTaskActivityManager().setScheduledFor(task1, thisWeek.getStart().getTime());
-//
-//// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-// assertEquals(1, TasksUiPlugin.getTaskActivityManager()
-// .getScheduledTasks(thisWeek.getStart(), thisWeek.getEnd())
-// .size());
-// // assertEquals(thisWeekTaskStop.getTime().getTime() -
-// // thisWeekTaskStart.getTime().getTime(), thisWeek
-// // .getTotalElapsed());
-//
-// // ROLL OVER
-// Date oldStart = TasksUiPlugin.getTaskActivityManager().getStartTime();
-// Calendar newStart = Calendar.getInstance();
-// newStart.setTime(oldStart);
-// newStart.add(Calendar.WEEK_OF_MONTH, 1);
-// //TasksUiPlugin.getTaskListManager().snapToStartOfWeek(newStart);
-//
-// TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
-//
-// //ScheduledTaskContainer newPastWeeks = TasksUiPlugin.getTaskListManager().getActivityPast();
-// ScheduledTaskContainer newPreviousWeek = TasksUiPlugin.getTaskActivityManager().getActivityPrevious();
-// ScheduledTaskContainer newThisWeek = TasksUiPlugin.getTaskActivityManager().getActivityThisWeek();
-// ScheduledTaskContainer newNextWeek = TasksUiPlugin.getTaskActivityManager().getActivityNextWeek();
-// // DateRangeContainer newFutureWeeks =
-// // MylarTaskListPlugin.getTaskListManager().getActivityFuture();
-//
-// assertTrue(newPreviousWeek.includes(thisWeekTaskStart));
-// assertTrue(newThisWeek.includes(nextWeekTaskStart));
-// assertTrue(newNextWeek.includes(futureWeekTaskStart));
-//
-// assertFalse(newThisWeek.includes(thisWeekTaskStart));
-// assertFalse(newThisWeek.isPresent());
-// assertTrue(newThisWeek.isFuture());
-//
-// assertEquals(0, TasksUiPlugin.getTaskActivityManager().getScheduledTasks(newThisWeek.getStart(),
-// newThisWeek.getEnd()).size());
-// assertEquals(1, TasksUiPlugin.getTaskActivityManager().getScheduledTasks(newPreviousWeek.getStart(),
-// newPreviousWeek.getEnd()).size());
-//
-// TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
-// }
-
- public void testScheduledTaskContainer() {
-
- Calendar startDate = Calendar.getInstance();
- startDate.setTimeInMillis(1000);
- Calendar endDate = Calendar.getInstance();
- endDate.setTimeInMillis(2000);
-
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- AbstractTask task2 = new LocalTask("task 2", "Task 2");
- TasksUiPlugin.getTaskList().addTask(task1);
- TasksUiPlugin.getTaskList().addTask(task2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, startDate.getTime(), endDate.getTime());
-
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task2.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, startDate.getTime(), endDate.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
- Calendar start = TaskActivityUtil.getCalendar();
- start.setTimeInMillis(0);
- Calendar end = TaskActivityUtil.getCalendar();
- end.add(Calendar.MINUTE, 2);
- Set<AbstractTask> tasks = TasksUiPlugin.getTaskActivityManager().getActiveTasks(start, end);
- assertEquals(2, tasks.size());
- assertEquals(1000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- assertEquals(1000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task2));
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/StackTraceDuplicateDetectorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/StackTraceDuplicateDetectorTest.java
deleted file mode 100644
index a3929262e..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/StackTraceDuplicateDetectorTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.search.StackTraceDuplicateDetector;
-
-/**
- * @author Jeff Pound
- */
-public class StackTraceDuplicateDetectorTest extends TestCase {
-
- public void testStackTrace() throws Exception {
- String stackTrace = "java.lang.NullPointerException\nat jeff.testing.stack.trace.functionality(jeff.java:481)";
- assertNotNull(StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testNoStackTrace() throws Exception {
- String stackTrace = "this is not really a stacktrace";
- assertNull(StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testStackTraceWithAppendedText() throws Exception {
- String stackTrace = "java.lang.NullPointerException\nat jeff.testing.stack.trace.functionality(jeff.java:481)";
- String extraText = "\nExtra text that isnt' part of the stack trace java:";
- assertEquals(stackTrace + "\n", StackTraceDuplicateDetector.getStackTraceFromDescription(extraText + "\n"
- + stackTrace + "\n"));
- }
-
- public void testStackTraceMisaligned() throws Exception {
- String stackTrace = "java.lang.IllegalStateException: zip file closed\n"
- + " at java.util.zip.ZipFile.ensureOpen (ZipFile.java:518)\n"
- + "at java.util.zip.ZipFile.getEntry (ZipFile.java:251)\n"
- + " at java.util.jar.JarFile.getEntry(JarFile.java:200)\n"
- + "at sun.net.www.protocol.jar.URLJarFile.getEntry\n" + " (URLJarFile.java:90)\n"
- + "at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:112)\n"
- + "at sun.net.www.protocol.jar.JarURLConnection.getInputStream\n" + "(JarURLConnection.java:124)\n"
- + "at org.eclipse.jdt.internal.core.JavaElement\n.getURLContents(JavaElement.java:734)";
- assertEquals(stackTrace, StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testStackTraceSUN() throws Exception {
- // SUN, IBM (no space before brackets, one set of brackets)
- String stackTrace = "java.lang.IllegalStateException: zip file closed\n"
- + " at java.util.zip.ZipFile.ensureOpen(ZipFile.java:518)\n"
- + " at java.util.zip.ZipFile.getEntry(ZipFile.java:251)\n"
- + " at java.util.jar.JarFile.getEntry(JarFile.java:200)\n"
- + " at sun.net.www.protocol.jar.URLJarFile.getEntry(URLJarFile.java:90)\n"
- + " at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:112)\n"
- + " at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:124)\n"
- + " at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:734)";
- assertEquals(stackTrace, StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testStackTraceGCJ() throws Exception {
- // gcj/gij (path and lib names in additional brackets)
- String stackTrace = "java.lang.Error: Something bad happened\n"
- + " at testcase.main(java.lang.String[]) (Unknown Source)\n"
- + " at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)\n"
- + " at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)";
- assertEquals(stackTrace, StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testStackTraceNoLineNums() throws Exception {
- // ikvm (no line numbers)
- String stackTrace = "java.lang.Error: Something bad happened\n" + " at testcase.main (testcase.java)\n"
- + " at java.lang.reflect.Method.Invoke (Method.java)";
- assertEquals(stackTrace, StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testStackTraceJRockit() throws Exception {
- // jrockit (slash delimiters)
- String stackTrace = "java.lang.Error: Something bad happened\n"
- + " at java/io/BufferedReader.readLine(BufferedReader.java:331)\n"
- + " at java/io/BufferedReader.readLine(BufferedReader.java:362)\n"
- + " at java/util/Properties.load(Properties.java:192)\n"
- + " at java/util/logging/LogManager.readConfiguration(L:555)";
- assertEquals(stackTrace, StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
- public void testStackTraceOther() throws Exception {
- // jamvm, sablevm, kaffe, cacao (space before brackets, one set of brackets)
- String stackTrace = "java.lang.Error: Something bad happened\n" + " at testcase.main (testcase.java:3)\n"
- + " at java.lang.VirtualMachine.invokeMain (VirtualMachine.java)\n"
- + " at java.lang.VirtualMachine.main (VirtualMachine.java:108)";
- assertEquals(stackTrace, StackTraceDuplicateDetector.getStackTraceFromDescription(stackTrace));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationActionTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationActionTest.java
deleted file mode 100644
index 1c2e62d72..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationActionTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.actions.ToggleTaskActivationAction;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Mik Kersten
- */
-public class TaskActivationActionTest extends TestCase {
-
- @Override
- protected void tearDown() throws Exception {
- TasksUi.getTaskActivityManager().deactivateActiveTask();
- }
-
- public void testUpdateOnExternalActivation() {
- MockTask task = new MockTask("test:activation");
- ToggleTaskActivationAction action = new ToggleTaskActivationAction(task);
- assertFalse(action.isChecked());
-
- TasksUi.getTaskActivityManager().activateTask(task);
- assertTrue(action.isChecked());
-
- TasksUi.getTaskActivityManager().deactivateTask(task);
- assertFalse(action.isChecked());
-
- action.dispose();
-
- TasksUi.getTaskActivityManager().activateTask(task);
- assertFalse(action.isChecked());
-
- TasksUi.getTaskActivityManager().deactivateTask(task);
- assertFalse(action.isChecked());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationHistoryTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationHistoryTest.java
deleted file mode 100644
index ff24f939c..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivationHistoryTest.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ActivateTaskHistoryDropDownAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Frank Becker
- * @author Wesley Coelho
- */
-public class TaskActivationHistoryTest extends TestCase {
-
- private TaskActivationHistory history;
-
- private TaskList taskList;
-
- private AbstractTask task1;
-
- private AbstractTask task2;
-
- private AbstractTask task3;
-
- private AbstractTask task4;
-
- private AbstractTask task5;
-
- private ActivateTaskHistoryDropDownAction previousTaskAction;
-
- private TaskActivityManager taskActivityManager;
-
- @Override
- protected void setUp() throws Exception {
- taskActivityManager = TasksUiPlugin.getTaskActivityManager();
- history = taskActivityManager.getTaskActivationHistory();
- taskList = TasksUiPlugin.getTaskList();
-
- taskActivityManager.deactivateActiveTask();
- taskActivityManager.clear();
- ContextCorePlugin.getContextManager().resetActivityMetaContext();
-
- TaskTestUtil.resetTaskList();
-
- task1 = TasksUiInternal.createNewLocalTask("task 1");
- taskList.addTask(task1);
- task2 = TasksUiInternal.createNewLocalTask("task 2");
- taskList.addTask(task2);
- task3 = TasksUiInternal.createNewLocalTask("task 3");
- taskList.addTask(task3);
- task4 = TasksUiInternal.createNewLocalTask("task 4");
- taskList.addTask(task4);
- task5 = TasksUiInternal.createNewLocalTask("task 5");
- taskList.addTask(task5);
-
- previousTaskAction = new ActivateTaskHistoryDropDownAction();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskList();
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(new HashSet<IWorkingSet>(0));
- }
-
- public void testWithWorkingSet() {
- MockRepositoryQuery query1 = new MockRepositoryQuery("Query 1");
- MockRepositoryQuery query2 = new MockRepositoryQuery("Query 2");
-
- AbstractTask task11 = TasksUiInternal.createNewLocalTask("Query1 Task 1");
- AbstractTask task12 = TasksUiInternal.createNewLocalTask("Query1 Task 2");
- AbstractTask task21 = TasksUiInternal.createNewLocalTask("Query2 Task 1");
- AbstractTask task22 = TasksUiInternal.createNewLocalTask("Query2 Task 2");
- taskList.addQuery(query1);
- taskList.addQuery(query2);
- createWorkingSet(query1);
- (new TaskActivateAction()).run(task11);
- history.addTask(task11);
- taskList.addTask(task11, query1);
- (new TaskActivateAction()).run(task12);
- history.addTask(task12);
- taskList.addTask(task12, query1);
-
- (new TaskActivateAction()).run(task21);
- history.addTask(task21);
- taskList.addTask(task21, query2);
- (new TaskActivateAction()).run(task22);
- history.addTask(task22);
- taskList.addTask(task22, query2);
-
- List<AbstractTask> prevHistoryList = history.getPreviousTasks();
-
- // Check that the previous history list looks right
- assertTrue(prevHistoryList.size() >= 3);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 1) == task22);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 2) == task21);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 3) == task12);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 4) == task11);
-
- prevHistoryList = history.getPreviousTasks(TasksUiInternal.getContainersFromWorkingSet(TaskWorkingSetUpdater.getActiveWorkingSets(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow())));
-
- // Check that the previous history list looks right
- assertTrue(prevHistoryList.size() >= 2);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 1) == task12);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 2) == task11);
-
- prevHistoryList = history.getPreviousTasks(new HashSet<AbstractTaskContainer>());
-
- // Check that the previous history list looks right
- assertTrue(prevHistoryList.size() >= 3);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 1) == task22);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 2) == task21);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 3) == task12);
- assertTrue(prevHistoryList.get(prevHistoryList.size() - 4) == task11);
- }
-
- private IWorkingSet createWorkingSet(IAdaptable element) {
- IWorkingSetManager workingSetManager1 = ContextUiPlugin.getDefault().getWorkbench().getWorkingSetManager();
- IWorkingSet workingSet = workingSetManager1.createWorkingSet("Task Working Set", new IAdaptable[] { element });
- workingSet.setId(TaskWorkingSetUpdater.ID_TASK_WORKING_SET);
- assertTrue(Arrays.asList(workingSet.getElements()).contains(element));
- Set<IWorkingSet> sets = TaskWorkingSetUpdater.getActiveWorkingSets(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow());
- sets.add(workingSet);
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(sets);
- return workingSet;
- }
-
- /**
- * Tests the next task and previous task navigation.
- */
- public void testBasicHistoryNavigation() {
- // NOTE: legacy test
- TasksUi.getTaskActivityManager().activateTask(task1);
- history.addTask(task1);
- TasksUi.getTaskActivityManager().activateTask(task2);
- history.addTask(task2);
- TasksUi.getTaskActivityManager().activateTask(task3);
- history.addTask(task3);
-
- assertTrue(task3.isActive());
- assertFalse(task2.isActive());
- assertFalse(task1.isActive());
- // order 1 (2) 3
-
- previousTaskAction.run();
- // order (1) 3 2
- assertEquals(task2, taskActivityManager.getActiveTask());
- assertTrue(task2.isActive());
-
- previousTaskAction.run();
- // order (1) 2 3
- assertEquals(task1, taskActivityManager.getActiveTask());
- assertTrue(task1.isActive());
-
- previousTaskAction.run();
- // order (1) 2 3
- assertEquals(task1, taskActivityManager.getActiveTask());
- assertTrue(task1.isActive());
-
- // taskView.getPreviousTaskAction().run();
- // assertTrue(task1.isActive());
- //
- // taskView.getPreviousTaskAction().run();
- // assertTrue(task1.isActive());
-
- // taskView.getNextTaskAction().run();
- // assertTrue(task2.isActive());
- //
- // taskView.getNextTaskAction().run();
- // assertTrue(task3.isActive());
- //
- // taskView.getNextTaskAction().run();
- // assertTrue(task3.isActive());
- //
- // taskView.getPreviousTaskAction().run();
- // assertTrue(task2.isActive());
- //
- // taskView.getNextTaskAction().run();
- // assertTrue(task3.isActive());
- //
- // TasksUi.getTaskActivityManager().activateTask(task4);
- // history.addTask(task4); // Simulate clicking on it rather
- // // than navigating next or previous
- // assertTrue(task4.isActive());
- //
- // taskView.getNextTaskAction().run();
- // assertTrue(task4.isActive());
- //
- // taskView.getPreviousTaskAction().run();
- // assertTrue(task3.isActive());
- //
- // taskView.getNextTaskAction().run();
- // assertTrue(task4.isActive());
-
- }
-
- /**
- * Tests navigation to previous/next tasks that are chosen from a list rather than being sequentially navigated
- */
- public void testArbitraryHistoryNavigation() {
- // Simulate activating the tasks by clicking rather than
- // navigating previous/next
- TasksUi.getTaskActivityManager().activateTask(task1);
- history.addTask(task1);
- TasksUi.getTaskActivityManager().activateTask(task2);
- history.addTask(task2);
- TasksUi.getTaskActivityManager().activateTask(task3);
- history.addTask(task3);
- TasksUi.getTaskActivityManager().activateTask(task4);
- history.addTask(task4);
-
- assertTrue(task4.isActive());
- //TaskActivationHistory taskHistory = taskView.getTaskActivationHistory();
- List<AbstractTask> prevHistoryList = history.getPreviousTasks();
-
- // Check that the previous history list looks right
- assertTrue(prevHistoryList.size() >= 3);
- assertEquals(task3, prevHistoryList.get(prevHistoryList.size() - 2));
- assertEquals(task2, prevHistoryList.get(prevHistoryList.size() - 3));
- assertEquals(task1, prevHistoryList.get(prevHistoryList.size() - 4));
-
- // Get a task from the list and activate it
- TasksUi.getTaskActivityManager().activateTask(task2);
- assertEquals(task2, taskActivityManager.getActiveTask());
- assertTrue(task2.isActive());
-
- // Now check that the next and prev lists look right
- prevHistoryList = history.getPreviousTasks();
- assertEquals(task2, prevHistoryList.get(prevHistoryList.size() - 1));
- assertEquals(task4, prevHistoryList.get(prevHistoryList.size() - 2));
- assertEquals(task1, prevHistoryList.get(prevHistoryList.size() - 4));
- assertEquals(task3, prevHistoryList.get(prevHistoryList.size() - 3));
-
- // Activation of task outside of history navigation tool
- history.addTask(task3);
-
- prevHistoryList = history.getPreviousTasks();
- assertEquals(task3, prevHistoryList.get(prevHistoryList.size() - 1));
- assertEquals(task2, prevHistoryList.get(prevHistoryList.size() - 2));
- assertEquals(task4, prevHistoryList.get(prevHistoryList.size() - 3));
- assertEquals(task1, prevHistoryList.get(prevHistoryList.size() - 4));
-
- // Pick a task from drop down history
- TasksUi.getTaskActivityManager().activateTask(task4);
- assertEquals(task4, taskActivityManager.getActiveTask());
- assertTrue(task4.isActive());
-
- prevHistoryList = history.getPreviousTasks();
- assertEquals(task4, prevHistoryList.get(prevHistoryList.size() - 1));
- assertEquals(task3, prevHistoryList.get(prevHistoryList.size() - 2));
- assertEquals(task2, prevHistoryList.get(prevHistoryList.size() - 3));
- assertEquals(task1, prevHistoryList.get(prevHistoryList.size() - 4));
-
- // Hit previous task button
- previousTaskAction.run();
- assertEquals(task3, taskActivityManager.getActiveTask());
- assertTrue(task3.isActive());
-
- prevHistoryList = history.getPreviousTasks();
- assertEquals(task3, prevHistoryList.get(prevHistoryList.size() - 1));
- assertEquals(task4, prevHistoryList.get(prevHistoryList.size() - 2));
- assertEquals(task2, prevHistoryList.get(prevHistoryList.size() - 3));
- assertEquals(task1, prevHistoryList.get(prevHistoryList.size() - 4));
-
- TasksUi.getTaskActivityManager().deactivateTask(task3);
-
- // List<ITask> nextHistoryList = taskHistory.getNextTasks();
- // assertTrue(nextHistoryList.get(0) == task3);
- // assertTrue(nextHistoryList.get(1) == task4);
- //
- // // Navigate to a next item
- // NextTaskDropDownAction nextAction = new
- // NextTaskDropDownAction(taskView, taskHistory);
- // navigateAction = nextAction.new TaskNavigateAction(task4);
- // navigateAction.run();
- // taskHistory.navigatedToTask(task4);
- //
- // assertTrue(task4.isActive());
- //
- // // Check that the prev and next lists look right
- // nextHistoryList = taskHistory.getNextTasks();
- // prevHistoryList = taskHistory.getPreviousTasks();
- // assertTrue(nextHistoryList.size() == 0);
- // assertTrue(prevHistoryList.get(prevHistoryList.size() - 1) == task3);
- // assertTrue(prevHistoryList.get(prevHistoryList.size() - 2) == task2);
- // assertTrue(prevHistoryList.get(prevHistoryList.size() - 3) == task1);
- //
- // // Check that a deactivated task appears first on the history list
- // TasksUi.getTaskActivityManager().activateTask(task5);
- // (new TaskDeactivateAction()).run(task5);
- // taskView.addTaskToHistory(task5);
- // prevHistoryList = taskHistory.getPreviousTasks();
- // assertTrue(prevHistoryList.get(prevHistoryList.size() - 1) == task5);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java
deleted file mode 100644
index 239952a2a..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskActivationAdapter;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Shawn Minto
- * @author Robert Elves
- */
-public class TaskActivityManagerTest extends TestCase {
-
- private class MockTaskActivationListener extends TaskActivationAdapter {
-
- private boolean hasActivated = false;
-
- private boolean hasPreActivated = false;
-
- private boolean hasDeactivated = false;
-
- private boolean hasPreDeactivated = false;
-
- public void reset() {
- hasActivated = false;
- hasPreActivated = false;
-
- hasDeactivated = false;
- hasPreDeactivated = false;
-
- }
-
- @Override
- public void preTaskActivated(ITask task) {
- assertFalse(hasActivated);
- hasPreActivated = true;
- }
-
- @Override
- public void preTaskDeactivated(ITask task) {
- assertFalse(hasDeactivated);
- hasPreDeactivated = true;
- }
-
- @Override
- public void taskActivated(ITask task) {
- assertTrue(hasPreActivated);
- hasActivated = true;
- }
-
- @Override
- public void taskDeactivated(ITask task) {
- assertTrue(hasPreDeactivated);
- hasDeactivated = true;
- }
-
- }
-
- private TaskActivityManager taskActivityManager;
-
- private TaskList taskList;
-
- private TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- taskActivityManager = TasksUiPlugin.getTaskActivityManager();
- taskActivityManager.deactivateActiveTask();
- taskList = TasksUiPlugin.getTaskList();
-
- TaskTestUtil.resetTaskListAndRepositories();
-
- repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
- }
-
- public void testWeekEnd() {
- AbstractTask task = new LocalTask("12", "task-12");
- assertFalse(taskActivityManager.isScheduledForToday(task));
-
- // test end of next week
- Calendar end = TaskActivityUtil.getNextWeek().getEndDate();
- Calendar start = TaskActivityUtil.getCalendar();
- start.setTimeInMillis(end.getTimeInMillis());
- TaskActivityUtil.snapStartOfDay(start);
- taskActivityManager.setScheduledFor(task, new DateRange(start, end));
- assertTrue(taskActivityManager.isScheduledForNextWeek(task));
- taskActivityManager.setScheduledFor(task, TaskActivityUtil.getNextWeek());
- assertTrue(taskActivityManager.isScheduledForNextWeek(task));
- assertEquals(0, taskActivityManager.getScheduledTasks(new DateRange(start, end)).size());
-
- // test end of two weeks
- end = TaskActivityUtil.getNextWeek().next().getEndDate();
- start = TaskActivityUtil.getCalendar();
- start.setTimeInMillis(end.getTimeInMillis());
- TaskActivityUtil.snapStartOfDay(start);
- taskActivityManager.setScheduledFor(task, new DateRange(start, end));
- assertEquals(1, taskActivityManager.getScheduledTasks(new DateRange(start, end)).size());
- assertEquals(1, taskActivityManager.getScheduledTasks(TaskActivityUtil.getNextWeek().next()).size());
-
- }
-
- public void testTaskActivation() {
- MockTask task = new MockTask("test:activation");
- MockTaskActivationListener listener = new MockTaskActivationListener();
- try {
- taskActivityManager.addActivationListener(listener);
- try {
- taskActivityManager.activateTask(task);
- assertTrue(listener.hasPreActivated);
- assertTrue(listener.hasActivated);
- assertFalse(listener.hasPreDeactivated);
- assertFalse(listener.hasDeactivated);
-
- listener.reset();
- } finally {
- taskActivityManager.deactivateTask(task);
- }
- assertFalse(listener.hasPreActivated);
- assertFalse(listener.hasActivated);
- assertTrue(listener.hasPreDeactivated);
- assertTrue(listener.hasDeactivated);
- } finally {
- taskActivityManager.removeActivationListener(listener);
- }
- }
-
- public void testIsActiveToday() {
- AbstractTask task = new LocalTask("1", "task-1");
- assertFalse(taskActivityManager.isScheduledForToday(task));
-
- task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday());
- assertTrue(taskActivityManager.isScheduledForToday(task));
-
- task.setReminded(true);
- assertTrue(taskActivityManager.isScheduledForToday(task));
- task.setReminded(true);
-
-// Calendar inAnHour = Calendar.getInstance();
-// inAnHour.set(Calendar.HOUR_OF_DAY, inAnHour.get(Calendar.HOUR_OF_DAY) + 1);
-// inAnHour.getTime();
-// task.setScheduledForDate(inAnHour.getTime());
-// Calendar tomorrow = Calendar.getInstance();
-// TaskActivityUtil.snapToNextDay(tomorrow);
-// assertEquals(-1, inAnHour.compareTo(tomorrow));
-// assertTrue(taskActivityManager.isScheduledForToday(task));
- }
-
- public void testScheduledForToday() {
- AbstractTask task = new LocalTask("1", "task-1");
- task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday());
- assertTrue(taskActivityManager.isScheduledForToday(task));
- task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday().next());
- assertFalse(taskActivityManager.isScheduledForToday(task));
- }
-
- public void testSchedulePastEndOfMonth() {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.MONTH, Calendar.SEPTEMBER);
- calendar.set(Calendar.DAY_OF_MONTH, 30);
- TaskActivityUtil.snapForwardNumDays(calendar, 1);
- assertEquals("Should be October", Calendar.OCTOBER, calendar.get(Calendar.MONTH));
- }
-
- public void testIsCompletedToday() {
- ITask task = new LocalTask("1", "task 1");
- task.setCompletionDate(new Date());
- assertTrue(taskActivityManager.isCompletedToday(task));
-
- MockTask mockTask = new MockTask("1");
- mockTask.setOwner("unknown");
- taskList.addTask(mockTask);
- mockTask.setCompletionDate(new Date());
- assertFalse("completed: " + mockTask.getCompletionDate(), taskActivityManager.isCompletedToday(mockTask));
-
- mockTask = new MockTask("2");
- taskList.addTask(mockTask);
- mockTask.setCompletionDate(new Date());
- mockTask.setOwner("testUser");
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("testUser", ""), false);
- assertTrue(taskActivityManager.isCompletedToday(mockTask));
- }
-
- public void testAllTasksDeactivation() {
- AbstractTask task1 = new LocalTask("task1", "description1");
- AbstractTask task2 = new LocalTask("task2", "description2");
- taskList.addTask(task1);
- taskList.addTask(task2);
- assertNull(taskActivityManager.getActiveTask());
-
- taskActivityManager.activateTask(task2);
- assertEquals(task2, taskActivityManager.getActiveTask());
-
- taskActivityManager.deactivateActiveTask();
- assertNull(taskActivityManager.getActiveTask());
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityTimingTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityTimingTest.java
deleted file mode 100644
index 4dd86d4f2..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityTimingTest.java
+++ /dev/null
@@ -1,1331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylyn.context.tests.support.FileTool;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
-import org.eclipse.mylyn.internal.context.core.InteractionContextManager;
-import org.eclipse.mylyn.internal.context.core.InteractionContextScaling;
-import org.eclipse.mylyn.internal.context.core.LegacyActivityAdaptor;
-import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITaskList;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.monitor.core.InteractionEvent;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Rob Elves
- */
-public class TaskActivityTimingTest extends TestCase {
-
- private TaskActivityManager activityManager;
-
- private ITaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- activityManager = (TaskActivityManager) TasksUi.getTaskActivityManager();
- taskList = TasksUiInternal.getTaskList();
- TaskTestUtil.resetTaskListAndRepositories();
- TaskTestUtil.saveAndReadTasklist();
- ContextCorePlugin.getContextManager().getActivityMetaContext().reset();
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
- }
-
- @Override
- protected void tearDown() throws Exception {
- ContextCorePlugin.getContextManager().getActivityMetaContext().reset();
- TaskTestUtil.resetTaskList();
- }
-
- public void testLoadCorruptContext() throws Exception {
- String contextPath = TasksUiPlugin.getDefault().getDataDirectory() + '/' + "contexts" + '/';
- File contexts = new File(contextPath);
- if (!contexts.exists()) {
- contexts.mkdir();
- }
- File backup = new File(contexts, ".activity.xml.zip");
-
- File good = FileTool.getFileInPlugin(TasksTestsPlugin.getDefault(), new Path(
- "testdata/activityTests/.activity.xml.zip"));
-
- copy(good, backup);
-
- File corrupt = new File(contexts, "activity.xml.zip");
-
- File corruptSource = FileTool.getFileInPlugin(TasksTestsPlugin.getDefault(), new Path(
- "testdata/activityTests/activity.xml.zip"));
-
- copy(corruptSource, corrupt);
-
- InteractionContextManager manager = ContextCorePlugin.getContextManager();
- manager.loadActivityMetaContext();
- assertFalse(manager.getActivityMetaContext().getInteractionHistory().isEmpty());
- }
-
- public void testConstantWriting() throws Exception {
-
- String contextPath = TasksUiPlugin.getDefault().getDataDirectory() + '/' + "contexts" + '/';
- File contexts = new File(contextPath);
- if (!contexts.exists()) {
- contexts.mkdir();
- }
- File backup = new File(contexts, ".activity.xml.zip");
-
- File good = FileTool.getFileInPlugin(TasksTestsPlugin.getDefault(), new Path(
- "testdata/activityTests/.activity.xml.zip"));
-
- copy(good, backup);
-
- InteractionContextManager manager = ContextCorePlugin.getContextManager();
- manager.loadActivityMetaContext();
- assertFalse(manager.getActivityMetaContext().getInteractionHistory().isEmpty());
-
- for (int i = 0; i < 50; i++) {
- manager.saveActivityMetaContext();
- }
-
- manager.loadActivityMetaContext();
- assertFalse(manager.getActivityMetaContext().getInteractionHistory().isEmpty());
-
- }
-
- private void copy(File inFile, File outFile) throws Exception {
-
- FileOutputStream outStream = new FileOutputStream(outFile);
- FileInputStream inStream = new FileInputStream(inFile);
-
- byte[] buffer = new byte[1024];
- while (inStream.read(buffer) != -1) {
- outStream.write(buffer);
- }
- inStream.close();
- outStream.close();
-
- }
-
- public void testActivityWithNoTaskActive() {
- Calendar start = Calendar.getInstance();
- Calendar end = Calendar.getInstance();
- end.setTimeInMillis(start.getTimeInMillis());
- end.add(Calendar.HOUR_OF_DAY, 2);
-
- Calendar start2 = Calendar.getInstance();
- start2.add(Calendar.DAY_OF_MONTH, 1);
- Calendar end2 = Calendar.getInstance();
- end2.setTime(start2.getTime());
- end2.add(Calendar.HOUR_OF_DAY, 2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_WORKINGSET, "none", "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(), end.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_WORKINGSET, "none", "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start2.getTime(), end2.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- long expectedTotalTime = end.getTime().getTime() - start.getTime().getTime();
- assertEquals(2 * expectedTotalTime, activityManager.getElapsedForWorkingSet("none", start, end2));
-
- }
-
- public void testActivityWithNoTaskActive2() {
- Calendar start = Calendar.getInstance();
- Calendar end = Calendar.getInstance();
- end.setTimeInMillis(start.getTimeInMillis());
- end.add(Calendar.HOUR_OF_DAY, 2);
-
- Calendar start2 = Calendar.getInstance();
- start2.add(Calendar.DAY_OF_MONTH, 1);
- Calendar end2 = Calendar.getInstance();
- end2.setTime(start2.getTime());
- end2.add(Calendar.HOUR_OF_DAY, 2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_WORKINGSET, "set 1", "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(), end.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_WORKINGSET, "set 2", "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start2.getTime(), end2.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- long expectedTotalTime = end.getTime().getTime() - start.getTime().getTime();
- assertEquals(0, activityManager.getElapsedForWorkingSet("bogus", start, end2));
- assertEquals(0, activityManager.getElapsedForWorkingSet("none", start, end2));
- assertEquals(expectedTotalTime, activityManager.getElapsedForWorkingSet("set 1", start, end2));
- assertEquals(expectedTotalTime, activityManager.getElapsedForWorkingSet("set 2", start, end2));
- assertTrue(activityManager.getWorkingSets().contains("set 1"));
- assertTrue(activityManager.getWorkingSets().contains("set 2"));
- }
-
- public void testActivityCaptured() {
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- taskList.addTask(task1);
- assertEquals(0, activityManager.getElapsedTime(task1));
-
- Calendar start = Calendar.getInstance();
- Calendar end = Calendar.getInstance();
- end.setTimeInMillis(start.getTimeInMillis());
- end.add(Calendar.HOUR_OF_DAY, 2);
-
- Calendar start2 = Calendar.getInstance();
- start2.add(Calendar.DAY_OF_MONTH, 1);
- Calendar end2 = Calendar.getInstance();
- end2.setTime(start2.getTime());
- end2.add(Calendar.HOUR_OF_DAY, 2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(), end.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start2.getTime(), end2.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- long expectedTotalTime = end.getTime().getTime() - start.getTime().getTime();
- assertEquals(2 * expectedTotalTime, activityManager.getElapsedTime(task1));
- Calendar startEarly = Calendar.getInstance();
- startEarly.setTimeInMillis(start.getTimeInMillis());
- startEarly.add(Calendar.MONTH, -1);
- Calendar endLate = Calendar.getInstance();
- endLate.setTimeInMillis(end.getTimeInMillis() + 60 * 5000);
- assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, startEarly, end));
- assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start2, end2));
- assertEquals(2 * expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start, end2));
- }
-
- public void testActivityDelete() {
-
- AbstractTask task1 = new LocalTask("1", "Task 1");
- taskList.addTask(task1);
- assertEquals(0, activityManager.getElapsedTime(task1));
-
- Calendar start = Calendar.getInstance();
- Calendar end = Calendar.getInstance();
- end.setTimeInMillis(start.getTimeInMillis());
- end.add(Calendar.HOUR_OF_DAY, 2);
-
- Calendar start2 = Calendar.getInstance();
- start2.add(Calendar.DAY_OF_MONTH, 1);
- Calendar end2 = Calendar.getInstance();
- end2.setTime(start2.getTime());
- end2.add(Calendar.HOUR_OF_DAY, 2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(), end.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start2.getTime(), end2.getTime());
-
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- long expectedTotalTime = end.getTime().getTime() - start.getTime().getTime();
- assertEquals(2 * expectedTotalTime, activityManager.getElapsedTime(task1));
- Calendar startEarly = Calendar.getInstance();
- startEarly.setTimeInMillis(start.getTimeInMillis());
- startEarly.add(Calendar.MONTH, -1);
- Calendar endLate = Calendar.getInstance();
- endLate.setTimeInMillis(end.getTimeInMillis() + 60 * 5000);
- assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, startEarly, end));
- assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start2, end2));
- assertEquals(2 * expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start, end2));
-
- MonitorUiPlugin.getDefault().getActivityContextManager().removeActivityTime(task1.getHandleIdentifier(),
- start.getTimeInMillis(), end.getTimeInMillis());
- // Half gone since end date is exclusive (removes up to but not including hour)
- assertEquals(expectedTotalTime, activityManager.getElapsedTime(task1));
-
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
-
- assertEquals(expectedTotalTime, activityManager.getElapsedTime(task1));
-
- MonitorUiPlugin.getDefault().getActivityContextManager().removeActivityTime(task1.getHandleIdentifier(),
- start2.getTimeInMillis(), end2.getTimeInMillis());
-
- assertEquals(0, activityManager.getElapsedTime(task1));
- }
-
-// public void testActivityReset() {
-//
-// AbstractTask task1 = new LocalTask("1", "Task 1");
-// taskList.addTask(task1);
-// assertEquals(0, activityManager.getElapsedTime(task1));
-//
-// Calendar start = Calendar.getInstance();
-// Calendar end = Calendar.getInstance();
-// end.setTimeInMillis(start.getTimeInMillis());
-// end.add(Calendar.HOUR_OF_DAY, 2);
-//
-// Calendar start2 = Calendar.getInstance();
-// start2.add(Calendar.DAY_OF_MONTH, 1);
-// Calendar end2 = Calendar.getInstance();
-// end2.setTime(start2.getTime());
-// end2.add(Calendar.HOUR_OF_DAY, 2);
-//
-// InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// IInteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(), end.getTime());
-// InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// IInteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start2.getTime(), end2.getTime());
-//
-// ContextCore.getContextManager().getActivityMetaContext().parseEvent(event1);
-// TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1);
-// ContextCore.getContextManager().getActivityMetaContext().parseEvent(event2);
-// TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2);
-//
-// long expectedTotalTime = end.getTime().getTime() - start.getTime().getTime();
-// assertEquals(2 * expectedTotalTime, activityManager.getElapsedTime(task1));
-// Calendar startEarly = Calendar.getInstance();
-// startEarly.setTimeInMillis(start.getTimeInMillis());
-// startEarly.add(Calendar.MONTH, -1);
-// Calendar endLate = Calendar.getInstance();
-// endLate.setTimeInMillis(end.getTimeInMillis() + 60 * 5000);
-// assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, startEarly, end));
-// assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start2, end2));
-// assertEquals(2 * expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start, end2));
-//
-// MonitorUiPlugin.getDefault().getActivityContextManager().clearActivityTime(task1.getHandleIdentifier(),
-// start.getTimeInMillis(), end.getTimeInMillis());
-// // Half gone since end date is exclusive (removes up to but not including hour)
-// assertEquals(expectedTotalTime, activityManager.getElapsedTime(task1));
-// assertTrue(activityManager.getActiveTasks(start, end).isEmpty());
-// assertFalse(activityManager.getActiveTasks(start2, end2).isEmpty());
-//
-// MonitorUiPlugin.getDefault().getActivityContextManager().clearActivityTime(task1.getHandleIdentifier(),
-// start.getTimeInMillis(), end2.getTimeInMillis() + (1000 * 60 * 60));
-//
-// // with end = hour beyond should result in zero
-// assertEquals(0, activityManager.getElapsedTime(task1));
-//
-// TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2);
-// // one event blocked now by activity date filter so only half time collected
-// assertEquals(expectedTotalTime, activityManager.getElapsedTime(task1));
-// assertFalse(activityManager.getActiveTasks(start, end).isEmpty());
-// assertTrue(activityManager.getActiveTasks(start2, end2).isEmpty());
-//
-// ContextCore.getContextManager().saveActivityContext();
-// ContextCore.getContextManager().loadActivityMetaContext();
-// TasksUiPlugin.getTaskListManager().resetAndRollOver();
-//
-//// assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, startEarly, end));
-//// assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start2, end2));
-//// assertEquals(2 * expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start, end2));
-//
-// // reset still valid after restart
-// assertEquals(expectedTotalTime, activityManager.getElapsedTime(task1));
-// assertFalse(activityManager.getActiveTasks(start, end).isEmpty());
-// assertTrue(activityManager.getActiveTasks(start2, end2).isEmpty());
-//
-// }
-
- public void testNegativeActivity() {
-
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- taskList.addTask(task1);
- assertEquals(0, activityManager.getElapsedTime(task1));
-
- Calendar start = Calendar.getInstance();
- Calendar end = Calendar.getInstance();
- end.add(Calendar.HOUR_OF_DAY, 2);
-
- Calendar start2 = Calendar.getInstance();
- start2.add(Calendar.DAY_OF_MONTH, 1);
- Calendar end2 = Calendar.getInstance();
- end2.setTime(start2.getTime());
- end2.add(Calendar.HOUR_OF_DAY, 2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, end.getTime(), start.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, end2.getTime(), start2.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- assertEquals(0, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- assertEquals(0, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start, end));
- assertEquals(0, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start2, end2));
- assertEquals(0, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1, start, end2));
-
- }
-
- public void testNullTaskHandle() {
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- taskList.addTask(task1);
- assertEquals(0, activityManager.getElapsedTime(task1));
-
- Calendar start = Calendar.getInstance();
- Calendar end = Calendar.getInstance();
- end.add(Calendar.HOUR_OF_DAY, 2);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind", null,
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(),
- end.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION, "structureKind", "",
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, start.getTime(),
- end.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
- assertEquals(0, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- }
-
- public void testActivityNotLoggedTwice() {
- InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- metaContext.reset();
- assertEquals(0, metaContext.getInteractionHistory().size());
-
- ITask task1 = new LocalTask("local 1", "Task 1");
- ITask task2 = new LocalTask("local 2", "Task 2");
-
- Calendar startTime1 = Calendar.getInstance();
- TaskActivityUtil.snapStartOfHour(startTime1);
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTime(startTime1.getTime());
- endTime1.add(Calendar.SECOND, 20);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTime(endTime1.getTime());
- startTime2.add(Calendar.SECOND, 20);
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTime(startTime2.getTime());
- endTime2.add(Calendar.MINUTE, 2);
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task2.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), startTime1.getTime());
-
- // to activity events both within same hour will get collapsed
- metaContext.parseEvent(activityEvent1);
- metaContext.parseEvent(activityEvent2);
- // This is a bogus 3rd event with zero activity and shouldn't be recorded
- // this use to result in a second write of activity1 to the context
- metaContext.parseEvent(activityEvent3);
- metaContext = ContextCorePlugin.getContextManager().collapseActivityMetaContext(metaContext);
- assertEquals(1, metaContext.getInteractionHistory().size());
- }
-
- public void testDoubleBookKeeping() {
- AbstractTask task1 = new LocalTask("testDoubleBookKeeping", "testDoubleBookKeeping");
- TasksUiPlugin.getTaskList().addTask(task1);
- {
- Calendar startActiveTime = Calendar.getInstance();
- Calendar endActiveTime = Calendar.getInstance();
- endActiveTime.setTime(startActiveTime.getTime());
- endActiveTime.add(Calendar.SECOND, 20);
-
- Calendar startTime = Calendar.getInstance();
- startTime.setTime(startActiveTime.getTime());
- startTime.add(Calendar.SECOND, 5);
- Calendar endTime = Calendar.getInstance();
- endTime.setTime(endActiveTime.getTime());
- endTime.add(Calendar.SECOND, -5);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH,
- "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
- startActiveTime.getTime(), startActiveTime.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH,
- "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
- endActiveTime.getTime(), endActiveTime.getTime());
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime.getTime(), endTime.getTime());
-
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(activityEvent1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- long elapsed = TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1);
- assertEquals(10000, elapsed);
-
- // 2nd activation - no activity
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- elapsed = TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1);
- assertEquals(10000, elapsed);
- assertTrue(TasksUiPlugin.getTaskActivityManager().isActiveThisWeek(task1));
- }
-
- assertEquals(10000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- ///--- 2nd activity on same task
- {
- Calendar startActiveTime2 = Calendar.getInstance();
- Calendar endActiveTime2 = Calendar.getInstance();
- endActiveTime2.add(Calendar.SECOND, 20);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTimeInMillis(startActiveTime2.getTimeInMillis() + 2000);
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTimeInMillis(endActiveTime2.getTimeInMillis() - 2000);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH,
- "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
- startActiveTime2.getTime(), startActiveTime2.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH,
- "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
- endActiveTime2.getTime(), endActiveTime2.getTime());
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(activityEvent1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
- }
-
- assertEquals(26000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
-
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
-
- assertEquals(26000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
-
- }
-
- public void testAfterReloading() {
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
-
- Calendar startTime = Calendar.getInstance();
- Calendar endTime = Calendar.getInstance();
- endTime.add(Calendar.SECOND, 20);
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, startTime.getTime(), startTime.getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, startTime.getTime(), startTime.getTime());
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime.getTime(), endTime.getTime());
-
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(activityEvent1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent1, false);
- ContextCorePlugin.getContextManager().getActivityMetaContext().parseEvent(event2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
- assertEquals(20000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
-
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
-
- assertEquals(20000, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
-
- }
-
- public void testCollapsedTiming() {
- Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.add(Calendar.SECOND, 20);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTimeInMillis(endTime1.getTimeInMillis());
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTimeInMillis(startTime2.getTimeInMillis() + 20 * 1000);
-
- Calendar startTime3 = Calendar.getInstance();
- startTime3.setTimeInMillis(endTime2.getTimeInMillis());
- Calendar endTime3 = Calendar.getInstance();
- endTime3.setTimeInMillis(startTime3.getTimeInMillis() + 20 * 1000);
-
- InteractionContext mockContext = new InteractionContext("doitest", new InteractionContextScaling());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
-
- mockContext.parseEvent(activityEvent1);
- mockContext.parseEvent(activityEvent2);
- mockContext.parseEvent(activityEvent3);
- assertEquals(3, mockContext.getInteractionHistory().size());
- mockContext = ContextCorePlugin.getContextManager().collapseActivityMetaContext(mockContext);
- assertEquals(1, mockContext.getInteractionHistory().size());
-
- assertEquals(60 * 1000, mockContext.getInteractionHistory().get(0).getEndDate().getTime()
- - mockContext.getInteractionHistory().get(0).getDate().getTime());
- }
-
- /**
- * test that total collapsed time is same when events are separated in time
- */
- public void testCollapsedTiming2() {
- Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.add(Calendar.SECOND, 20);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTimeInMillis(endTime1.getTimeInMillis());
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTimeInMillis(startTime2.getTimeInMillis() + 20 * 1000);
-
- Calendar startTime3 = Calendar.getInstance();
- startTime3.setTimeInMillis(endTime2.getTimeInMillis());
- Calendar endTime3 = Calendar.getInstance();
- endTime3.setTimeInMillis(startTime3.getTimeInMillis() + 50 * 1000);
-
- InteractionContext mockContext = new InteractionContext("doitest", new InteractionContextScaling());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
-
- mockContext.parseEvent(activityEvent1);
- mockContext.parseEvent(activityEvent3);
- assertEquals(2, mockContext.getInteractionHistory().size());
- mockContext = ContextCorePlugin.getContextManager().collapseActivityMetaContext(mockContext);
- assertEquals(1, mockContext.getInteractionHistory().size());
- assertEquals(70 * 1000, mockContext.getInteractionHistory().get(0).getEndDate().getTime()
- - mockContext.getInteractionHistory().get(0).getDate().getTime());
- }
-
- public void testCollapsedExternalization() {
-
- Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTime(startTime1.getTime());
- endTime1.add(Calendar.SECOND, 20);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.add(Calendar.DAY_OF_MONTH, 1);
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTime(startTime2.getTime());
- endTime2.add(Calendar.SECOND, 20);
-
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
- InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- metaContext.reset();
- assertEquals(0, metaContext.getInteractionHistory().size());
-
- TasksUiPlugin.getTaskActivityManager().activateTask(task1);
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- metaContext.parseEvent(activityEvent1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent1, false);
- metaContext.parseEvent(activityEvent2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent2, false);
- TasksUiPlugin.getTaskActivityManager().deactivateActiveTask();
- assertEquals(4, ContextCorePlugin.getContextManager().getActivityMetaContext().getInteractionHistory().size());
-
- TaskTestUtil.saveTaskList();
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- ContextCorePlugin.getContextManager().getActivityMetaContext().reset();
- assertEquals(0, ContextCorePlugin.getContextManager().getActivityMetaContext().getInteractionHistory().size());
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
-
- assertEquals(4, ContextCorePlugin.getContextManager().getActivityMetaContext().getInteractionHistory().size());
-
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
- assertEquals((endTime1.getTimeInMillis() - startTime1.getTimeInMillis())
- + (endTime2.getTimeInMillis() - startTime2.getTimeInMillis()), TasksUiPlugin.getTaskActivityManager()
- .getElapsedTime(task1));
- }
-
- public void testCollapsedTwoTasks() {
- // test collapsing of attention events when two or more
- // task attention events occur sequentially
- Calendar startTime1 = Calendar.getInstance();
- Calendar endTime1 = Calendar.getInstance();
- endTime1.add(Calendar.SECOND, 20);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.setTime(endTime1.getTime());
- startTime2.add(Calendar.SECOND, 2);
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTime(startTime2.getTime());
- endTime2.add(Calendar.SECOND, 20);
-
- InteractionContext mockContext = new InteractionContext("doitest", new InteractionContextScaling());
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle1",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, "handle2",
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- mockContext.parseEvent(activityEvent1);
- mockContext.parseEvent(activityEvent2);
-
- // Since these event times are within same hour, normally they would get collapsed
- // here we test that if the event belongs to two different tasks remain discrete
-
- assertEquals(2, mockContext.getInteractionHistory().size());
- mockContext = ContextCorePlugin.getContextManager().collapseActivityMetaContext(mockContext);
- assertEquals(2, mockContext.getInteractionHistory().size());
- }
-
- public void testCollapeedByTheHour() {
- Calendar startTime1 = Calendar.getInstance();
- startTime1.set(Calendar.MINUTE, 2);
- startTime1.set(Calendar.SECOND, 0);
- startTime1.set(Calendar.MILLISECOND, 0);
-
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTime(startTime1.getTime());
- endTime1.add(Calendar.MINUTE, 2);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.add(Calendar.HOUR_OF_DAY, 1);
- startTime2.set(Calendar.MINUTE, 2);
- startTime2.set(Calendar.SECOND, 0);
- startTime2.set(Calendar.MILLISECOND, 0);
-
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTime(startTime2.getTime());
- endTime2.add(Calendar.MINUTE, 3);
-
- Calendar startTime3 = Calendar.getInstance();
- startTime3.add(Calendar.HOUR_OF_DAY, 1);
- startTime3.set(Calendar.MINUTE, 20);
- startTime3.set(Calendar.SECOND, 0);
- startTime3.set(Calendar.MILLISECOND, 0);
-
- Calendar endTime3 = Calendar.getInstance();
- endTime3.setTime(startTime3.getTime());
- endTime3.add(Calendar.MINUTE, 5);
-
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
-
- List<InteractionEvent> events = new ArrayList<InteractionEvent>();
- events.add(activityEvent1);
- events.add(activityEvent2);
- events.add(activityEvent3);
- List<InteractionEvent> collapsedEvents = ContextCorePlugin.getContextManager().collapseEventsByHour(events);
-
- assertEquals(2, collapsedEvents.size());
- }
-
- public void testTaskListManagerInactivity() {
-
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
-
- ScheduledTaskContainer activityThisWeek = new ScheduledTaskContainer(TasksUiPlugin.getTaskActivityManager(),
- TaskActivityUtil.getCurrentWeek());
- assertNotNull(activityThisWeek);
- assertEquals(0, activityThisWeek.getChildren().size());
-
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, activityThisWeek.getStart().getTime(),
- activityThisWeek.getStart().getTime());
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
- task1.getHandleIdentifier(), "originId", "navigatedRelation",
- InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, activityThisWeek.getEnd().getTime(),
- activityThisWeek.getEnd().getTime());
-
- Calendar activityStart = Calendar.getInstance();
- Calendar activityEnd = Calendar.getInstance();
- activityEnd.add(Calendar.HOUR_OF_DAY, 1);
-
- InteractionEvent activityEvent = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, activityStart.getTime(), activityEnd.getTime());
-
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event1, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent, false);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(event2, false);
-
- long expectedTotalTime = (activityEnd.getTime().getTime() - activityStart.getTime().getTime());
- assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- }
-
- public void testElapsedSameAfterRead() {
- // test that granularity of elapsed time map is retained after
- // being re-read from disk
-
- Calendar startTime1 = Calendar.getInstance();
- startTime1.set(Calendar.MINUTE, 2);
- startTime1.set(Calendar.SECOND, 0);
- startTime1.set(Calendar.MILLISECOND, 0);
-
- Calendar endTime1 = Calendar.getInstance();
- endTime1.setTime(startTime1.getTime());
- endTime1.add(Calendar.MINUTE, 2);
-
- Calendar startTime2 = Calendar.getInstance();
- startTime2.add(Calendar.HOUR_OF_DAY, 1);
- startTime2.set(Calendar.MINUTE, 2);
- startTime2.set(Calendar.SECOND, 0);
- startTime2.set(Calendar.MILLISECOND, 0);
-
- Calendar endTime2 = Calendar.getInstance();
- endTime2.setTime(startTime2.getTime());
- endTime2.add(Calendar.MINUTE, 3);
-
- Calendar startTime3 = Calendar.getInstance();
- startTime3.add(Calendar.HOUR_OF_DAY, 1);
- startTime3.set(Calendar.MINUTE, 20);
- startTime3.set(Calendar.SECOND, 0);
- startTime3.set(Calendar.MILLISECOND, 0);
-
- Calendar endTime3 = Calendar.getInstance();
- endTime3.setTime(startTime3.getTime());
- endTime3.add(Calendar.MINUTE, 5);
-
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
- TasksUiPlugin.getTaskActivityManager().activateTask(task1);
- InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- metaContext.reset();
- assertEquals(0, metaContext.getInteractionHistory().size());
-
- InteractionEvent activityEvent1 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime1.getTime(), endTime1.getTime());
-
- InteractionEvent activityEvent2 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime2.getTime(), endTime2.getTime());
-
- InteractionEvent activityEvent3 = new InteractionEvent(InteractionEvent.Kind.ATTENTION,
- InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(),
- InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
- InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startTime3.getTime(), endTime3.getTime());
-
- metaContext.parseEvent(activityEvent1);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent1, false);
- metaContext.parseEvent(activityEvent2);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent2, false);
- metaContext.parseEvent(activityEvent3);
- TasksUiPlugin.getTaskActivityMonitor().parseInteractionEvent(activityEvent3, false);
-
- assertEquals(1000 * 60 * 10, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- assertEquals(1000 * 60 * 2, activityManager.getElapsedTime(task1, startTime1, endTime1));
- assertEquals(1000 * 60 * 8, activityManager.getElapsedTime(task1, startTime2, endTime2));
-
- TasksUi.getTaskActivityManager().deactivateActiveTask();
- assertEquals(4, ContextCorePlugin.getContextManager().getActivityMetaContext().getInteractionHistory().size());
- TaskTestUtil.saveTaskList();
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- ContextCorePlugin.getContextManager().getActivityMetaContext().reset();
- assertEquals(0, ContextCorePlugin.getContextManager().getActivityMetaContext().getInteractionHistory().size());
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
- assertEquals(0, activityManager.getElapsedTime(task1));
- assertEquals(0, activityManager.getElapsedTime(task1, startTime1, endTime1));
- assertEquals(0, activityManager.getElapsedTime(task1, startTime2, endTime2));
-
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
- assertEquals(3, ContextCorePlugin.getContextManager().getActivityMetaContext().getInteractionHistory().size());
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
-
- startTime1 = Calendar.getInstance();
- startTime1.set(Calendar.MINUTE, 0);
- startTime1.set(Calendar.SECOND, 0);
- startTime1.set(Calendar.MILLISECOND, 0);
-
- assertEquals(1000 * 60 * 10, activityManager.getElapsedTime(task1));
- assertEquals(1000 * 60 * 2, activityManager.getElapsedTime(task1, startTime1, endTime1));
- assertEquals(1000 * 60 * 8, activityManager.getElapsedTime(task1, startTime2, endTime2));
- }
-
- /**
- * @author Yuri Baburov (burchik@gmail.com)
- * @author Rob Elves adaption to test LegacyActivityAdaptor
- */
- public void testLegacyTimingMigration() {
- AbstractTask task1 = new LocalTask("task 1", "Task 1");
- TasksUiPlugin.getTaskList().addTask(task1);
-
-// ScheduledTaskContainer thisWeekActivity = new ScheduledTaskContainer(TasksUiPlugin.getTaskActivityManager(),
-// TaskActivityUtil.getCurrentWeek());
-//
-// assertNotNull(thisWeekActivity);
-// assertEquals(0, thisWeekActivity.getChildren().size());
-// thisWeekActivity.getStart().setTimeInMillis(1149490800000L);
-// // Start
-// // of
-// // the
-// // week
-// // Jun 5
-// // 2006
-// // - Jun
-// // 11
-// // 2006,
-// // NOVST
-// thisWeekActivity.getEnd().setTimeInMillis(1150095600000L); // End of
-// // the week
-
- Date time1 = new Date(1150007053171L); // Sun Jun 11 13:24:13 NOVST
- // 2006 - task 1 - activated
- Date time2 = new Date(1150007263468L); // Sun Jun 11 13:27:43 NOVST
- // 2006 - attention -
- // deactivated
- Date time3 = new Date(1150021535953L); // Sun Jun 11 17:25:35 NOVST
- // 2006 - attention - activated
- Date time4 = new Date(1150021658500L); // Sun Jun 11 17:27:38 NOVST
- // 2006 - attention -
- // deactivated
- Date time5 = new Date(1150031089250L); // Sun Jun 11 20:04:49 NOVST
- // 2006 - attention - activated
- Date time6 = new Date(1150031111578L); // Sun Jun 11 20:05:11 NOVST
- // 2006 - attention -
- // deactivated
- Date time7 = new Date(1150031111578L); // Sun Jun 11 20:05:11 NOVST
- // 2006 - task 1 - deactivated
-
- String task1handle = task1.getHandleIdentifier();
- InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time1, time1);
-
- InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time1, time2);
- InteractionEvent event3 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time3, time4);
- InteractionEvent event5 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time5, time6);
- InteractionEvent event7 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
- "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time7, time7);
-
- LegacyActivityAdaptor legacyAdaptor = new LegacyActivityAdaptor();
- TasksUiPlugin.getTaskActivityMonitor()
- .parseInteractionEvent(legacyAdaptor.parseInteractionEvent(event1), false);
- TasksUiPlugin.getTaskActivityMonitor()
- .parseInteractionEvent(legacyAdaptor.parseInteractionEvent(event2), false);
- TasksUiPlugin.getTaskActivityMonitor()
- .parseInteractionEvent(legacyAdaptor.parseInteractionEvent(event3), false);
- // TasksUiPlugin.getTaskListManager().parseInteractionEvent(event4);
- TasksUiPlugin.getTaskActivityMonitor()
- .parseInteractionEvent(legacyAdaptor.parseInteractionEvent(event5), false);
- // TaskActivityManager.getInstance().parseInteractionEvent(event6);
- TasksUiPlugin.getTaskActivityMonitor()
- .parseInteractionEvent(legacyAdaptor.parseInteractionEvent(event7), false);
- long expectedTotalTime = time6.getTime() - time5.getTime() + time4.getTime() - time3.getTime()
- + time2.getTime() - time1.getTime();
- assertEquals(expectedTotalTime, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1));
- }
-
-// DND: OLD ACTIVITY TESTS - Will be using to test activity report/view
-// public void testInterleavedActivation() {
-//
-// AbstractTask task1 = new LocalTask("task 1", "Task 1");
-// TasksUiPlugin.getTaskList().addTask(task1);
-//
-// ScheduledTaskContainer activityThisWeek = TasksUiPlugin.getTaskListManager().getActivityThisWeek();
-// assertNotNull(activityThisWeek);
-// assertEquals(0, activityThisWeek.getChildren().size());
-//
-// Calendar taskActivationStart = GregorianCalendar.getInstance();
-// taskActivationStart.add(Calendar.MILLISECOND, 15);
-// Calendar taskActivationStop = GregorianCalendar.getInstance();
-// taskActivationStop.add(Calendar.MILLISECOND, 25);
-//
-// Calendar inactivityStart1 = GregorianCalendar.getInstance();
-// inactivityStart1.add(Calendar.MILLISECOND, 5);
-// Calendar inactivityStop1 = GregorianCalendar.getInstance();
-// inactivityStop1.add(Calendar.MILLISECOND, 10);
-//
-// Calendar inactivityStart2 = GregorianCalendar.getInstance();
-// inactivityStart2.add(Calendar.MILLISECOND, 18);
-// Calendar inactivityStop2 = GregorianCalendar.getInstance();
-// inactivityStop2.add(Calendar.MILLISECOND, 25);
-//
-// InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, taskActivationStart.getTime(),
-// taskActivationStart.getTime());
-// InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, taskActivationStop.getTime(),
-// taskActivationStop.getTime());
-//
-// InteractionEvent inactivityEvent1 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, inactivityStart1.getTime(),
-// inactivityStop1.getTime());
-// InteractionEvent inactivityEvent2 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, inactivityStart2.getTime(),
-// inactivityStop2.getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent2);
-// assertEquals(1, activityThisWeek.getChildren().size());
-//
-// // long expectedTotalTime = taskActivationStop.getTimeInMillis() -
-// // taskActivationStart.getTimeInMillis();
-// long expectedTotalTime = 0;
-// assertEquals(expectedTotalTime, activityThisWeek.getTotalElapsed());
-// assertEquals(expectedTotalTime, activityThisWeek.getElapsed(new ScheduledTaskDelegate(activityThisWeek, task1,
-// null, null)));
-// }
-//
-// public void testInterleavedActivation2() {
-//
-// AbstractTask task1 = new LocalTask("task 1", "Task 1");
-// TasksUiPlugin.getTaskList().addTask(task1);
-//
-// ScheduledTaskContainer activityThisWeek = TasksUiPlugin.getTaskListManager().getActivityThisWeek();
-// assertNotNull(activityThisWeek);
-// assertEquals(0, activityThisWeek.getChildren().size());
-//
-// Calendar taskActivationStart = GregorianCalendar.getInstance();
-// taskActivationStart.add(Calendar.MILLISECOND, 10);
-// Calendar taskActivationStop = GregorianCalendar.getInstance();
-// taskActivationStop.add(Calendar.MILLISECOND, 25);
-//
-// Calendar inactivityStart = GregorianCalendar.getInstance();
-// inactivityStart.add(Calendar.MILLISECOND, 15);
-// Calendar inactivityStop = GregorianCalendar.getInstance();
-// inactivityStop.add(Calendar.MILLISECOND, 20);
-//
-// InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, taskActivationStart.getTime(),
-// taskActivationStart.getTime());
-// InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, taskActivationStop.getTime(),
-// taskActivationStop.getTime());
-//
-// InteractionEvent inactivityEvent1 = new InteractionEvent(InteractionEvent.Kind.COMMAND, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ADDED, 2f, inactivityStart.getTime(),
-// inactivityStop.getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(inactivityEvent1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-//
-// assertEquals(1, activityThisWeek.getChildren().size());
-//
-// long expectedTotalTime = 2 * (inactivityStart.getTimeInMillis() - taskActivationStart.getTimeInMillis());
-// assertEquals(expectedTotalTime, activityThisWeek.getTotalElapsed());
-// assertEquals(expectedTotalTime, activityThisWeek.getElapsed(new ScheduledTaskDelegate(activityThisWeek, task1,
-// null, null)));
-// }
-//
-//
-// /**
-// * Some 'attention' events when all tasks are inactive
-// *
-// * @author Yuri Baburov (burchik@gmail.com)
-// */
-// public void testTaskListManagerActivity2() {
-// AbstractTask task1 = new LocalTask("task 1", "Task 1");
-// TasksUiPlugin.getTaskList().addTask(task1);
-// ScheduledTaskContainer thisWeekActivity = TasksUiPlugin.getTaskListManager().getActivityThisWeek();
-// assertNotNull(thisWeekActivity);
-// assertEquals(0, thisWeekActivity.getChildren().size());
-// assertEquals(0, thisWeekActivity.getTotalElapsed());
-// thisWeekActivity.getStart().setTimeInMillis(1149490800000L); // Start
-// // of
-// // the
-// // week
-// // Jun 5
-// // 2006
-// // - Jun
-// // 11
-// // 2006,
-// // NOVST
-// thisWeekActivity.getEnd().setTimeInMillis(1150095600000L); // End of
-// // the week
-//
-// Date time1 = new Date(1149911820812L); // Sat Jun 10 10:57:00 NOVST
-// // 2006 - task 1 - activated
-// Date time2 = new Date(1149911820812L); // Sat Jun 10 10:57:00 NOVST
-// // 2006 - task 1 - deactivated
-// Date time3 = new Date(1149911840812L); // Sat Jun 10 10:57:20 NOVST
-// // 2006 - attention -
-// // deactivated
-// Date time4 = new Date(1149911941765L); // Sat Jun 10 10:59:01 NOVST
-// // 2006 - attention - activated
-// Date time5 = new Date(1149911948953L); // Sat Jun 10 10:59:08 NOVST
-// // 2006 - task 1 - activated
-// Date time6 = new Date(1149911988781L); // Sat Jun 10 10:59:48 NOVST
-// // 2006 - task 1 - deactivated
-//
-// String task1handle = task1.getHandleIdentifier();
-// InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time1, time1);
-// InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time2, time2);
-// InteractionEvent event3 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time3, time3);
-// InteractionEvent event4 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", "attention",
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time4, time4);
-// InteractionEvent event5 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, time5, time5);
-// InteractionEvent event6 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task1handle,
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, time6, time6);
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event3);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event4);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event5);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event6);
-// assertEquals(1, thisWeekActivity.getChildren().size());
-// long expectedTotalTime = 0;// time6.getTime() - time5.getTime() +
-// // time2.getTime() - time1.getTime();
-// assertEquals(expectedTotalTime, thisWeekActivity.getTotalElapsed());
-// assertEquals(expectedTotalTime, TasksUiPlugin.getTaskListManager().getElapsedTime(task1));
-// assertEquals(expectedTotalTime, thisWeekActivity.getElapsed(new ScheduledTaskDelegate(thisWeekActivity, task1,
-// null, null)));
-// }
-//
-// public void testTaskListManagerActivity() {
-//
-// AbstractTask task1 = new LocalTask("task 1", "Task 1");
-// AbstractTask task2 = new LocalTask("task 2", "Task 2");
-// TasksUiPlugin.getTaskList().addTask(task1);
-// TasksUiPlugin.getTaskList().addTask(task2);
-//
-// // test this week
-// ScheduledTaskContainer thisWeekActivity = TasksUiPlugin.getTaskListManager().getActivityThisWeek();
-// assertNotNull(thisWeekActivity);
-// assertEquals(0, thisWeekActivity.getChildren().size());
-// assertEquals(0, thisWeekActivity.getTotalElapsed());
-// Calendar thisWeekCalendarStart = GregorianCalendar.getInstance();
-// thisWeekCalendarStart.setTime(thisWeekActivity.getStart().getTime());
-// Calendar thisWeekCalendarStop = GregorianCalendar.getInstance();
-// thisWeekCalendarStop.setTime(thisWeekActivity.getStart().getTime());
-// thisWeekCalendarStop.add(Calendar.MILLISECOND, 2);
-// assertTrue(thisWeekActivity.includes(thisWeekCalendarStart));
-//
-// InteractionEvent event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, thisWeekCalendarStart.getTime(),
-// thisWeekCalendarStart.getTime());
-// InteractionEvent event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task1.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, thisWeekCalendarStop.getTime(),
-// thisWeekCalendarStop.getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-// assertEquals(1, thisWeekActivity.getChildren().size());
-// assertEquals(0, thisWeekActivity.getTotalElapsed());
-// // assertEquals(thisWeekCalendarStop.getTime().getTime() -
-// // thisWeekCalendarStart.getTime().getTime(),
-// // thisWeekActivity.getTotalElapsed());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-// assertEquals(1, thisWeekActivity.getChildren().size());
-// // assertEquals(2 * (thisWeekCalendarStop.getTime().getTime() -
-// // thisWeekCalendarStart.getTime().getTime()),
-// // thisWeekActivity.getTotalElapsed());
-// // assertEquals(2 * (thisWeekCalendarStop.getTime().getTime() -
-// // thisWeekCalendarStart.getTime().getTime()),
-// // thisWeekActivity.getElapsed(new
-// // DateRangeActivityDelegate(thisWeekActivity, task1, null, null)));
-//
-// // multiple tasks in category
-// event1 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2.getHandleIdentifier(),
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f,
-// thisWeekCalendarStart.getTime(), thisWeekCalendarStart.getTime());
-// event2 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind", task2.getHandleIdentifier(),
-// "originId", "navigatedRelation", InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f,
-// thisWeekCalendarStop.getTime(), thisWeekCalendarStop.getTime());
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event1);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event2);
-// assertEquals(2, thisWeekActivity.getChildren().size());
-//
-// // test Past
-// ScheduledTaskContainer pastActivity = TasksUiPlugin.getTaskListManager().getActivityPast();
-// assertNotNull(pastActivity);
-// assertEquals(0, pastActivity.getChildren().size());
-//
-// InteractionEvent event3 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, pastActivity.getStart().getTime(),
-// pastActivity.getStart().getTime());
-// InteractionEvent event4 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, pastActivity.getEnd().getTime(),
-// pastActivity.getEnd().getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event3);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event4);
-// assertEquals(1, pastActivity.getChildren().size());
-//
-// // test Future
-// ScheduledTaskContainer futureActivity = TasksUiPlugin.getTaskListManager().getActivityFuture();
-// assertNotNull(futureActivity);
-// assertEquals(0, futureActivity.getChildren().size());
-//
-// InteractionEvent event5 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, futureActivity.getStart().getTime(),
-// futureActivity.getStart().getTime());
-// InteractionEvent event6 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, futureActivity.getEnd().getTime(),
-// futureActivity.getEnd().getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event5);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event6);
-// // No longer adding activity to future bins (days of week, next week, or
-// // future)
-// assertEquals(0, futureActivity.getChildren().size());
-//
-// // test Next week activity
-// ScheduledTaskContainer activityNextWeek = TasksUiPlugin.getTaskListManager().getActivityNextWeek();
-// assertNotNull(activityNextWeek);
-// assertEquals(0, activityNextWeek.getChildren().size());
-//
-// InteractionEvent event7 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, activityNextWeek.getStart().getTime(),
-// activityNextWeek.getStart().getTime());
-// InteractionEvent event8 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, activityNextWeek.getEnd().getTime(),
-// activityNextWeek.getEnd().getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event7);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event8);
-// // No longer adding activity to future bins (days of week, next week, or
-// // future)
-// assertEquals(0, activityNextWeek.getChildren().size());
-//
-// // test Previous week activity
-// ScheduledTaskContainer activityPreviousWeek = TasksUiPlugin.getTaskListManager().getActivityPrevious();
-// assertNotNull(activityPreviousWeek);
-// assertEquals(0, activityPreviousWeek.getChildren().size());
-//
-// InteractionEvent event9 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_ACTIVATED, 2f, activityPreviousWeek.getStart().getTime(),
-// activityPreviousWeek.getStart().getTime());
-// InteractionEvent event10 = new InteractionEvent(InteractionEvent.Kind.SELECTION, "structureKind",
-// task2.getHandleIdentifier(), "originId", "navigatedRelation",
-// InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED, 2f, activityPreviousWeek.getEnd().getTime(),
-// activityPreviousWeek.getEnd().getTime());
-//
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event9);
-// TasksUiPlugin.getTaskListManager().parseInteractionEvent(event10);
-// assertEquals(1, activityPreviousWeek.getChildren().size());
-// }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java
deleted file mode 100644
index b0e134b39..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.io.RandomAccessFile;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.internal.tasks.core.TaskAttachment;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.CopyAttachmentToClipboardJob;
-import org.eclipse.mylyn.internal.tasks.ui.util.DownloadAttachmentJob;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.connector.MockAttachmentHandler;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Test task attachment jobs.
- *
- * @author Steffen Pingel
- */
-public class TaskAttachmentTest extends TestCase {
-
- private TaskRepositoryManager manager;
-
- private MockRepositoryConnector connector;
-
- private MockAttachmentHandler attachmentHandler;
-
- private TaskRepository repository;
-
- private ITaskAttachment attachment;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- manager = TasksUiPlugin.getRepositoryManager();
-
- repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
- manager.addRepository(repository);
-
- attachmentHandler = new MockAttachmentHandler();
-
- connector = new MockRepositoryConnector();
- connector.setTaskAttachmentHandler(attachmentHandler);
- manager.addRepositoryConnector(connector);
-
- TaskData taskData = new TaskData(new TaskAttributeMapper(repository), MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL, "1");
- attachment = new TaskAttachment(repository, new MockTask("1"), taskData.getRoot().createAttribute("attachment"));
- }
-
- @Override
- protected void tearDown() throws Exception {
- manager.removeRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- public void testCopyToClipboardAction() throws Exception {
- String expected = "attachment content";
- attachmentHandler.setAttachmentData(expected.getBytes());
-
- CopyAttachmentToClipboardJob job = new CopyAttachmentToClipboardJob(attachment);
- job.schedule();
- job.join();
-
- Clipboard clipboard = new Clipboard(PlatformUI.getWorkbench().getDisplay());
- assertEquals(expected, clipboard.getContents(TextTransfer.getInstance()));
- }
-
- public void testDownloadAttachmentJob() throws Exception {
- File file = File.createTempFile("mylyn", null);
- file.deleteOnExit();
-
- String expected = "attachment\ncontent";
- attachmentHandler.setAttachmentData(expected.getBytes());
-
- DownloadAttachmentJob job = new DownloadAttachmentJob(attachment, file);
- job.schedule();
- job.join();
-
- assertEquals(Status.OK_STATUS, job.getResult());
-
- RandomAccessFile raf = new RandomAccessFile(file, "r");
- byte[] data = new byte[expected.getBytes().length];
- try {
- raf.readFully(data);
- } finally {
- raf.close();
- }
- assertEquals(expected, new String(data));
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskContainerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskContainerTest.java
deleted file mode 100644
index e65783e0c..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskContainerTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskContainerTest extends TestCase {
-
- public void testGetChildren() {
- MockTask task1 = new MockTask("1");
- MockTask task2 = new MockTask("2");
- MockTask task3 = new MockTask("3");
- MockTask task4 = new MockTask("4");
-
- task1.internalAddChild(task2);
- task2.internalAddChild(task3);
- task3.internalAddChild(task1);
- task3.internalAddChild(task4);
-
- assertTrue(task1.contains(task4.getHandleIdentifier()));
- assertTrue(task3.contains(task4.getHandleIdentifier()));
- assertFalse(task3.contains("abc"));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java
deleted file mode 100644
index 1b26119a7..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.tests.support.CommonsTestUtil;
-import org.eclipse.mylyn.context.tests.AbstractContextTest;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDataExportOperation;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDataSnapshotOperation;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataExportWizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataExportWizardPage;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Test case for the Task Export Wizard
- *
- * @author Wesley Coelho
- * @author Mik Kersten (fixes)
- */
-public class TaskDataExportTest extends AbstractContextTest {
-
- private TaskDataExportWizard wizard;
-
- private TaskDataExportWizardPage wizardPage;
-
- private File destinationDir;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- // Create the export wizard
- wizard = new TaskDataExportWizard();
- wizard.addPages();
- wizard.createPageControls(new Shell());
- wizardPage = (TaskDataExportWizardPage) wizard.getPage("org.eclipse.mylyn.tasklist.exportPage");
- assertNotNull(wizardPage);
-
- // Create test export destination directory
- File mylynFolder = new File(TasksUiPlugin.getDefault().getDataDirectory());
- destinationDir = new File(mylynFolder.getParent(), "TestDir");
- CommonsTestUtil.deleteFolder(destinationDir);
- destinationDir.mkdir();
-
- // Create folder/file structure
- File tasklist = new File(mylynFolder, "tasks.xml.zip");
- if (!tasklist.exists()) {
- assertTrue(tasklist.createNewFile());
- }
- File hidden = new File(mylynFolder, ".hidden");
- if (!hidden.exists()) {
- assertTrue(hidden.createNewFile());
- }
- File tasksandstuff = new File(mylynFolder, "tasksandstuff");
- if (!tasksandstuff.exists()) {
- assertTrue(tasksandstuff.mkdir());
- }
- File backup = new File(mylynFolder, "backup");
- if (!backup.exists()) {
- assertTrue(backup.mkdir());
- }
- File tasksFile = new File(tasksandstuff, "file1.xml.zip");
- if (!tasksFile.exists()) {
- assertTrue(tasksFile.createNewFile());
- }
-
- File tasksSubDir = new File(tasksandstuff, "sub");
- if (!tasksSubDir.exists()) {
- assertTrue(tasksSubDir.mkdir());
- }
-
- File tasksSubDirFile = new File(tasksSubDir, "file2.xml.zip");
- if (!tasksSubDirFile.exists()) {
- assertTrue(tasksSubDirFile.createNewFile());
- }
-
- }
-
- @Override
- protected void tearDown() throws Exception {
- wizard.dispose();
- wizardPage.dispose();
- CommonsTestUtil.deleteFolder(destinationDir);
- File mylynFolder = new File(TasksUiPlugin.getDefault().getDataDirectory());
- // Create folder/file structure
- File tasklist = new File(mylynFolder, "tasks.xml.zip");
- tasklist.delete();
- File hidden = new File(mylynFolder, ".hidden");
- hidden.delete();
- File tasks = new File(mylynFolder, "tasksandstuff");
- File tasksSubDir = new File(tasks, "sub");
- File backup = new File(mylynFolder, "backup");
- CommonsTestUtil.deleteFolder(backup);
- CommonsTestUtil.deleteFolder(tasksSubDir);
- CommonsTestUtil.deleteFolder(tasks);
- super.tearDown();
- }
-
- /**
- * Tests the wizard when it has been asked to export all task data to a zip file.
- */
- public void testExportAllToZip() throws Exception {
- // set parameters in the wizard to simulate a user setting them and clicking "Finish"
- wizardPage.setDestinationDirectory(destinationDir.getPath());
- wizard.performFinish();
-
- // check that the task list file was exported
- File[] files = destinationDir.listFiles();
- assertEquals(1, files.length);
- ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(files[0]));
- try {
- ArrayList<String> entries = new ArrayList<String>();
- ZipEntry entry = zipInputStream.getNextEntry();
- while (entry != null) {
- entries.add(entry.getName());
- entry = zipInputStream.getNextEntry();
- }
- assertFalse(entries.contains(".hidden"));
- assertTrue(entries.contains("tasks.xml.zip"));
- assertTrue(entries.contains("tasksandstuff/file1.xml.zip"));
- assertTrue(entries.contains("tasksandstuff/sub/file2.xml.zip"));
- assertFalse(entries.contains("backup"));
- } finally {
- zipInputStream.close();
- }
- }
-
- public void testSnapshot() throws Exception {
- final TaskDataExportOperation backupJob = new TaskDataSnapshotOperation(destinationDir.getPath(),
- "testBackup.zip");
- backupJob.run(new NullProgressMonitor());
- // check that the task list file was exported
- File[] files = destinationDir.listFiles();
- assertEquals(1, files.length);
- ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(files[0]));
- try {
- ArrayList<String> entries = new ArrayList<String>();
- ZipEntry entry = zipInputStream.getNextEntry();
- while (entry != null) {
- entries.add(entry.getName());
- entry = zipInputStream.getNextEntry();
- }
- assertFalse(entries.contains(".hidden"));
- assertTrue(entries.contains("tasks.xml.zip"));
- assertTrue(entries.contains("repositories.xml.zip"));
- assertTrue(entries.contains("contexts/activity.xml.zip"));
- assertFalse(entries.contains("tasks"));
- assertEquals(3, entries.size());
- } finally {
- zipInputStream.close();
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java
deleted file mode 100644
index 90ed04c0d..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.util.Collection;
-
-import org.eclipse.mylyn.context.tests.AbstractContextTest;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataImportWizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataImportWizardPage;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Test case for the Task Import Wizard
- *
- * @author Rob Elves
- */
-public class TaskDataImportTest extends AbstractContextTest {
-
- private TaskDataImportWizard wizard = null;
-
- private TaskDataImportWizardPage wizardPage = null;
-
- private final String sourceZipPath = "testdata/taskdataimporttest/mylardata-2007-01-19.zip";
-
- private File sourceZipFile = null;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- // Create the import wizard
- wizard = new TaskDataImportWizard();
- wizard.addPages();
- wizard.createPageControls(new Shell());
- wizardPage = (TaskDataImportWizardPage) wizard.getPage("org.eclipse.mylyn.tasklist.importPage");
- assertNotNull(wizardPage);
-
- TaskTestUtil.resetTaskListAndRepositories();
-
- sourceZipFile = TaskTestUtil.getLocalFile(sourceZipPath);
- assertTrue(sourceZipFile.exists());
-
- ContextCorePlugin.getContextManager().getActivityMetaContext().reset();
- }
-
- @Override
- protected void tearDown() throws Exception {
- wizard.dispose();
- wizardPage.dispose();
- ContextCorePlugin.getContextManager().resetActivityMetaContext();
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TaskTestUtil.resetTaskList();
- super.tearDown();
- }
-
- /**
- * Tests the wizard when it has been asked to import all task data from a zip file
- */
- public void testImportRepositoriesZip() {
- TaskList taskList = TasksUiPlugin.getTaskList();
- InteractionContext historyContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- assertNotNull(taskList);
- assertNotNull(historyContext);
- assertTrue(taskList.getAllTasks().size() == 0);
- assertTrue(historyContext.getInteractionHistory().size() == 0);
-
- wizardPage.setSource(true, sourceZipFile.getPath());
- wizard.performFinish();
-
- Collection<AbstractTask> tasks = taskList.getAllTasks();
- assertEquals(2, tasks.size());
- for (AbstractTask task : tasks) {
- assertTrue(ContextCorePlugin.getContextManager().hasContext(task.getHandleIdentifier()));
- }
- historyContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- assertNotNull(historyContext);
- assertTrue(historyContext.getInteractionHistory().size() > 0);
- assertTrue(TasksUiPlugin.getRepositoryManager().getAllRepositories().size() > 2);
- }
-
- public void testImportOverwritesAllTasks() {
- TaskList taskList = TasksUiPlugin.getTaskList();
- InteractionContext historyContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- assertNotNull(taskList);
- assertNotNull(historyContext);
- assertTrue(taskList.getAllTasks().size() == 0);
- assertTrue(historyContext.getInteractionHistory().size() == 0);
-
- AbstractTask task1 = new LocalTask("999", "label");
- taskList.addTask(task1);
- Collection<AbstractTask> tasks = taskList.getAllTasks();
- assertEquals(1, tasks.size());
-
- wizardPage.setSource(true, sourceZipFile.getPath());
- wizard.performFinish();
-
- tasks = taskList.getAllTasks();
- assertEquals(2, tasks.size());
- assertTrue(!taskList.getAllTasks().contains(task1));
- for (AbstractTask task : tasks) {
- assertTrue(ContextCorePlugin.getContextManager().hasContext(task.getHandleIdentifier()));
- }
- historyContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- assertNotNull(historyContext);
- assertTrue(historyContext.getInteractionHistory().size() > 0);
- assertTrue(TasksUiPlugin.getRepositoryManager().getAllRepositories().size() > 2);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java
deleted file mode 100644
index 8eda90899..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class TaskDataManagerTest extends TestCase {
-
- private TaskDataManager taskDataManger;
-
- @Override
- protected void setUp() throws Exception {
- taskDataManger = TasksUiPlugin.getTaskDataManager();
- }
-
- public void testPutUpdatedTaskData() throws Exception {
- TaskRepository taskRepository = TaskTestUtil.createMockRepository();
- TaskTask task = TaskTestUtil.createMockTask("1");
- task.setSynchronizationState(SynchronizationState.SYNCHRONIZED);
- TaskData taskData = TaskTestUtil.createTaskData(taskRepository, "1");
- taskDataManger.putUpdatedTaskData(task, taskData, true, null);
- assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
- }
-
-// public void testHasIncomingDateComparison() {
-// final Stack<Date> dates = new Stack<Date>();
-// MockTask task = new MockTask(MOCCK_ID);
-// RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory() {
-// private static final long serialVersionUID = 1L;
-//
-// @Override
-// public Date getDateForAttributeType(String attributeKey, String dateString) {
-// return dates.pop();
-// }
-// }, connector.getConnectorKind(), MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID);
-// task.setLastReadTimeStamp("never");
-//
-// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData));
-//
-// // strings and dates mismatch
-// dates.push(new Date(1));
-// dates.push(new Date(2));
-// taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, "2006-06-21 15:29:39");
-// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData));
-//
-// dates.push(null);
-// dates.push(new Date(2));
-// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData));
-//
-// dates.push(new Date());
-// dates.push(null);
-// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData));
-//
-// // strings mismatch but dates match
-// dates.push(new Date(1));
-// dates.push(new Date(1));
-// assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData));
-//
-// // strings match, dates should not be checked
-// task.setLastReadTimeStamp("2006-06-21 15:29:39");
-// assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData));
-// }
-
-// public void testIncomingToIncoming() {
- /*
- * - Synchronize task with incoming changes - Make another change using
- * browser - Open report in tasklist (editor opens with old 'new' data
- * and background sync occurs) - Incoming status set again on task due
- * to 2nd occurrence of new incoming data
- */
-
-// // Test unforced
-// AbstractTask task = primeTaskAndRepository(SynchronizationState.INCOMING, SynchronizationState.INCOMING);
-// RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(),
-// task.getTaskId());
-// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp());
-// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState());
-// assertEquals(DATE_STAMP_2, newData.getLastModified());
-// TasksUiPlugin.getTaskDataManager().saveIncoming(task, newData, false);
-// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp());
-// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState());
-// // TasksUiPlugin.getSynchronizationManager().setTaskRead(task, true);
-// // assertEquals(DATE_STAMP_2, task.getLastSyncDateStamp());
-// // and again...
-//
-// RepositoryTaskData taskData3 = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(),
-// MockRepositoryConnector.REPOSITORY_URL, "1");
-// taskData3.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_3);
-// TasksUiPlugin.getTaskDataManager().saveIncoming(task, taskData3, false);
-// // last modified stamp not updated until user synchronizes (newdata ==
-// // olddata)
-// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState());
-// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp());
-// taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId());
-// assertEquals(DATE_STAMP_3, taskData.getLastModified());
-//
-// // Should keep INCOMING state state since new data has same date samp
-// // and sych is not forced.
-// TasksUiPlugin.getTaskDataManager().saveIncoming(task, taskData3, false);
-// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState());
-// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp());
-// taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId());
-// assertEquals(DATE_STAMP_3, taskData.getLastModified());
-// }
- // public void testIncomingToSynchronizedWithVoidSyncTime() {
- // // IF the last sync time (modified timestamp on task) is null, this can
- // result
- // // in the editor refresh/repoen going into an infinite loops since the
- // task never
- // // gets to a synchronized state if the last mod time isn't set. It is now
- // being set
- // // if found to be null.
- // AbstractTask task =
- // primeTaskAndRepository(SynchronizationState.INCOMING,
- // SynchronizationState.SYNCHRONIZED);
- // assertEquals(DATE_STAMP_1, task.getLastSyncDateStamp());
- // task.setLastSyncDateStamp(null);
- // TasksUiPlugin.getSynchronizationManager().updateOfflineState(task,
- // newData, false);
- // assertEquals(SynchronizationState.INCOMING, task.getSyncState());
- // assertEquals(DATE_STAMP_1, task.getLastSyncDateStamp());
- //
- // TasksUiPlugin.getSynchronizationManager().updateOfflineState(task,
- // newData, false);
- // assertEquals(SynchronizationState.SYNCHRONIZED, task.getSyncState());
- // assertEquals(DATE_STAMP_1, task.getLastSyncDateStamp());
- // }
-// public void testMarkRead() {
-// AbstractTask task = primeTaskAndRepository(SynchronizationState.INCOMING, SynchronizationState.SYNCHRONIZED);
-// task.setLastReadTimeStamp(null);
-// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState());
-// TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
-// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp());
-// assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-// }
-//
-// public void testMarkUnread() {
-// AbstractTask task = primeTaskAndRepository(SynchronizationState.SYNCHRONIZED, SynchronizationState.SYNCHRONIZED);
-// task.setLastReadTimeStamp(null);
-// assertEquals(SynchronizationState.SYNCHRONIZED, task.getSynchronizationState());
-// TasksUiPlugin.getTaskDataManager().setTaskRead(task, false);
-// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState());
-// }
-// public void testClearOutgoing() {
-// AbstractTask task = primeTaskAndRepository(SynchronizationState.SYNCHRONIZED, SynchronizationState.SYNCHRONIZED);
-// RepositoryTaskData taskData1 = new RepositoryTaskData(new MockAttributeFactory(),
-// MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1");
-// TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData1);
-// taskData1 = TasksUiPlugin.getTaskDataStorageManager()
-// .getEditableCopy(task.getRepositoryUrl(), task.getTaskId());
-//
-// taskData1.setNewComment("Testing");
-// Set<RepositoryTaskAttribute> edits = new HashSet<RepositoryTaskAttribute>();
-// edits.add(taskData1.getAttribute(RepositoryTaskAttribute.COMMENT_NEW));
-// TasksUiPlugin.getTaskDataStorageManager().saveEdits(task.getRepositoryUrl(), task.getTaskId(), edits);
-//
-// RepositoryTaskData editedData = TasksUiPlugin.getTaskDataStorageManager().getEditableCopy(
-// task.getRepositoryUrl(), task.getTaskId());
-// assertEquals("Testing", editedData.getNewComment());
-//
-// TasksUiPlugin.getTaskDataManager().discardOutgoing(task);
-//
-// assertTrue(task.getSynchronizationState().equals(SynchronizationState.SYNCHRONIZED));
-// RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getEditableCopy(
-// task.getRepositoryUrl(), task.getTaskId());
-// assertEquals("", taskData.getNewComment());
-//
-// }
-//
-// public void testMarkTaskRead() {
-// // TODO reimplement
-// String repositoryUrl = "http://mylyn.eclipse.org/bugs222";
-// MockTask task1 = new MockTask(repositoryUrl, "1");
-// MockTask task2 = new MockTask(repositoryUrl, "2");
-// task1.setSynchronizationState(SynchronizationState.INCOMING);
-// task2.setSynchronizationState(SynchronizationState.INCOMING);
-// List<ITaskElement> elements = new ArrayList<ITaskElement>();
-// elements.add(task1);
-// elements.add(task2);
-// MarkTaskReadAction readAction = new MarkTaskReadAction(elements);
-// readAction.run();
-// assertEquals(SynchronizationState.SYNCHRONIZED, task1.getSynchronizationState());
-// assertEquals(SynchronizationState.SYNCHRONIZED, task2.getSynchronizationState());
-//
-// taskList.reset();
-// MockTask hit1 = new MockTask("1");
-// MockTask hit2 = new MockTask("2");
-// MockRepositoryQuery query = new MockRepositoryQuery("summary");
-// taskList.addQuery(query);
-// taskList.addTask(hit1, query);
-// taskList.addTask(hit2, query);
-//
-// elements.clear();
-// elements.add(query);
-// readAction = new MarkTaskReadAction(elements);
-// readAction.run();
-// assertEquals(2, query.getChildren().size());
-// for (ITaskElement element : query.getChildren()) {
-// if (element instanceof MockTask) {
-// MockTask mockTask = (MockTask) element;
-// assertEquals(SynchronizationState.SYNCHRONIZED, mockTask.getSynchronizationState());
-// }
-// }
-// }
-// public void testMarkUnRead() {
- // TODO reimplement
-// String repositoryUrl = "http://mylyn.eclipse.org/bugs222";
-// MockTask task1 = new MockTask(repositoryUrl, "1");
-// MockTask task2 = new MockTask(repositoryUrl, "2");
-// assertEquals(SynchronizationState.SYNCHRONIZED, task1.getSynchronizationState());
-// assertEquals(SynchronizationState.SYNCHRONIZED, task2.getSynchronizationState());
-// List<ITaskElement> elements = new ArrayList<ITaskElement>();
-// elements.add(task1);
-// elements.add(task2);
-// MarkTaskUnreadAction unreadAction = new MarkTaskUnreadAction(elements);
-// unreadAction.run();
-// assertEquals(SynchronizationState.INCOMING, task1.getSynchronizationState());
-// assertEquals(SynchronizationState.INCOMING, task2.getSynchronizationState());
-//
-// taskList.reset();
-// MockTask hit1 = new MockTask("1");
-// MockTask hit2 = new MockTask("2");
-// MockRepositoryQuery query = new MockRepositoryQuery("summary");
-// taskList.addQuery(query);
-// taskList.addTask(hit1, query);
-// taskList.addTask(hit2, query);
-//
-// elements.clear();
-// elements.add(query);
-// MarkTaskReadAction readAction = new MarkTaskReadAction(elements);
-// readAction.run();
-// assertEquals(2, query.getChildren().size());
-// for (ITaskElement element : query.getChildren()) {
-// if (element instanceof MockTask) {
-// MockTask mockTask = (MockTask) element;
-// assertEquals(SynchronizationState.SYNCHRONIZED, mockTask.getSynchronizationState());
-// } else {
-// fail();
-// }
-// }
-//
-// unreadAction = new MarkTaskUnreadAction(elements);
-// unreadAction.run();
-// assertEquals(2, query.getChildren().size());
-// for (ITaskElement element : query.getChildren()) {
-// if (element instanceof MockTask) {
-// MockTask mockTask = (MockTask) element;
-// assertEquals(SynchronizationState.INCOMING, mockTask.getSynchronizationState());
-// } else {
-// fail();
-// }
-// }
-// }
-// public void testQueryHitsNotDropped() {
-// MockTask task1 = new MockTask("1");
-// MockTask task2 = new MockTask("2");
-// task1.setLastReadTimeStamp("today");
-// task2.setLastReadTimeStamp("today");
-// MockRepositoryQuery query = new MockRepositoryQuery("summary");
-// taskList.addQuery(query);
-// taskList.addTask(task1, query);
-// taskList.addTask(task2, query);
-// //assertEquals(0, taskList.getArchiveContainer().getChildren().size());
-// assertEquals(2, query.getChildren().size());
-// TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository(
-// MockRepositoryConnector.REPOSITORY_URL);
-// Set<RepositoryQuery> queries = new HashSet<RepositoryQuery>();
-// queries.add(query);
-// TasksUiInternal.synchronizeQueries(new MockRepositoryConnector(), repository, queries, null, true);
-// //assertEquals(2, taskList.getArchiveContainer().getChildren().size());
-// assertEquals(0, query.getChildren().size());
-// }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataStoreTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataStoreTest.java
deleted file mode 100644
index 3e41040af..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataStoreTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataState;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataStore;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskOperation;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author Robert Elves
- * @author Steffen Pingel
- */
-public class TaskDataStoreTest extends TestCase {
-
- private static final String MOCK_ID = "1";
-
- private TaskDataStore storage;
-
- private TaskRepository taskRepository;
-
- private File file;
-
- private TaskData data;
-
- private TaskDataState state;
-
- @Override
- protected void setUp() throws Exception {
- TaskRepositoryManager taskRepositoryManager = new TaskRepositoryManager();
- storage = new TaskDataStore(taskRepositoryManager);
- taskRepository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- file = File.createTempFile("mylyn", null);
- file.deleteOnExit();
-
- taskRepositoryManager.addRepositoryConnector(new MockRepositoryConnector());
- taskRepositoryManager.addRepository(taskRepository);
- }
-
- @Override
- protected void tearDown() throws Exception {
- file.delete();
- }
-
- public void testPutAndGet() throws Exception {
- TaskDataState state = new TaskDataState(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL, MOCK_ID);
-
- TaskData data = new TaskData(new TaskAttributeMapper(taskRepository), MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL, MOCK_ID);
- TaskMapper mapper = new TaskMapper(data, true);
- mapper.getTaskData().getRoot().createAttribute("attributeKey1").setValue("attValue!");
- mapper.setDescription("description");
- mapper.setSummary("summary");
- mapper.setTaskKind("task kind");
-
- TaskData oldData = new TaskData(new TaskAttributeMapper(taskRepository),
- MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, MOCK_ID);
-
- state.setRepositoryData(data);
- state.setLastReadData(oldData);
- state.setEditsData(null);
-
- storage.putTaskData(file, state);
-
- TaskDataState retrieved = storage.getTaskDataState(file);
- assertNotNull(retrieved);
- TaskData newTaskData = retrieved.getRepositoryData();
- assertNotNull(newTaskData);
- assertEquals(MockRepositoryConnector.REPOSITORY_KIND, newTaskData.getConnectorKind());
- mapper = new TaskMapper(newTaskData);
- assertEquals("description", mapper.getDescription());
- assertEquals("summary", mapper.getSummary());
- assertEquals("task kind", mapper.getTaskKind());
- }
-
- public void testDelete() throws Exception {
- TaskData data = new TaskData(new TaskAttributeMapper(taskRepository), MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL, MOCK_ID);
- TaskDataState state = new TaskDataState(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL, MOCK_ID);
- state.setRepositoryData(data);
- storage.putTaskData(file, state);
- storage.deleteTaskData(file);
- assertFalse(file.exists());
- assertNull(storage.getTaskDataState(file));
- }
-
- private void setupData() {
- data = new TaskData(new TaskAttributeMapper(taskRepository), MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL, MOCK_ID);
- state = new TaskDataState(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL,
- MOCK_ID);
- state.setRepositoryData(data);
- }
-
- public void testAttributes() throws Exception {
- setupData();
-
- TaskAttribute attribute = data.getRoot().createAttribute("testId");
- attribute.getMetaData().setLabel("testName").setReadOnly(true);
- attribute.putOption("Option Name 1", "Option Value 1");
- attribute.putOption("Option Name 2", "Option Value 2");
- attribute.addValue("Value 1");
- attribute.addValue("Value 2");
- attribute.addValue("Value 3");
- attribute.getMetaData().putValue("MetaKey1", "MetaValue1");
- attribute.getMetaData().putValue("MetaKey2", "MetaValue2");
- attribute.getMetaData().putValue("MetaKey3", "MetaValue3");
- attribute.getMetaData().putValue("MetaKey4", "MetaValue4");
-
- assertData(1);
- }
-
- private void assertData(int attributeCount) throws CoreException {
- storage.putTaskData(file, state);
- state = storage.getTaskDataState(file);
-
- assertNotNull(state);
- assertNotNull(state.getRepositoryData());
- assertEquals(data.getRoot().toString(), state.getRepositoryData().getRoot().toString());
- assertEquals(attributeCount, state.getRepositoryData().getRoot().getAttributes().size());
- }
-
- public void testOperations() throws Exception {
- setupData();
-
- TaskOperation.applyTo(data.getRoot().createAttribute("op1"), "op1 id", "op1 label");
- TaskOperation.applyTo(data.getRoot().createAttribute("op2"), "op2 id", "op2 label");
-
- assertData(2);
- }
-
- public void testComments() throws Exception {
- setupData();
-
- TaskCommentMapper comment1 = new TaskCommentMapper();
- comment1.setCommentId("attachmentId1");
- TaskAttribute attr = data.getRoot().createAttribute("1");
- comment1.applyTo(attr);
- attr.createAttribute("attr1").setValue("attr1Name");
-
- TaskCommentMapper comment2 = new TaskCommentMapper();
- comment2.setCommentId("attachmentId2");
- comment2.setCreationDate(new Date());
- comment2.setNumber(100);
- comment2.applyTo(data.getRoot().createAttribute("2"));
-
- assertData(2);
- }
-
- public void testAttachments() throws Exception {
- setupData();
-
- TaskAttachmentMapper attachment1 = new TaskAttachmentMapper();
- attachment1.setAuthor(taskRepository.createPerson("thecreator"));
- attachment1.setDeprecated(false);
- attachment1.setPatch(true);
- TaskAttribute attr = data.getRoot().createAttribute("1");
- attachment1.applyTo(attr);
- attr.createAttribute("attr1").setValue("attr1Name");
- attr.createAttribute("attr2").setValue("attr1Name");
-
- TaskAttachmentMapper attachment2 = new TaskAttachmentMapper();
- attachment2.setAuthor(taskRepository.createPerson("thecreator2"));
- attachment2.setDeprecated(true);
- attachment2.setPatch(false);
- attachment2.applyTo(data.getRoot().createAttribute("2"));
-
- assertData(2);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDiffUtilTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDiffUtilTest.java
deleted file mode 100644
index 9d8fdf320..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDiffUtilTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDiffUtil;
-
-/**
- * @author Eugene Kuleshov
- * @author Steffen Pingel
- */
-public class TaskDiffUtilTest extends TestCase {
-
- public void testFoldSpaces() {
- assertEquals("a b", TaskDiffUtil.foldSpaces("a b"));
- assertEquals("", TaskDiffUtil.foldSpaces(" "));
- assertEquals("a b c d", TaskDiffUtil.cleanCommentText("a b c d"));
- assertEquals("b", TaskDiffUtil.cleanCommentText(" b "));
- assertEquals("b", TaskDiffUtil.cleanCommentText(" b"));
- }
-
- public void testCleanComment() {
- assertEquals("attachment: some attachment. attachment description",
- TaskDiffUtil.cleanCommentText(("Created an attachment (id=111)\n" //
- + "some attachment\n" //
- + "\n" //
- + "attachment description")));
- assertEquals("attachment: some attachment", TaskDiffUtil.cleanCommentText(("Created an attachment (id=111)\n" //
- + "some attachment\n" //
- + "\n")));
- assertEquals("some comment", TaskDiffUtil.cleanCommentText(("(In reply to comment #11)\n" //
- + "some comment\n")));
- assertEquals("some comment. other comment", TaskDiffUtil.cleanCommentText((" (In reply to comment #11)\n" //
- + "some comment\n" //
- + "\n" //
- + " (In reply to comment #12)\n" //
- + "other comment\n")));
- assertEquals("some comment. other comment", TaskDiffUtil.cleanCommentText((" (In reply to comment #11)\n" //
- + "some comment. \n" //
- + "\n" //
- + " (In reply to comment #12)\n" //
- + "> loren ipsum\n" + "> loren ipsum\n" + "other comment\n")));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskExportImportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskExportImportTest.java
deleted file mode 100644
index 25d2f9208..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskExportImportTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Jevgeni Holodkov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import org.eclipse.mylyn.context.tests.AbstractContextTest;
-
-/**
- *
- * @author Jevgeni Holodkov
- */
-//FIXME fix test
-public class TaskExportImportTest extends AbstractContextTest {
-
- public void testRewriteTestCases() {
- }
-
-// private File destinationDir;
-//
-// @Override
-// protected void setUp() throws Exception {
-// TasksUi.getTaskActivityManager().deactivateActiveTask();
-// super.setUp();
-//
-// // Create test export destination directory
-// destinationDir = new File(TasksUiPlugin.getDefault().getDataDirectory(), "TestDir");
-// CommonsTestUtil.deleteFolder(destinationDir);
-// destinationDir.mkdir();
-// assertTrue(destinationDir.exists());
-// }
-//
-// @Override
-// protected void tearDown() throws Exception {
-// CommonsTestUtil.deleteFolder(destinationDir);
-// super.tearDown();
-// }
-//
-// public void testTaskContextExport() throws Exception {
-//
-// LocalTask task = TasksUiInternal.createNewLocalTask("Test local task");
-// TaskList taskList = TasksUiPlugin.getTaskList();
-// taskList.addTask(task, taskList.getDefaultCategory());
-// assertTrue(taskList.getAllTasks().size() > 0);
-//
-// InteractionContext mockContext = (InteractionContext) ContextCorePlugin.getContextStore().loadContext(
-// task.getHandleIdentifier());
-//
-// ContextCorePlugin.getContextManager().internalActivateContext(mockContext);
-// InteractionEvent event = new InteractionEvent(InteractionEvent.Kind.EDIT, "structureKind", "handle", "originId");
-// mockContext.parseEvent(event);
-// ContextCore.getContextManager().deactivateContext(mockContext.getHandleIdentifier());
-//
-// assertTrue(ContextCorePlugin.getContextStore().getContextDirectory().exists());
-// ContextCorePlugin.getContextStore().saveContext(mockContext);
-// assertTrue(ContextCore.getContextManager().hasContext(task.getHandleIdentifier()));
-//
-// File outFile = new File(destinationDir + File.separator + "local-task.xml.zip");
-// TasksUiPlugin.getTaskListWriter().writeTask(task, outFile);
-// assertTrue(outFile.exists());
-//
-// // check the content of the archive
-// List<String> files = new ArrayList<String>();
-// ZipInputStream inputStream = new ZipInputStream(new FileInputStream(outFile));
-// ZipEntry entry = null;
-// while ((entry = inputStream.getNextEntry()) != null) {
-// files.add(entry.getName());
-// }
-// inputStream.close();
-//
-// assertTrue("exported file contains a file with queries", files.contains(ITasksCoreConstants.OLD_TASK_LIST_FILE));
-//
-// String handleIdentifier = mockContext.getHandleIdentifier();
-// String encoded = URLEncoder.encode(handleIdentifier, InteractionContextManager.CONTEXT_FILENAME_ENCODING);
-// String contextName = encoded + InteractionContextManager.CONTEXT_FILE_EXTENSION_OLD;
-// assertTrue("exported file contains a file with context", files.contains(contextName));
-//
-// // reset all data
-// TaskTestUtil.resetTaskList();
-// assertTrue(taskList.getAllTasks().size() == 0);
-//
-// ContextCore.getContextManager().deleteContext(handleIdentifier);
-// assertFalse(ContextCore.getContextManager().hasContext(task.getHandleIdentifier()));
-//
-// // load data back
-// List<AbstractTask> tasks = TasksUiPlugin.getTaskListWriter().readTasks(outFile);
-// IInteractionContext loadedContext = ContextCore.getContextStore().importContext(task.getHandleIdentifier(),
-// outFile);
-//
-// // check with original one
-// assertEquals("There is 1 task loaded", 1, tasks.size());
-// assertEquals("Loaded task is correct", task, tasks.get(0));
-// assertEquals("Loaded context is correct", mockContext, loadedContext);
-//
-// // import data
-// for (AbstractTask loadedTask : tasks) {
-// taskList.addTask(loadedTask);
-// }
-// ContextCore.getContextStore().importContext(task.getHandleIdentifier(), outFile);
-//// ContextCorePlugin.getContextStore().importContext(loadedContext);
-//
-// // check that context was imported and is the same as original one
-// IInteractionContext savedContext = ContextCorePlugin.getContextStore().loadContext(task.getHandleIdentifier());
-// assertEquals("Saved context is the same as original one", mockContext, savedContext);
-// assertEquals("Saved task is the same as original one", task, taskList.getTask(task.getHandleIdentifier()));
-//
-// ContextCorePlugin.getContextManager().deactivateAllContexts();
-// }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskKeyComparatorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskKeyComparatorTest.java
deleted file mode 100644
index 1e087c3c0..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskKeyComparatorTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Eugene Kulehsov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskKeyComparator;
-
-/**
- * @author Eugene Kuleshov - bug 129511
- * @author Mik Kersten
- */
-public class TaskKeyComparatorTest extends TestCase {
-
- public void testPatterns() {
- comparisonCheck("", new String[] { null, null, "" });
- comparisonCheck(" ", new String[] { null, null, " " });
- comparisonCheck("aa", new String[] { null, null, "aa" });
- comparisonCheck("11", new String[] { "", "11", "" });
- comparisonCheck("11 aa", new String[] { "", "11", " aa" });
- comparisonCheck(" 11 aa", new String[] { null, null, " 11 aa" });
- comparisonCheck("aa11 bb", new String[] { "aa", "11", " bb" });
- comparisonCheck("aa-11 bb", new String[] { "aa-", "11", " bb" });
- comparisonCheck("aa 11 bb", new String[] { null, null, "aa 11 bb" });
- comparisonCheck("aa bb 11 cc", new String[] { null, null, "aa bb 11 cc" });
-
- comparisonCheck("aa", "aa", 0);
- comparisonCheck("aa", "bb", -1);
- comparisonCheck("bb", "aa", 1);
-
- comparisonCheck("aa11", "aa11", 0);
- comparisonCheck("aa11", "aa12", -1);
- comparisonCheck("aa12", "aa11", 1);
-
- comparisonCheck("aa1", "aa11", -1);
- comparisonCheck("aa1", "aa2", -1);
- comparisonCheck("aa1", "aa21", -1);
-
- comparisonCheck("aa1 aaa", "aa1 aaa", 0);
- comparisonCheck("aa1 aaa", "aa1 bbb", -1);
- comparisonCheck("aa1 bbb", "aa11 aaa", -1);
- }
-
- private void comparisonCheck(String s, String[] exptecation) {
- String[] res = new TaskKeyComparator().split(s);
- assertTrue("Invalid " + Arrays.asList(res) + " " + Arrays.asList(exptecation), Arrays.equals(res, exptecation));
- }
-
- private static final TaskKeyComparator tkc = new TaskKeyComparator();
-
- public void comparisonCheck(String s1, String s2, int n) {
- final String[] c1 = new String[] { null, null, s1 };
- final String[] c2 = new String[] { null, null, s2 };
- assertEquals(n, tkc.compare(c1, c2));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListBackupManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListBackupManagerTest.java
deleted file mode 100644
index 6cb74b8bf..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListBackupManagerTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.commons.tests.support.CommonsTestUtil;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.TaskListBackupManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-
-/**
- * @author Rob Elves
- */
-public class TaskListBackupManagerTest extends TestCase {
-
- private AbstractTask task1;
-
- private TaskListBackupManager backupManager;
-
- @Override
- protected void setUp() throws Exception {
- backupManager = TasksUiPlugin.getBackupManager();
- CommonsTestUtil.deleteFolder(new File(TasksUiPlugin.getDefault().getBackupFolderPath()));
- TaskTestUtil.resetTaskList();
- }
-
- public void testAutoBackupDisabled() throws Exception {
- backupManager.start(5);
- Thread.sleep(1000);
- assertEquals(0, backupManager.getBackupFiles().size());
-
- task1 = new LocalTask("handle", "label");
- TasksUiPlugin.getTaskList().addTask(task1);
- backupManager.stop();
- backupManager.start(5);
- Thread.sleep(1000);
- assertEquals(1, backupManager.getBackupFiles().size());
- }
-
- public void testAutoBackupEnabled() throws Exception {
- task1 = new LocalTask("handle", "label");
- TasksUiPlugin.getTaskList().addTask(task1);
- backupManager.backupNow(true, null);
- assertEquals(1, backupManager.getBackupFiles().size());
-
- // make sure a new date stamp is generated
- Thread.sleep(1000);
- backupManager.backupNow(true, null);
- assertEquals(2, backupManager.getBackupFiles().size());
-
- // test removal of old backups
- TasksUiPlugin.getBackupManager().removeOldBackups();
- assertEquals(1, backupManager.getBackupFiles().size());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListContentProviderTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListContentProviderTest.java
deleted file mode 100644
index 9dc62c7fb..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListContentProviderTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Felix Schwartz - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListContentProvider;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-
-/**
- * @author Felix Schwarz
- */
-public class TaskListContentProviderTest extends TestCase {
-
- private TaskListContentProvider provider;
-
- private TaskListView view;
-
- private TaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- TasksUiUtil.openTasksViewInActivePerspective();
- view = TaskListView.getFromActivePerspective();
- provider = (TaskListContentProvider) view.getViewer().getContentProvider();
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.GROUP_SUBTASKS, true);
- view.clearFilters();
- view.addFilter(view.getCompleteFilter());
- taskList = TasksUiPlugin.getTaskList();
- }
-
- @Override
- protected void tearDown() throws Exception {
- view.clearFilters();
- super.tearDown();
- }
-
- public void testHasChildren() {
-
- AbstractTask parent = new LocalTask("parent", "parent label");
- AbstractTask completedChild = new LocalTask("completed child", "completed child label");
- completedChild.setCompletionDate(new Date());
- taskList.addTask(parent);
- taskList.addTask(completedChild, parent);
- assertFalse(provider.hasChildren(parent));
-
- AbstractTask incompleteChild = new LocalTask("incomplete child", "incomplete child label");
- incompleteChild.setCompletionDate(null);
- taskList.addTask(incompleteChild, parent);
- assertTrue(provider.hasChildren(parent));
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDropAdapterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDropAdapterTest.java
deleted file mode 100644
index 7072f409c..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDropAdapterTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.Collection;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListDropAdapter;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class TaskListDropAdapterTest extends TestCase {
-
- private TaskListDropAdapter dropAdapter;
-
- private TaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
-
- TreeViewer viewer = TaskListView.getFromActivePerspective().getViewer();
- assertNotNull(viewer);
- dropAdapter = new TaskListDropAdapter(viewer);
- taskList = TasksUiPlugin.getTaskList();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskList();
- }
-
- public void testUrlDrop() {
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- String url = "http://eclipse.org/mylyn";
- String title = "Mylyn Project";
- String urlData = url + "\n" + title;
-
- dropAdapter.performDrop(urlData);
- Collection<ITask> tasks = taskList.getDefaultCategory().getChildren();
- assertNotNull(tasks);
- assertEquals(1, tasks.size());
- assertEquals(url, tasks.iterator().next().getUrl());
-
- // TODO: Failing due to asynchronous retrieval of title from url
- // assertEquals(title, tasks.get(0).getDescription(false));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java
deleted file mode 100644
index 0df25e2ec..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-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.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author Robert Elves
- * @author Steffen Pingel
- */
-public class TaskListExternalizationTest extends TestCase {
-
- private TaskList taskList;
-
- private TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED, false);
-
- TaskTestUtil.resetTaskListAndRepositories();
-
- repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
-
- taskList = TasksUiPlugin.getTaskList();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskList();
- }
-
- public void testTaskAttributes() throws Exception {
- AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
- task1.setAttribute("key", "value");
- assertEquals(1, task1.getAttributes().size());
-
- TaskTestUtil.saveAndReadTasklist();
-
- task1 = taskList.getTask(task1.getHandleIdentifier());
- assertNotNull(task1);
- assertEquals(1, task1.getAttributes().size());
- assertEquals("value", task1.getAttribute("key"));
- }
-
- public void testTaskAttributeDelete() throws Exception {
- AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
- task1.setAttribute("key", "value");
- task1.setAttribute("key", null);
- assertEquals(0, task1.getAttributes().size());
- assertEquals(null, task1.getAttribute("key"));
-
- TaskTestUtil.saveAndReadTasklist();
-
- task1 = taskList.getTask(task1.getHandleIdentifier());
- assertNotNull(task1);
- assertEquals(0, task1.getAttributes().size());
- assertEquals(null, task1.getAttribute("key"));
- }
-
- public void testUncategorizedTasksNotLost() throws Exception {
- RepositoryQuery query = TaskTestUtil.createMockQuery("1");
- taskList.addQuery(query);
- TaskTask task = TaskTestUtil.createMockTask("1");
- taskList.addTask(task, query);
- taskList.addTask(task, taskList.getDefaultCategory());
- assertTrue(query.contains(task.getHandleIdentifier()));
- assertTrue(taskList.getDefaultCategory().contains(task.getHandleIdentifier()));
-
- TaskTestUtil.saveAndReadTasklist();
-
- assertTrue(taskList.getDefaultCategory().contains(task.getHandleIdentifier()));
- }
-
- public void testUniqueTaskId() throws Exception {
- LocalTask task1 = TasksUiInternal.createNewLocalTask("label");
- taskList.addTask(task1);
- LocalTask task2 = TasksUiInternal.createNewLocalTask("label");
- taskList.addTask(task2);
- assertEquals(2, taskList.getLastLocalTaskId());
- taskList.deleteTask(task2);
- LocalTask task3 = TasksUiInternal.createNewLocalTask("label");
- taskList.addTask(task3);
- assertTrue(task3.getHandleIdentifier() + " should end with 3", task3.getHandleIdentifier().endsWith("3"));
- assertEquals(3, taskList.getLastLocalTaskId());
- assertEquals(2, taskList.getAllTasks().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(2, taskList.getAllTasks().size());
- assertEquals(3, taskList.getLastLocalTaskId());
- ITask task4 = TasksUiInternal.createNewLocalTask("label");
- assertTrue(task4.getHandleIdentifier() + " should end with 4", task4.getHandleIdentifier().endsWith("4"));
- }
-
- public void testSingleTaskDeletion() throws Exception {
- TaskTask task = TaskTestUtil.createMockTask("1");
- taskList.addTask(task, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL));
- assertEquals(1, taskList.getAllTasks().size());
- taskList.deleteTask(task);
- assertEquals(0, taskList.getAllTasks().size());
- taskList.addTask(task, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL));
- assertEquals(1, taskList.getAllTasks().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, taskList.getAllTasks().size());
-
- taskList.deleteTask(task);
- assertEquals(0, taskList.getAllTasks().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(0, taskList.getAllTasks().size());
- }
-
- public void testCategoryPersistance() throws Exception {
- TaskTask task = TaskTestUtil.createMockTask("1");
- TaskCategory category = new TaskCategory("cat");
- taskList.addCategory(category);
- taskList.addTask(task, category);
- assertNotNull(taskList);
- assertEquals(2, taskList.getCategories().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals("" + taskList.getCategories(), 2, taskList.getCategories().size());
- assertEquals(1, taskList.getAllTasks().size());
- }
-
- public void testCreate() throws Exception {
- TaskTask repositoryTask = TaskTestUtil.createMockTask("1");
- taskList.addTask(repositoryTask, taskList.getDefaultCategory());
- assertEquals(1, taskList.getDefaultCategory().getChildren().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, taskList.getAllTasks().size());
- }
-
- public void testCreateAndMove() throws Exception {
- TaskTask repositoryTask = TaskTestUtil.createMockTask("1");
- taskList.addTask(repositoryTask);
- assertEquals(1, taskList.getAllTasks().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, taskList.getAllTasks().size());
- assertEquals(1, taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL).getChildren().size());
- }
-
- public void testArchiveRepositoryTaskExternalization() throws Exception {
- TaskTask repositoryTask = TaskTestUtil.createMockTask("1");
- taskList.addTask(repositoryTask);
- assertEquals(1, taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL).getChildren().size());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL).getChildren().size());
- }
-
- public void testRepositoryTasksAndCategoriesMultiRead() throws Exception {
- TaskCategory cat1 = new TaskCategory("Category 1");
- taskList.addCategory(cat1);
-
- TaskTask reportInCat1 = TaskTestUtil.createMockTask("123");
- taskList.addTask(reportInCat1, cat1);
- assertEquals(cat1, TaskCategory.getParentTaskCategory(reportInCat1));
-
- TaskTestUtil.saveAndReadTasklist();
-
- // read once
- Set<AbstractTaskCategory> readCats = taskList.getTaskCategories();
- assertTrue(taskList.getCategories().contains(cat1));
- Iterator<AbstractTaskCategory> iterator = readCats.iterator();
-
- boolean found = false;
- while (iterator.hasNext()) {
- ITaskContainer readCat1 = iterator.next();
- if (cat1.equals(readCat1)) {
- found = true;
- assertEquals(1, readCat1.getChildren().size());
- }
- }
- if (!found) {
- fail(" Category not found afer tasklist read");
- }
-
- TaskTestUtil.saveAndReadTasklist();
-
- // read again
- readCats = taskList.getTaskCategories();
- assertTrue(taskList.getCategories().contains(cat1));
-
- iterator = readCats.iterator();
- found = false;
- while (iterator.hasNext()) {
- ITaskContainer readCat1 = iterator.next();
- if (cat1.equals(readCat1)) {
- found = true;
- assertEquals(1, readCat1.getChildren().size());
- }
- }
- if (!found) {
- fail(" Category not found afer tasklist read");
- }
- }
-
- public void testSubTaskExternalization() throws Exception {
- Set<AbstractTask> rootTasks = new HashSet<AbstractTask>();
- AbstractTask task1 = new LocalTask("1", "task1");
- taskList.addTask(task1);
- rootTasks.add(task1);
-
- AbstractTask sub2 = new LocalTask("2", "sub 2");
- taskList.addTask(sub2, task1);
- assertEquals(1, task1.getChildren().size());
- assertTrue(rootTasks.containsAll(taskList.getDefaultCategory().getChildren()));
-
- TaskTestUtil.saveAndReadTasklist();
-
- // XXX: This should pass once sub tasks are handled properly
-// assertTrue(rootTasks.containsAll(taskList.getOrphanContainer(
-// LocalRepositoryConnector.REPOSITORY_URL).getChildren()));
-
- Collection<ITask> readList = taskList.getDefaultCategory().getChildren();
- for (ITask task : readList) {
- if (task.equals(task1)) {
- assertEquals(task1.getSummary(), task.getSummary());
- assertEquals(1, ((ITaskContainer) task).getChildren().size());
- }
- }
- }
-
- public void testCreationAndExternalization() throws Exception {
- Set<AbstractTask> rootTasks = new HashSet<AbstractTask>();
- AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
- rootTasks.add(task1);
- assertEquals(1, taskList.getAllTasks().size());
-
- AbstractTask sub1 = TasksUiInternal.createNewLocalTask("sub 1");
- taskList.addTask(sub1, task1);
- // default category, mock orphans, mock unsubmitted
- int baseRootElementsCount = 3;
- assertEquals(baseRootElementsCount, taskList.getRootElements().size());
-
- //taskList.moveToContainer(sub1, taskList.getArchiveContainer());
-
- AbstractTask task2 = TasksUiInternal.createNewLocalTask("task 2");
- rootTasks.add(task2);
- assertEquals(3, taskList.getAllTasks().size());
-
- Set<TaskCategory> categories = new HashSet<TaskCategory>();
- Set<AbstractTask> cat1Contents = new HashSet<AbstractTask>();
- TaskCategory cat1 = new TaskCategory("Category 1");
- taskList.addCategory(cat1);
- categories.add(cat1);
- assertEquals(baseRootElementsCount + 1, taskList.getRootElements().size());
-
- AbstractTask task3 = TasksUiInternal.createNewLocalTask("task 3");
- taskList.addTask(task3, cat1);
- cat1Contents.add(task3);
- assertEquals(4, taskList.getAllTasks().size());
- assertEquals(cat1, TaskCategory.getParentTaskCategory(task3));
- AbstractTask sub2 = TasksUiInternal.createNewLocalTask("sub 2");
- assertEquals(5, taskList.getAllTasks().size());
- taskList.addTask(sub2, task3);
- //taskList.moveToContainer(sub2, taskList.getArchiveContainer());
-
- AbstractTask task4 = TasksUiInternal.createNewLocalTask("task 4");
- taskList.addTask(task4, cat1);
- cat1Contents.add(task4);
- assertEquals(6, taskList.getAllTasks().size());
-
- TaskTask reportInCat1 = TaskTestUtil.createMockTask("123");
- taskList.addTask(reportInCat1, cat1);
- assertEquals(cat1, TaskCategory.getParentTaskCategory(reportInCat1));
- cat1Contents.add(reportInCat1);
- assertEquals(7, taskList.getAllTasks().size());
-
- assertEquals(baseRootElementsCount + 1, taskList.getRootElements().size());
-
- TaskTestUtil.saveAndReadTasklist();
-
- Collection<ITask> readList = taskList.getDefaultCategory().getChildren();
- for (ITask task : readList) {
- if (task.equals(task1)) {
- assertEquals(task1.getSummary(), task.getSummary());
- assertEquals(1, ((AbstractTaskContainer) task).getChildren().size());
- }
- }
-
- Set<AbstractTaskCategory> readCats = taskList.getTaskCategories();
- assertTrue(taskList.getCategories().contains(cat1));
- Iterator<AbstractTaskCategory> iterator = readCats.iterator();
- boolean found = false;
- while (iterator.hasNext()) {
- ITaskContainer readCat1 = iterator.next();
- if (cat1.equals(readCat1)) {
- found = true;
- for (ITask task : readCat1.getChildren()) {
- assertTrue(cat1Contents.contains(task));
- }
- }
- }
- if (!found) {
- fail(" Category not found afer tasklist read");
- }
- }
-
- public void testExternalizationOfHandlesWithDash() throws Exception {
- AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
- taskList.addTask(task1, taskList.getDefaultCategory());
-
- TaskTestUtil.saveAndReadTasklist();
- assertTrue(taskList.getDefaultCategory().getChildren().contains(task1));
- }
-
- /**
- * If a task exists in a category and is a query hit it should not be removed from the category
- *
- * @throws Exception
- */
- public void testQueryRemovedTaskInCategory() throws Exception {
- TaskTask mockTask = TaskTestUtil.createMockTask("1");
- RepositoryQuery mockQuery = TaskTestUtil.createMockQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
- assertTrue(taskList.getDefaultCategory().isEmpty());
- taskList.addTask(mockTask, taskList.getDefaultCategory());
- assertEquals(1, taskList.getCategories().size());
- assertFalse(taskList.getDefaultCategory().isEmpty());
-
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, taskList.getCategories().size());
- assertEquals(1, taskList.getQueries().size());
- assertFalse(taskList.getDefaultCategory().isEmpty());
-
- taskList.deleteQuery(mockQuery);
- TaskTestUtil.saveAndReadTasklist();
- assertEquals(1, taskList.getCategories().size());
- assertEquals(0, taskList.getQueries().size());
- assertFalse(taskList.getDefaultCategory().isEmpty());
- }
-
- /**
- * New local tasks should automatically be created in the Local orphaned folder.
- */
- public void testAddLocalTask() {
- Set<ITask> tasks = taskList.getTasks(LocalRepositoryConnector.REPOSITORY_URL);
- assertTrue(tasks.isEmpty());
- ITask localTask = TasksUiInternal.createNewLocalTask("Task 1");
- assertNotNull(localTask);
- assertEquals(1, ((AbstractTask) localTask).getParentContainers().size());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListPresentationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListPresentationTest.java
deleted file mode 100644
index d3034d9c9..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListPresentationTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-
-/**
- * @author Mik Kersten
- */
-public class TaskListPresentationTest extends TestCase {
-
- public void testDefaultPresentations() {
-
- List<AbstractTaskListPresentation> presentations = TaskListView.getPresentations();
- // depends on whether Sandbox is running
- assertTrue(presentations.size() == 2 || presentations.size() == 7);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSaveManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSaveManagerTest.java
deleted file mode 100644
index bfded4a7f..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSaveManagerTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Locale;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-
-/**
- * @author Rob Elves
- */
-public class TaskListSaveManagerTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testRemovalOfSnapshots() throws IOException {
- String backupPath = TasksUiPlugin.getDefault().getBackupFolderPath();
- File backupFolder = new File(backupPath);
- if (!backupFolder.exists()) {
- backupFolder.mkdir();
- }
-
- Calendar time = TaskActivityUtil.getCalendar();
-
- File thisHour = createFile(backupFolder, time);
- time.add(Calendar.MILLISECOND, -1000);
- File thisHourEarlier = createFile(backupFolder, time);
-
- TaskActivityUtil.snapStartOfHour(time);
- time.add(Calendar.HOUR_OF_DAY, -1);
- time.add(Calendar.MILLISECOND, -3000);
- File previousHour = createFile(backupFolder, time);
-
- time.add(Calendar.MILLISECOND, -3000);
- File previousHour2 = createFile(backupFolder, time);
-
- time.add(Calendar.DAY_OF_YEAR, -1);
- File previousDay = createFile(backupFolder, time);
-
- time.add(Calendar.HOUR_OF_DAY, -1);
- File previousDay2 = createFile(backupFolder, time);
-
- time.add(Calendar.DAY_OF_YEAR, -3);
- File previousDay3 = createFile(backupFolder, time);
-
- time.add(Calendar.HOUR_OF_DAY, -1);
- File previousDay4 = createFile(backupFolder, time);
-
- time.add(Calendar.MILLISECOND, -4000);
- File previousDay5 = createFile(backupFolder, time);
-
- TasksUiPlugin.getBackupManager().removeOldBackups();
- assertTrue(thisHour.exists());
- assertFalse(thisHourEarlier.exists());
- assertTrue(previousHour.exists());
- assertFalse(previousHour2.exists());
- assertTrue(previousDay.exists());
- assertFalse(previousDay2.exists());
- assertTrue(previousDay3.exists());
- assertFalse(previousDay4.exists());
- assertFalse(previousDay5.exists());
- }
-
- public void testAddTaskDuringSave() {
- // add task
- // save
- // try to add task during save
- }
-
- // test cancellation
-
- private File createFile(File backupFolder, Calendar time) {
- SimpleDateFormat format = new SimpleDateFormat(ITasksCoreConstants.FILENAME_TIMESTAMP_FORMAT, Locale.ENGLISH);
- File newFile = new File(backupFolder, ITasksCoreConstants.OLD_PREFIX_TASKLIST + "-"
- + format.format(time.getTime()) + ITasksCoreConstants.FILE_EXTENSION);
- try {
- newFile.createNewFile();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return newFile;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSorterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSorterTest.java
deleted file mode 100644
index 67368a571..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListSorterTest.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * George Lindholm - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.WeekDateRange;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListInterestSorter;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListSorter;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author Mik Kersten
- * @author George Lindholm
- * @author Frank Becker
- */
-public class TaskListSorterTest extends TestCase {
-
- public void testSortWithError() {
- final TaskListSorter sorter = new TaskListSorter();
- ITask task1 = new LocalTask("1", null);
- ITask task2 = new MockTask("local", "", "1");
- Object[] tasks = { task1, task2 };
- Date start = new Date();
- task2.setCreationDate(start);
- task1.setCreationDate(new Date(start.getTime() - 1));
- task1.setPriority("P5");
- task2.setPriority("P1");
-
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.TASK_ID);
- sorter.sort(new EmptyViewer(), tasks);
- assertEquals(task1, tasks[1]);
- assertEquals(task2, tasks[0]);
-
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.DATE_CREATED);
- sorter.sort(new EmptyViewer(), tasks);
- assertEquals(task1, tasks[0]);
- assertEquals(task2, tasks[1]);
-
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.PRIORITY);
- sorter.sort(new EmptyViewer(), tasks);
- assertEquals(task1, tasks[1]);
- assertEquals(task2, tasks[0]);
-
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.SUMMARY);
- sorter.getComparator().setSortDirection(-1);
- sorter.sort(new EmptyViewer(), tasks);
- assertEquals(task1, tasks[0]);
- assertEquals(task2, tasks[1]);
-
- }
-
- public void testRootTaskSorting() {
- TaskListSorter sorter = new TaskListSorter();
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.SUMMARY);
-
- AbstractTask task = new LocalTask("1", "");
- UncategorizedTaskContainer uncategorizedTaskContainer = new UncategorizedTaskContainer();
- UnsubmittedTaskContainer unsubmittedTaskContainer = new UnsubmittedTaskContainer("connectorKind",
- "repositoryUrl");
- TaskCategory category = new TaskCategory("cat");
- RepositoryQuery repositoryQuery = new RepositoryQuery("connectorKind", "queryName");
- TaskGroup taskGroup = new TaskGroup("parentHandle", "summary", "groupBy");
- UnmatchedTaskContainer unmatchedTaskContainer = new UnmatchedTaskContainer("connectorKind", "repositoryUrl");
-
- checkToRootElements(sorter, uncategorizedTaskContainer, unsubmittedTaskContainer);
- checkToRootElements(sorter, uncategorizedTaskContainer, category);
- checkToRootElements(sorter, uncategorizedTaskContainer, repositoryQuery);
- checkToRootElements(sorter, uncategorizedTaskContainer, taskGroup);
- checkToRootElements(sorter, uncategorizedTaskContainer, unmatchedTaskContainer);
-
- checkToRootElements(sorter, unsubmittedTaskContainer, category);
- checkToRootElements(sorter, unsubmittedTaskContainer, repositoryQuery);
- checkToRootElements(sorter, unsubmittedTaskContainer, taskGroup);
- checkToRootElements(sorter, unsubmittedTaskContainer, unmatchedTaskContainer);
-
- checkToRootElements(sorter, category, repositoryQuery);
- checkToRootElements(sorter, category, taskGroup);
- checkToRootElements(sorter, category, unmatchedTaskContainer);
-
- checkToRootElements(sorter, repositoryQuery, taskGroup);
- checkToRootElements(sorter, repositoryQuery, unmatchedTaskContainer);
-
- checkToRootElements(sorter, taskGroup, unmatchedTaskContainer);
-
- checkToRootElements(sorter, task, uncategorizedTaskContainer);
- checkToRootElements(sorter, task, unsubmittedTaskContainer);
- checkToRootElements(sorter, task, category);
- checkToRootElements(sorter, task, repositoryQuery);
- checkToRootElements(sorter, task, taskGroup);
- checkToRootElements(sorter, task, unmatchedTaskContainer);
- }
-
- private void checkToRootElements(TaskListSorter sorter, AbstractTaskContainer e1, AbstractTaskContainer e2) {
- assertEquals(-1, sorter.compare(null, e1, e2));
- assertEquals(1, sorter.compare(null, e2, e1));
- }
-
- public class EmptyViewer extends Viewer {
- public EmptyViewer() {
- }
-
- @Override
- public Control getControl() {
- return null;
- }
-
- @Override
- public Object getInput() {
- return null;
- }
-
- @Override
- public ISelection getSelection() {
- return null;
- }
-
- @Override
- public void refresh() {
- }
-
- @Override
- public void setInput(Object input) {
- }
-
- @Override
- public void setSelection(ISelection selection, boolean reveal) {
- }
- }
-
- public void testScheduledTaskSorting() {
- final TaskListInterestSorter sorter = new TaskListInterestSorter();
- MockTask task1 = new MockTask("local", "MYLN:1", "1");
- MockTask task2 = new MockTask("local", "MYLN:2", "2");
-
- Calendar start1 = TaskActivityUtil.getCalendar();
- start1.add(Calendar.WEEK_OF_YEAR, -1);
- TaskActivityUtil.snapStartOfWorkWeek(start1);
- Calendar end1 = TaskActivityUtil.getCalendar();
- end1.setTimeInMillis(start1.getTimeInMillis());
- TaskActivityUtil.snapEndOfWeek(end1);
- WeekDateRange range1 = new WeekDateRange(start1, end1);
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task1, range1);
-
- Calendar start2 = TaskActivityUtil.getCalendar();
- start2.add(Calendar.HOUR_OF_DAY, -1);
- Calendar end2 = TaskActivityUtil.getCalendar();
- DateRange range2 = new DateRange(start2, end2);
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task2, range2);
-
- assertTrue(sorter.compare(new EmptyViewer(), task1, task2) < 0);
- }
-
- public void testSummaryOrderSorting() {
- MockTask[] tasks = new MockTask[6];
- tasks[0] = new MockTask("local", "4", "c");
- tasks[1] = new MockTask("local", "1", "b");
- tasks[2] = new MockTask("local", "11", "a");
- tasks[3] = new MockTask("local", "11", "d");
- tasks[4] = new MockTask("local", "3", "c");
- tasks[5] = new MockTask("local", "5", "a");
- Date start = new Date();
- tasks[5].setCreationDate(start);
- tasks[4].setCreationDate(new Date(start.getTime() - 1));
- tasks[3].setCreationDate(new Date(start.getTime() - 2));
- tasks[2].setCreationDate(new Date(start.getTime() - 3));
- tasks[1].setCreationDate(new Date(start.getTime() - 4));
- tasks[0].setCreationDate(new Date(start.getTime() - 5));
-
- TaskListSorter sorter = new TaskListSorter();
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.SUMMARY);
- sorter.getComparator().setSortByIndex2(TaskComparator.SortByIndex.DATE_CREATED);
- sorter.sort(new EmptyViewer(), tasks);
-
- assertEquals("11", tasks[0].getTaskKey());
- assertEquals("a", tasks[0].getSummary());
- assertEquals("5", tasks[1].getTaskKey());
- assertEquals("1", tasks[2].getTaskKey());
- assertEquals("4", tasks[3].getTaskKey());
- assertEquals("3", tasks[4].getTaskKey());
- assertEquals("11", tasks[5].getTaskKey());
- assertEquals("d", tasks[5].getSummary());
- }
-
- public void testModuleSummaryOrderSorting() {
- MockTask[] tasks = new MockTask[5];
- tasks[0] = new MockTask("local", "MYLN:4", "c");
- tasks[1] = new MockTask("local", "MYLN:1", "b");
- tasks[2] = new MockTask("local", "MYLN:11", "a");
- tasks[3] = new MockTask("local", "MYLN:11", "b");
- tasks[4] = new MockTask("local", "MYLN:5", "a");
- Date start = new Date();
- tasks[4].setCreationDate(start);
- tasks[3].setCreationDate(new Date(start.getTime() - 1));
- tasks[2].setCreationDate(new Date(start.getTime() - 2));
- tasks[1].setCreationDate(new Date(start.getTime() - 3));
- tasks[0].setCreationDate(new Date(start.getTime() - 4));
-
- TaskListSorter sorter = new TaskListSorter();
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.SUMMARY);
- sorter.getComparator().setSortByIndex2(TaskComparator.SortByIndex.DATE_CREATED);
- sorter.sort(new EmptyViewer(), tasks);
-
- assertEquals("MYLN:11", tasks[0].getTaskKey());
- assertEquals("a", tasks[0].getSummary());
- assertEquals("MYLN:5", tasks[1].getTaskKey());
- assertEquals("MYLN:1", tasks[2].getTaskKey());
- assertEquals("MYLN:11", tasks[3].getTaskKey());
- assertEquals("b", tasks[3].getSummary());
- assertEquals("MYLN:4", tasks[4].getTaskKey());
- }
-
- public void testLocalTaskSort() {
- final TaskListSorter sorter = new TaskListSorter();
- ITask task1 = new LocalTask("1", "task1");
- ITask task2 = new LocalTask("2", "task2");
- ITask task3 = new LocalTask("3", "task3");
- ITask[] tasks = { task1, task2, task3 };
- Date start = new Date();
- task1.setCreationDate(start);
- task2.setCreationDate(new Date(start.getTime() - 1));
- task3.setCreationDate(new Date(start.getTime() - 2));
- sorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.DATE_CREATED);
- sorter.sort(new EmptyViewer(), tasks);
- sorter.getComparator().setSortDirection(-1);
- sorter.sort(new EmptyViewer(), tasks);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java
deleted file mode 100644
index fedeb6c19..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-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.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Shawn Minto
- */
-public class TaskListTest extends TestCase {
-
- private TaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- taskList = new TaskList();
- }
-
- public void testGetCategories() {
- taskList.addCategory(new TaskCategory("a"));
- assertEquals(2, taskList.getCategories().size());
- }
-
- public void testLocalSubTaskAdd() {
- LocalTask task = new LocalTask("1", "summary");
- LocalTask subTask = new LocalTask("2", "subTask");
-
- taskList.addTask(task);
- taskList.addTask(subTask, task);
-
- assertEquals(1, task.getChildren().size());
- assertEquals(subTask, task.getChildren().iterator().next());
- }
-
- public void testLocalTaskAddToSelf() {
- LocalTask task = new LocalTask("1", "summary");
-
- taskList.addTask(task);
- assertFalse(taskList.addTask(task, task));
- assertEquals(0, task.getChildren().size());
- assertEquals(1, task.getParentContainers().size());
- }
-
- public void testLocalSubTaskAddCycle() {
- LocalTask task = new LocalTask("1", "summary");
- LocalTask subTask = new LocalTask("2", "subTask");
-
- taskList.addTask(task);
- taskList.addTask(subTask, task);
- taskList.addTask(task, subTask);
-
- assertEquals(2, taskList.getAllTasks().size());
- assertEquals(1, taskList.getCategories().size());
- assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
- assertEquals(1, task.getChildren().size());
- assertEquals(0, subTask.getChildren().size());
- assertEquals(subTask, task.getChildren().iterator().next());
- }
-
- public void testLocalSubTaskAddDeepCycle() {
- LocalTask task = new LocalTask("1", "summary");
- LocalTask subTask1 = new LocalTask("2", "subTask");
- LocalTask subTask2 = new LocalTask("3", "subTask");
- LocalTask subTask3 = new LocalTask("4", "subTask");
- LocalTask subTask4 = new LocalTask("5", "subTask");
- LocalTask subTask5 = new LocalTask("6", "subTask");
- LocalTask subTask6 = new LocalTask("7", "subTask");
- LocalTask subTask7 = new LocalTask("8", "subTask");
- LocalTask subTask8 = new LocalTask("9", "subTask");
- LocalTask subTask9 = new LocalTask("10", "subTask");
- LocalTask subTask10 = new LocalTask("11", "subTask");
-
- taskList.addTask(task);
- taskList.addTask(subTask1, task);
- taskList.addTask(subTask2, subTask1);
- taskList.addTask(subTask3, subTask2);
- taskList.addTask(subTask4, subTask3);
- taskList.addTask(subTask5, subTask4);
- taskList.addTask(subTask6, subTask5);
- taskList.addTask(subTask7, subTask6);
- taskList.addTask(subTask8, subTask7);
- taskList.addTask(subTask9, subTask8);
- taskList.addTask(subTask10, subTask9);
-
- taskList.addTask(task, subTask10);
-
- assertEquals(11, taskList.getAllTasks().size());
- assertEquals(1, taskList.getCategories().size());
- assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
- assertEquals(1, task.getChildren().size());
- assertEquals(subTask1, task.getChildren().iterator().next());
-
- assertEquals(1, subTask1.getChildren().size());
- assertEquals(subTask2, subTask1.getChildren().iterator().next());
-
- assertEquals(1, subTask2.getChildren().size());
- assertEquals(subTask3, subTask2.getChildren().iterator().next());
-
- assertEquals(1, subTask3.getChildren().size());
- assertEquals(subTask4, subTask3.getChildren().iterator().next());
-
- assertEquals(1, subTask4.getChildren().size());
- assertEquals(subTask5, subTask4.getChildren().iterator().next());
-
- assertEquals(1, subTask5.getChildren().size());
- assertEquals(subTask6, subTask5.getChildren().iterator().next());
-
- assertEquals(1, subTask6.getChildren().size());
- assertEquals(subTask7, subTask6.getChildren().iterator().next());
-
- assertEquals(1, subTask7.getChildren().size());
- assertEquals(subTask8, subTask7.getChildren().iterator().next());
-
- assertEquals(1, subTask8.getChildren().size());
- assertEquals(subTask9, subTask8.getChildren().iterator().next());
-
- assertEquals(1, subTask9.getChildren().size());
- assertEquals(subTask10, subTask9.getChildren().iterator().next());
-
- assertEquals(0, subTask10.getChildren().size());
- }
-
- public void testLocalSubTaskAddMaxSubTaskDepthDeepCycle() {
- LocalTask task = new LocalTask("1", "summary");
- LocalTask subTask1 = new LocalTask("2", "subTask");
- LocalTask subTask2 = new LocalTask("3", "subTask");
- LocalTask subTask3 = new LocalTask("4", "subTask");
- LocalTask subTask4 = new LocalTask("5", "subTask");
- LocalTask subTask5 = new LocalTask("6", "subTask");
- LocalTask subTask6 = new LocalTask("7", "subTask");
- LocalTask subTask7 = new LocalTask("8", "subTask");
- LocalTask subTask8 = new LocalTask("9", "subTask");
- LocalTask subTask9 = new LocalTask("10", "subTask");
- LocalTask subTask10 = new LocalTask("11", "subTask");
- LocalTask subTask11 = new LocalTask("12", "subTask");
-
- taskList.addTask(task);
- taskList.addTask(subTask1, task);
- taskList.addTask(subTask2, subTask1);
- taskList.addTask(subTask3, subTask2);
- taskList.addTask(subTask4, subTask3);
- taskList.addTask(subTask5, subTask4);
- taskList.addTask(subTask6, subTask5);
- taskList.addTask(subTask7, subTask6);
- taskList.addTask(subTask8, subTask7);
- taskList.addTask(subTask9, subTask8);
- taskList.addTask(subTask10, subTask9);
- taskList.addTask(subTask11, subTask10);
-
- taskList.addTask(task, subTask11);
-
- assertEquals(12, taskList.getAllTasks().size());
- assertEquals(1, taskList.getCategories().size());
- assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
- assertEquals(1, task.getChildren().size());
- assertEquals(subTask1, task.getChildren().iterator().next());
-
- assertEquals(1, subTask1.getChildren().size());
- assertEquals(subTask2, subTask1.getChildren().iterator().next());
-
- assertEquals(1, subTask2.getChildren().size());
- assertEquals(subTask3, subTask2.getChildren().iterator().next());
-
- assertEquals(1, subTask3.getChildren().size());
- assertEquals(subTask4, subTask3.getChildren().iterator().next());
-
- assertEquals(1, subTask4.getChildren().size());
- assertEquals(subTask5, subTask4.getChildren().iterator().next());
-
- assertEquals(1, subTask5.getChildren().size());
- assertEquals(subTask6, subTask5.getChildren().iterator().next());
-
- assertEquals(1, subTask6.getChildren().size());
- assertEquals(subTask7, subTask6.getChildren().iterator().next());
-
- assertEquals(1, subTask7.getChildren().size());
- assertEquals(subTask8, subTask7.getChildren().iterator().next());
-
- assertEquals(1, subTask8.getChildren().size());
- assertEquals(subTask9, subTask8.getChildren().iterator().next());
-
- assertEquals(1, subTask9.getChildren().size());
- assertEquals(subTask10, subTask9.getChildren().iterator().next());
-
- assertEquals(1, subTask10.getChildren().size());
- assertEquals(subTask11, subTask10.getChildren().iterator().next());
-
- assertEquals(0, subTask11.getChildren().size());
- }
-
- public void testLocalSubTaskAddReallyDeepCycle() {
- LocalTask task = new LocalTask("1", "summary");
- LocalTask subTask1 = new LocalTask("2", "subTask");
- LocalTask subTask2 = new LocalTask("3", "subTask");
- LocalTask subTask3 = new LocalTask("4", "subTask");
- LocalTask subTask4 = new LocalTask("5", "subTask");
- LocalTask subTask5 = new LocalTask("6", "subTask");
- LocalTask subTask6 = new LocalTask("7", "subTask");
- LocalTask subTask7 = new LocalTask("8", "subTask");
- LocalTask subTask8 = new LocalTask("9", "subTask");
- LocalTask subTask9 = new LocalTask("10", "subTask");
- LocalTask subTask10 = new LocalTask("11", "subTask");
- LocalTask subTask11 = new LocalTask("12", "subTask");
- LocalTask subTask12 = new LocalTask("13", "subTask");
- LocalTask subTask13 = new LocalTask("14", "subTask");
- LocalTask subTask14 = new LocalTask("15", "subTask");
- LocalTask subTask15 = new LocalTask("16", "subTask");
- LocalTask subTask16 = new LocalTask("17", "subTask");
- LocalTask subTask17 = new LocalTask("18", "subTask");
- LocalTask subTask18 = new LocalTask("19", "subTask");
-
- taskList.addTask(task);
- taskList.addTask(subTask1, task);
- taskList.addTask(subTask2, subTask1);
- taskList.addTask(subTask3, subTask2);
- taskList.addTask(subTask4, subTask3);
- taskList.addTask(subTask5, subTask4);
- taskList.addTask(subTask6, subTask5);
- taskList.addTask(subTask7, subTask6);
- taskList.addTask(subTask8, subTask7);
- taskList.addTask(subTask9, subTask8);
- taskList.addTask(subTask10, subTask9);
- taskList.addTask(subTask11, subTask10);
- taskList.addTask(subTask12, subTask11);
- taskList.addTask(subTask13, subTask12);
- taskList.addTask(subTask14, subTask13);
- taskList.addTask(subTask15, subTask14);
- taskList.addTask(subTask16, subTask15);
- taskList.addTask(subTask17, subTask16);
- taskList.addTask(subTask18, subTask17);
-
- taskList.addTask(task, subTask18);
-
- assertEquals(19, taskList.getAllTasks().size());
- assertEquals(1, taskList.getCategories().size());
- assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
- assertEquals(1, task.getChildren().size());
- assertEquals(subTask1, task.getChildren().iterator().next());
-
- assertEquals(1, subTask1.getChildren().size());
- assertEquals(subTask2, subTask1.getChildren().iterator().next());
-
- assertEquals(1, subTask2.getChildren().size());
- assertEquals(subTask3, subTask2.getChildren().iterator().next());
-
- assertEquals(1, subTask3.getChildren().size());
- assertEquals(subTask4, subTask3.getChildren().iterator().next());
-
- assertEquals(1, subTask4.getChildren().size());
- assertEquals(subTask5, subTask4.getChildren().iterator().next());
-
- assertEquals(1, subTask5.getChildren().size());
- assertEquals(subTask6, subTask5.getChildren().iterator().next());
-
- assertEquals(1, subTask6.getChildren().size());
- assertEquals(subTask7, subTask6.getChildren().iterator().next());
-
- assertEquals(1, subTask7.getChildren().size());
- assertEquals(subTask8, subTask7.getChildren().iterator().next());
-
- assertEquals(1, subTask8.getChildren().size());
- assertEquals(subTask9, subTask8.getChildren().iterator().next());
-
- assertEquals(1, subTask9.getChildren().size());
- assertEquals(subTask10, subTask9.getChildren().iterator().next());
-
- assertEquals(1, subTask10.getChildren().size());
- assertEquals(subTask11, subTask10.getChildren().iterator().next());
-
- assertEquals(1, subTask11.getChildren().size());
- assertEquals(subTask12, subTask11.getChildren().iterator().next());
-
- assertEquals(1, subTask11.getChildren().size());
- assertEquals(subTask12, subTask11.getChildren().iterator().next());
-
- assertEquals(1, subTask12.getChildren().size());
- assertEquals(subTask13, subTask12.getChildren().iterator().next());
-
- assertEquals(1, subTask13.getChildren().size());
- assertEquals(subTask14, subTask13.getChildren().iterator().next());
-
- assertEquals(1, subTask14.getChildren().size());
- assertEquals(subTask15, subTask14.getChildren().iterator().next());
-
- assertEquals(1, subTask15.getChildren().size());
- assertEquals(subTask16, subTask15.getChildren().iterator().next());
-
- assertEquals(1, subTask16.getChildren().size());
- assertEquals(subTask17, subTask16.getChildren().iterator().next());
-
- assertEquals(1, subTask17.getChildren().size());
- assertEquals(subTask18, subTask17.getChildren().iterator().next());
-
- assertEquals(0, subTask18.getChildren().size());
- }
-
- public void testQueryAndCategoryNameClash() {
- TaskCategory category = new TaskCategory("TestClash");
- taskList.addCategory(category);
- assertTrue(taskList.getCategories().contains(category));
- assertEquals(2, taskList.getCategories().size());
-
- MockRepositoryQuery query = new MockRepositoryQuery("TestClash");
- taskList.addQuery(query);
- assertTrue(taskList.getCategories().contains(category));
- assertEquals(2, taskList.getCategories().size());
- }
-
- public void testMoveToRoot() {
- AbstractTask task1 = new LocalTask("t1", "t1");
- taskList.addTask(task1, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL));
- assertEquals(1, taskList.getDefaultCategory().getChildren().size());
- assertEquals(taskList.getDefaultCategory(), TaskCategory.getParentTaskCategory(task1));
-
- TaskCategory cat1 = new TaskCategory("c1");
- taskList.addCategory(cat1);
-
- taskList.addTask(task1, cat1);
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- assertEquals(cat1, TaskCategory.getParentTaskCategory(task1));
-
- taskList.addTask(task1, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL));
- assertEquals(1, taskList.getDefaultCategory().getChildren().size());
- assertEquals(0, cat1.getChildren().size());
- assertEquals(taskList.getDefaultCategory(), TaskCategory.getParentTaskCategory(task1));
- }
-
- public void testDeleteCategory() {
- assertEquals(1, taskList.getCategories().size());
- TaskCategory category = new TaskCategory("cat");
- taskList.addCategory(category);
- assertEquals(2, taskList.getCategories().size());
- taskList.deleteCategory(category);
- assertEquals(1, taskList.getCategories().size());
- }
-
- public void testDeleteCategoryMovesTasksToRoot() {
- AbstractTask task = new MockTask("delete");
- TaskCategory category = new TaskCategory("cat");
- taskList.addCategory(category);
- taskList.addTask(task, category);
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- taskList.deleteCategory(category);
- taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL);
- }
-
- @SuppressWarnings("deprecation")
- public void testRenameCategory() {
- TaskCategory category = new TaskCategory("handle", "cat");
- taskList.addCategory(category);
- assertEquals(2, taskList.getCategories().size());
- taskList.renameContainer(category, "newDescription");
- AbstractTaskCategory container = taskList.getContainerForHandle("handle");
- assertNotNull(container);
- assertEquals("newDescription", container.getSummary());
- taskList.deleteCategory(container);
- assertEquals(1, taskList.getCategories().size());
- }
-
- @SuppressWarnings("deprecation")
- public void testDeleteCategoryAfterRename() {
- String newDesc = "newDescription";
- assertNotNull(taskList);
- assertEquals(1, taskList.getCategories().size());
- TaskCategory category = new TaskCategory("cat");
- taskList.addCategory(category);
- assertEquals(2, taskList.getCategories().size());
- taskList.renameContainer(category, newDesc);
- taskList.deleteCategory(category);
- assertEquals(1, taskList.getCategories().size());
- }
-
- public void testCreateSameCategoryName() {
- assertEquals(1, taskList.getCategories().size());
- TaskCategory category = new TaskCategory("cat");
- taskList.addCategory(category);
- assertEquals(2, taskList.getCategories().size());
- TaskCategory category2 = new TaskCategory("cat");
- try {
- taskList.addCategory(category2);
- fail("expected IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- }
- assertEquals(2, taskList.getCategories().size());
- ITaskContainer container = taskList.getContainerForHandle("cat");
- assertEquals(container, category);
- }
-
- public void testDeleteRootTask() {
- AbstractTask task = new LocalTask("1", "label");
- taskList.addTask(task);
- taskList.deleteTask(task);
- assertEquals(0, taskList.getAllTasks().size());
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- }
-
- public void testDeleteFromCategory() {
- assertEquals(0, taskList.getAllTasks().size());
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- //assertEquals(0, taskList.getArchiveContainer().getChildren().size());
- assertEquals(1, taskList.getCategories().size());
-
- AbstractTask task = new LocalTask("1", "label");
- TaskCategory category = new TaskCategory("handleAndDescription");
- taskList.addTask(task);
- assertEquals(1, taskList.getDefaultCategory().getChildren().size());
-
- taskList.addCategory(category);
- taskList.addTask(task, category);
- assertEquals(2, taskList.getCategories().size());
- assertEquals(1, category.getChildren().size());
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- assertEquals(1, taskList.getAllTasks().size());
-
- taskList.deleteTask(task);
- assertEquals(0, taskList.getAllTasks().size());
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- assertEquals(0, category.getChildren().size());
- }
-
- public void testDeleteRepositoryTask() {
- String repositoryUrl = "http://somewhere.com";
- MockTask task = new MockTask(repositoryUrl, "1");
- taskList.addTask(task, taskList.getDefaultCategory());
- MockRepositoryQuery query = new MockRepositoryQuery("query");
- taskList.addQuery(query);
- taskList.addTask(task, query);
- assertEquals(1, taskList.getAllTasks().size());
- assertEquals(1, taskList.getDefaultCategory().getChildren().size());
- taskList.deleteTask(task);
- assertEquals(0, taskList.getAllTasks().size());
- assertEquals(0, taskList.getDefaultCategory().getChildren().size());
- }
-
- public void testgetQueriesAndHitsForHandle() {
- MockTask hit1 = new MockTask("1");
- MockTask hit2 = new MockTask("2");
- MockTask hit3 = new MockTask("3");
-
- MockTask hit1twin = new MockTask("1");
- MockTask hit2twin = new MockTask("2");
- MockTask hit3twin = new MockTask("3");
-
- MockRepositoryQuery query1 = new MockRepositoryQuery("query1");
- MockRepositoryQuery query2 = new MockRepositoryQuery("query2");
-
- taskList.addQuery(query1);
- taskList.addQuery(query2);
- taskList.addTask(hit1, query1);
- taskList.addTask(hit2, query1);
- taskList.addTask(hit3, query1);
-
- assertEquals(3, query1.getChildren().size());
-
- taskList.addTask(hit1twin, query2);
- taskList.addTask(hit2twin, query2);
- taskList.addTask(hit3twin, query2);
-
- assertEquals(3, query2.getChildren().size());
-
- Set<AbstractTaskContainer> queriesReturned = hit1.getParentContainers();
- assertNotNull(queriesReturned);
- assertEquals(2, queriesReturned.size());
- assertTrue(queriesReturned.contains(query1));
- assertTrue(queriesReturned.contains(query2));
- }
-
- public void testUpdateQueryHits() {
- MockTask hit1 = new MockTask("1");
- MockTask hit2 = new MockTask("2");
- MockTask hit3 = new MockTask("3");
-
- MockTask hit1twin = new MockTask("1");
- MockTask hit2twin = new MockTask("2");
- MockTask hit3twin = new MockTask("3");
-
- MockRepositoryQuery query1 = new MockRepositoryQuery("query1");
- taskList.addQuery(query1);
-
- taskList.addTask(hit1, query1);
- taskList.addTask(hit2, query1);
- taskList.addTask(hit3, query1);
-
- taskList.addTask(hit1twin, query1);
- taskList.addTask(hit2twin, query1);
- taskList.addTask(hit3twin, query1);
-
- assertEquals(3, query1.getChildren().size());
- for (ITask child : query1.getChildren()) {
- taskList.removeFromContainer(query1, child);
- }
- assertEquals(0, query1.getChildren().size());
- taskList.addTask(hit1, query1);
- taskList.addTask(hit2, query1);
- assertEquals(2, query1.getChildren().size());
- hit1.setNotified(true);
-
- taskList.addTask(hit1twin, query1);
- taskList.addTask(hit2twin, query1);
- taskList.addTask(hit3twin, query1);
- assertEquals(3, query1.getChildren().size());
- assertTrue(query1.getChildren().contains(hit1twin));
- assertTrue(query1.getChildren().contains(hit2twin));
- assertTrue(query1.getChildren().contains(hit3twin));
- for (ITask hit : query1.getChildren()) {
- if (hit.equals(hit1twin)) {
- assertTrue(((AbstractTask) hit).isNotified());
- } else {
- assertFalse(((AbstractTask) hit).isNotified());
- }
- }
- }
-
- public void testGetRepositoryTasks() {
- String repositoryUrl = "https://bugs.eclipse.org/bugs";
- String bugNumber = "106939";
- MockTask task1 = new MockTask(repositoryUrl, bugNumber);
- taskList.addTask(task1);
- MockTask task2 = new MockTask("https://unresolved", bugNumber);
- taskList.addTask(task2);
-
- assertEquals(2, taskList.getAllTasks().size());
- Set<ITask> tasksReturned = taskList.getTasks(repositoryUrl);
- assertNotNull(tasksReturned);
- assertEquals(1, tasksReturned.size());
- assertTrue(tasksReturned.contains(task1));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java
deleted file mode 100644
index ba3de5558..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Ken Sueda 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:
- * Ken Sueda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-import java.util.Vector;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.MoveToCategoryMenuContributor;
-import org.eclipse.mylyn.internal.tasks.ui.TaskPriorityFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewCategoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * Tests TaskListView's filtering mechanism.
- *
- * @author Ken Sueda
- * @author Steffen Pingel
- */
-public class TaskListUiTest extends TestCase {
-
- private TaskCategory cat1 = null;
-
- private AbstractTask cat1task1 = null;
-
- private AbstractTask cat1task2 = null;
-
- private AbstractTask cat1task3 = null;
-
- private AbstractTask cat1task4 = null;
-
- private AbstractTask cat1task5 = null;
-
- private AbstractTask cat1task1sub1 = null;
-
- private TaskCategory cat2 = null;
-
- private AbstractTask cat2task1 = null;
-
- private AbstractTask cat2task2 = null;
-
- private AbstractTask cat2task3 = null;
-
- private AbstractTask cat2task4 = null;
-
- private AbstractTask cat2task5 = null;
-
- private AbstractTask cat2task1sub1 = null;
-
- private TaskList taskList;
-
- private final static int CHECK_COMPLETE_FILTER = 1;
-
- private final static int CHECK_INCOMPLETE_FILTER = 2;
-
- private final static int CHECK_PRIORITY_FILTER = 3;
-
- @Override
- public void setUp() throws Exception {
- taskList = TasksUiPlugin.getTaskList();
-
- // make sure no unmatched folders exist
- TaskTestUtil.resetTaskListAndRepositories();
- TasksUiUtil.openTasksViewInActivePerspective();
-
- cat1 = new TaskCategory("First Category");
- taskList.addCategory(cat1);
-
- cat1task1 = TasksUiInternal.createNewLocalTask("task 1");
- cat1task1.setPriority(PriorityLevel.P1.toString());
- cat1task1.setCompletionDate(new Date());
- taskList.addTask(cat1task1, cat1);
-
- cat1task1sub1 = TasksUiInternal.createNewLocalTask("sub task 1");
- cat1task1sub1.setPriority(PriorityLevel.P1.toString());
- cat1task1sub1.setCompletionDate(new Date());
- taskList.addTask(cat1task1sub1, cat1task1);
-
- cat1task2 = TasksUiInternal.createNewLocalTask("task 2");
- cat1task2.setPriority(PriorityLevel.P2.toString());
- taskList.addTask(cat1task2, cat1);
-
- cat1task3 = TasksUiInternal.createNewLocalTask("task 3");
- cat1task3.setPriority(PriorityLevel.P3.toString());
- cat1task3.setCompletionDate(new Date());
- taskList.addTask(cat1task3, cat1);
-
- cat1task4 = TasksUiInternal.createNewLocalTask("task 4");
- cat1task4.setPriority(PriorityLevel.P4.toString());
- taskList.addTask(cat1task4, cat1);
-
- cat1task5 = TasksUiInternal.createNewLocalTask("task 5");
- cat1task5.setPriority(PriorityLevel.P5.toString());
- cat1task5.setCompletionDate(new Date());
- taskList.addTask(cat1task5, cat1);
-
- assertEquals(cat1.getChildren().size(), 5);
-
- cat2 = new TaskCategory("Second Category");
- taskList.addCategory(cat2);
-
- cat2task1 = TasksUiInternal.createNewLocalTask("task 1");
- cat2task1.setPriority(PriorityLevel.P1.toString());
- taskList.addTask(cat2task1, cat2);
-
- cat2task1sub1 = TasksUiInternal.createNewLocalTask("sub task 1");
- cat2task1sub1.setPriority(PriorityLevel.P1.toString());
- taskList.addTask(cat2task1sub1, cat2task1);
-
- cat2task2 = TasksUiInternal.createNewLocalTask("task 2");
- cat2task2.setPriority(PriorityLevel.P2.toString());
- cat2task2.setCompletionDate(new Date());
- taskList.addTask(cat2task2, cat2);
-
- cat2task3 = TasksUiInternal.createNewLocalTask("task 3");
- cat2task3.setPriority(PriorityLevel.P3.toString());
- taskList.addTask(cat2task3, cat2);
-
- cat2task4 = TasksUiInternal.createNewLocalTask("task 4");
- cat2task4.setPriority(PriorityLevel.P4.toString());
- cat2task4.setCompletionDate(new Date());
- taskList.addTask(cat2task4, cat2);
-
- cat2task5 = TasksUiInternal.createNewLocalTask("task 5");
- cat2task5.setPriority(PriorityLevel.P5.toString());
- taskList.addTask(cat2task5, cat2);
- }
-
- @Override
- public void tearDown() throws Exception {
- // clear everything
- }
-
- public void testUiFilter() {
- assertNotNull(TaskListView.getFromActivePerspective());
- TreeViewer viewer = TaskListView.getFromActivePerspective().getViewer();
- TaskListView.getFromActivePerspective().addFilter(TaskListView.getFromActivePerspective().getCompleteFilter());
- viewer.refresh();
- viewer.expandAll();
- TreeItem[] items = viewer.getTree().getItems();
- assertTrue(checkFilter(CHECK_COMPLETE_FILTER, items));
- TaskListView.getFromActivePerspective().removeFilter(
- TaskListView.getFromActivePerspective().getCompleteFilter());
-
- TaskPriorityFilter filter = TaskListView.getFromActivePerspective().getPriorityFilter();
- filter.displayPrioritiesAbove("P2");
- TaskListView.getFromActivePerspective().addFilter(filter);
- viewer.refresh();
- viewer.expandAll();
- items = viewer.getTree().getItems();
-
- // check priority tasks
- assertTrue(checkFilter(CHECK_PRIORITY_FILTER, items));
- }
-
- /**
- * Tests that TaskEditors remove all listeners when closed
- */
- public void testListenersRemoved() {
- int numListenersBefore = 0;
- int numListenersDuring = 0;
- int numListenersAfter = 0;
-
- Set<ITaskListChangeListener> listeners = taskList.getChangeListeners();
- numListenersBefore = listeners.size();
-
- TasksUiUtil.openTask(cat1task1);
- TasksUiUtil.openTask(cat1task2);
-
- listeners = taskList.getChangeListeners();
- numListenersDuring = listeners.size();
-
- assertEquals(numListenersDuring, numListenersBefore + 2);
-
- TasksUiPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false);
-
- listeners = taskList.getChangeListeners();
- numListenersAfter = listeners.size();
- assertEquals(numListenersBefore, numListenersAfter);
- }
-
- /**
- * Tests whether an additional NewCategory action is added to the category
- */
- public void testGetSubMenuManagerContainsAllCategoriesPlusNewCategory() {
- // setup
- MoveToCategoryMenuContributor moveToMenuContrib = new MoveToCategoryMenuContributor();
- List<IRepositoryElement> selectedElements = new Vector<IRepositoryElement>();
- selectedElements.add(cat1task1);
- int numCategories = taskList.getCategories().size();
- int numSeparators = 1;
- // adding a separator and the New Category... action
- int expectedNrOfSubMenuEntries = numCategories + numSeparators + 1;
- NewCategoryAction newCatActon = new NewCategoryAction();
-
- // execute sytem under test
- MenuManager menuManager = moveToMenuContrib.getSubMenuManager(selectedElements);
- IContributionItem[] items = menuManager.getItems();
- IContributionItem item = items[menuManager.getItems().length - 1];
-
- // +1 for separator
- assertEquals(expectedNrOfSubMenuEntries, menuManager.getItems().length);
-
- if (item instanceof NewCategoryAction) {
- NewCategoryAction action = (NewCategoryAction) item;
- assertEquals(newCatActon.getText(), action.getText());
- }
-
- // teardown
- }
-
- /**
- * Tests visibility of SubMenuManager
- */
- public void testVisibilityOfSubMenuManager() {
- //setup
- MoveToCategoryMenuContributor moveToMenuContrib = new MoveToCategoryMenuContributor();
- MenuManager menuManager = null;
- List<IRepositoryElement> selectedElements = new Vector<IRepositoryElement>();
- selectedElements.add(cat1task1);
-
- List<IRepositoryElement> emptySelection = new Vector<IRepositoryElement>();
-
- List<IRepositoryElement> categorySelection = new Vector<IRepositoryElement>();
- categorySelection.add(cat1);
-
- List<IRepositoryElement> querySelection = new Vector<IRepositoryElement>();
- querySelection.add(new MockRepositoryQuery("query", null));
-
- //execute system under test & assert
- menuManager = moveToMenuContrib.getSubMenuManager(selectedElements);
- assertTrue(menuManager.isVisible());
-
- menuManager = null;
- menuManager = moveToMenuContrib.getSubMenuManager(emptySelection);
- assertFalse(menuManager.isVisible());
-
- menuManager = null;
- menuManager = moveToMenuContrib.getSubMenuManager(categorySelection);
- assertFalse(menuManager.isVisible());
-
- menuManager = null;
- menuManager = moveToMenuContrib.getSubMenuManager(querySelection);
- assertFalse(menuManager.isVisible());
-
- //teardown
- }
-
- /**
- * Tests that the category name is shown in the Move To Category submenu, even when they have an @ in their name
- */
- public void testCategoryNameIsShownInMoveToCategoryAction() {
- String catNameWithAtBefore = "@CatName";
- String catNameWithAtExpected = "@CatName@";
- String catNameWithAtActual = "";
-
- String catNameNoAtBefore = "CatName";
- String catNameNoAtExpected = "CatName";
- String catNameNoAtActual = "";
-
- MoveToCategoryMenuContributor menuContrib = new MoveToCategoryMenuContributor();
-
- catNameWithAtActual = menuContrib.handleAcceleratorKeys(catNameWithAtBefore);
- catNameNoAtActual = menuContrib.handleAcceleratorKeys(catNameNoAtBefore);
-
- assertEquals(catNameWithAtExpected, catNameWithAtActual);
- assertEquals(catNameNoAtExpected, catNameNoAtActual);
- }
-
- public boolean checkFilter(int type, TreeItem[] items) {
- switch (type) {
- case CHECK_COMPLETE_FILTER:
- return checkCompleteIncompleteFilter(items, false);
- case CHECK_INCOMPLETE_FILTER:
- return checkCompleteIncompleteFilter(items, true);
- case CHECK_PRIORITY_FILTER:
- return checkPriorityFilter(items);
- default:
- return false;
- }
- }
-
- public boolean checkCompleteIncompleteFilter(TreeItem[] items, boolean checkComplete) {
- assertEquals(3, items.length);
- int count = 0;
- for (TreeItem item : items) {
- if (item.getData() instanceof TaskCategory) {
- TreeItem[] sub = item.getItems();
- for (TreeItem element : sub) {
- assertTrue(element.getData() instanceof ITask);
- ITask task = (ITask) element.getData();
- if (checkComplete) {
- assertTrue(task.isCompleted());
- } else {
- assertFalse(task.isCompleted());
- }
- count++;
- }
- }
- }
- assertTrue(count == 5);
- return true;
- }
-
- public boolean checkPriorityFilter(TreeItem[] items) {
- assertTrue(items.length == 3);
- int p2Count = 0;
- int p1Count = 0;
- for (TreeItem item : items) {
- if (item.getData() instanceof TaskCategory) {
- TreeItem[] sub = item.getItems();
- for (TreeItem element : sub) {
- assertTrue(element.getData() instanceof ITask);
- ITask task = (ITask) element.getData();
- assertTrue(task.getPriority().equals("P2") || task.getPriority().equals("P1"));
- if (task.getPriority().equals("P2")) {
- p2Count++;
- } else {
- p1Count++;
- }
- }
- }
- }
- assertEquals(2, p1Count);
- assertEquals(2, p2Count);
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java
deleted file mode 100644
index ad18367ec..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskMapperTest extends TestCase {
-
- private StubTaskAttributeMapper mapper;
-
- private TaskMapper source;
-
- private TaskMapper target;
-
- private TaskRepository taskRepository;
-
- @Override
- protected void setUp() throws Exception {
- taskRepository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- mapper = new StubTaskAttributeMapper(taskRepository);
- source = new TaskMapper(new TaskData(mapper, "kind", "http://url", "1"), true);
- target = new TaskMapper(new TaskData(mapper, "kind", "http://url", "2"), true);
- }
-
- public void testCloneTaskCloneCommonAttributes() {
- source.setDescription("sourceDescription");
- target.setDescription("");
- // TODO 3.2 remove (bug 247595)
- target.getTaskData().getRoot().getAttribute(TaskAttribute.DESCRIPTION).getMetaData().setReadOnly(false);
- target.merge(source);
- assertEquals("sourceDescription", target.getDescription());
- assertEquals(null, target.getSummary());
-
- source.setSummary("sourceSummary");
- target.setSummary("");
- // TODO 3.2 remove (bug 247595)
- target.getTaskData().getRoot().getAttribute(TaskAttribute.SUMMARY).getMetaData().setReadOnly(false);
- target.merge(source);
- assertEquals("sourceSummary", target.getSummary());
- }
-
- public void testCloneTaskDataAttributeWithValues() {
- source.getTaskData().getRoot().createAttribute("key1").addValue("value1");
- target.merge(source);
- assertEquals(null, target.getTaskData().getRoot().getAttribute("key1"));
-
- target.getTaskData().getRoot().createAttribute("key1").addValue("value2");
- target.merge(source);
- assertEquals("value1", target.getTaskData().getRoot().getAttribute("key1").getValue());
-
- TaskAttribute attribute = source.getTaskData().getRoot().createAttribute("multi");
- attribute.addValue("v1");
- attribute.addValue("v2");
- target.getTaskData().getRoot().createAttribute("multi");
- target.merge(source);
- assertEquals("value1", target.getTaskData().getRoot().getAttribute("key1").getValue());
- List<String> values = target.getTaskData().getRoot().getAttribute("multi").getValues();
- assertEquals(2, values.size());
- assertEquals("v1", values.get(0));
- assertEquals("v2", values.get(1));
- }
-
- public void testCloneTaskDataAttributeWithOptions() {
- TaskAttribute sourceAttribute = source.getTaskData().getRoot().createAttribute("key");
- sourceAttribute.setValue("o2");
- sourceAttribute.putOption("o1", "");
- sourceAttribute.putOption("o2", "");
- target.getTaskData().getRoot().createAttribute("key");
- target.merge(source);
- assertEquals("o2", target.getTaskData().getRoot().getAttribute("key").getValue());
-
- // test target with options that don't contain value
- TaskAttribute targetAttribute = target.getTaskData().getRoot().getAttribute("key");
- targetAttribute.putOption("o3", "");
- target.merge(source);
- assertEquals("", target.getTaskData().getRoot().getAttribute("key").getValue());
-
- // test target with options that contain value
- targetAttribute.putOption("o2", "");
- target.merge(source);
- assertEquals("o2", target.getTaskData().getRoot().getAttribute("key").getValue());
-
- // test multiple values
- sourceAttribute.addValue("o3");
- target.merge(source);
- List<String> values = targetAttribute.getValues();
- assertEquals(2, values.size());
- assertEquals("o2", values.get(0));
- assertEquals("o3", values.get(1));
- }
-
- public void testCloneTaskDifferentRepositoryTypesCloneCommonAttributes() {
- target = new TaskMapper(new TaskData(mapper, "otherkind", "http://url", "2"), true);
-
- source.setDescription("sourceDescription");
- target.setDescription("");
- // TODO 3.2 remove (bug 247595)
- target.getTaskData().getRoot().getAttribute(TaskAttribute.DESCRIPTION).getMetaData().setReadOnly(false);
- target.merge(source);
- assertEquals("sourceDescription", target.getDescription());
- assertEquals(null, target.getSummary());
-
- source.setSummary("sourceSummary");
- target.merge(source);
- assertEquals("sourceSummary", target.getSummary());
- }
-
- public void testCloneTaskDifferentRepositoryTypesCloneMappedAttribues() {
- StubTaskAttributeMapper targetMapper = new StubTaskAttributeMapper(taskRepository);
- target = new TaskMapper(new TaskData(targetMapper, "otherkind", "http://url", "2"), true);
-
- // key is not part of common schema
- source.getTaskData().getRoot().createAttribute("key").setValue("source");
- target.getTaskData().getRoot().createAttribute("key").setValue("target");
- target.merge(source);
- assertEquals("target", target.getTaskData().getRoot().getAttribute("key").getValue());
-
- // map key in source factory only
- mapper.attributeMap.put(TaskAttribute.COMPONENT, "key");
- target.merge(source);
- assertEquals("target", target.getTaskData().getRoot().getAttribute("key").getValue());
-
- // map key in target factory to different key
- targetMapper.attributeMap.put(TaskAttribute.PRODUCT, "key");
- target.merge(source);
- assertEquals("target", target.getTaskData().getRoot().getAttribute("key").getValue());
-
- // map key in both factories
- targetMapper.attributeMap.put(TaskAttribute.COMPONENT, "key");
- target.merge(source);
- assertEquals("source", target.getTaskData().getRoot().getAttribute("key").getValue());
- }
-
- public void testNoCreationOfAttributes() {
- target = new TaskMapper(new TaskData(mapper, "otherkind", "http://url", "2"));
- target.setDescription("abc");
- assertNull(target.getTaskData().getRoot().getAttribute(TaskAttribute.DESCRIPTION));
- assertEquals(0, target.getTaskData().getRoot().getAttributes().size());
-
- target = new TaskMapper(new TaskData(mapper, "otherkind", "http://url", "2"), false);
- target.setDescription("abc");
- assertNull(target.getTaskData().getRoot().getAttribute(TaskAttribute.DESCRIPTION));
- assertEquals(0, target.getTaskData().getRoot().getAttributes().size());
- }
-
- private class StubTaskAttributeMapper extends TaskAttributeMapper {
-
- public StubTaskAttributeMapper(TaskRepository taskRepository) {
- super(taskRepository);
- }
-
- private final Map<String, String> attributeMap = new HashMap<String, String>();
-
- @Override
- public String mapToRepositoryKey(TaskAttribute parent, String key) {
- String mappedKey = attributeMap.get(key);
- return (mappedKey != null) ? mappedKey : key;
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java
deleted file mode 100644
index 837c8fe6b..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskPlanningEditor;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Rob Elves
- */
-public class TaskPlanningEditorTest extends TestCase {
-
- private static final String MOCK_LABEL = "label";
-
- private static final String DESCRIPTION = "summary";
-
- private static final String NEW_DESCRIPTION = "new summary";
-
- @Override
- protected void setUp() throws Exception {
- TasksUiPlugin.getDefault().getLocalTaskRepository();
- }
-
- @Override
- protected void tearDown() throws Exception {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false);
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TaskTestUtil.resetTaskList();
- }
-
- public void testDirtyOnEdit() {
- LocalTask task = new LocalTask("1", MOCK_LABEL);
- task.setSummary(DESCRIPTION);
- TasksUiPlugin.getTaskList().addTask(task);
- TasksUiUtil.openTask(task);
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- assertNotNull(page);
- assertEquals(TaskEditor.class, page.getActiveEditor().getClass());
- TaskEditor taskEditor = (TaskEditor) page.getActiveEditor();
- assertEquals(TaskPlanningEditor.class, taskEditor.getActivePageInstance().getClass());
- TaskPlanningEditor editor = (TaskPlanningEditor) taskEditor.getActivePageInstance();
- assertFalse(editor.isDirty());
- editor.setNotes("notes");
- assertTrue(editor.isDirty());
- editor.doSave(new NullProgressMonitor());
- assertFalse(editor.isDirty());
- editor.setDescription(NEW_DESCRIPTION);
- assertTrue(editor.isDirty());
- editor.doSave(new NullProgressMonitor());
- assertEquals(NEW_DESCRIPTION, task.getSummary());
- assertFalse(editor.isDirty());
- }
-
- public void testNotDirtyOnRename() {
- LocalTask task = new LocalTask("1", MOCK_LABEL);
- task.setSummary(DESCRIPTION);
- TasksUiPlugin.getTaskList().addTask(task);
- TasksUiUtil.openTask(task);
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- assertNotNull(page);
- assertEquals(TaskEditor.class, page.getActiveEditor().getClass());
- TaskEditor taskEditor = (TaskEditor) page.getActiveEditor();
- assertEquals(TaskPlanningEditor.class, taskEditor.getActivePageInstance().getClass());
- TaskPlanningEditor editor = (TaskPlanningEditor) taskEditor.getActivePageInstance();
- assertFalse(editor.isDirty());
- assertEquals(DESCRIPTION, editor.getDescription());
- task.setSummary(NEW_DESCRIPTION);
- editor.updateTaskData(task);
- //assertEquals(NEW_DESCRIPTION, editor.getFormTitle());
- assertEquals(NEW_DESCRIPTION, editor.getDescription());
- assertFalse(editor.isDirty());
- }
-
- /**
- * Test that if editor is dirty and external rename happens editor remains dirty
- */
- public void testRenameInDirtyState() {
- LocalTask task = new LocalTask("1", MOCK_LABEL);
- task.setSummary(DESCRIPTION);
- TasksUiPlugin.getTaskList().addTask(task);
- TasksUiUtil.openTask(task);
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- assertNotNull(page);
- assertEquals(TaskEditor.class, page.getActiveEditor().getClass());
- TaskEditor taskEditor = (TaskEditor) page.getActiveEditor();
- assertEquals(TaskPlanningEditor.class, taskEditor.getActivePageInstance().getClass());
- TaskPlanningEditor editor = (TaskPlanningEditor) taskEditor.getActivePageInstance();
- assertFalse(editor.isDirty());
- editor.setDescription(NEW_DESCRIPTION);
- assertTrue(editor.isDirty());
-
- task.setSummary(NEW_DESCRIPTION + "2");
- editor.updateTaskData(task);
- assertEquals(NEW_DESCRIPTION, editor.getDescription());
- assertTrue(editor.isDirty());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoriesExternalizerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoriesExternalizerTest.java
deleted file mode 100644
index bc906a9e1..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoriesExternalizerTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Erik Ramfelt - bug 168782
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoriesExternalizer;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Rob Elves
- */
-public class TaskRepositoriesExternalizerTest extends TestCase {
-
- private Set<TaskRepository> taskRepositories = new HashSet<TaskRepository>();
-
- private static final String REP_TYPE = "bugzilla";
-
- private static final String REPURL1 = "http://somewhere1";
-
- private static final String REPURL2 = "http://somewhere2";
-
- private static final String TIMEZONE = "test time zone";
-
- private static final String VERSION = "test version";
-
- private static final String ENCODING = "test encoding";
-
- private static final String TIMESTAMP = "test time stamp";
-
- private static final String SUFFIX = "2";
-
- private TaskRepository repository1;
-
- private TaskRepository repository2;
-
- @Override
- protected void setUp() throws Exception {
- repository1 = new TaskRepository(REP_TYPE, REPURL1);
- repository2 = new TaskRepository("bugzilla", REPURL2);
-
- repository1.setTimeZoneId(TIMEZONE);
- repository1.setVersion(VERSION);
- repository1.setCharacterEncoding(ENCODING);
- repository1.setSynchronizationTimeStamp(TIMESTAMP);
- taskRepositories.add(repository1);
-
- repository2.setTimeZoneId(TIMEZONE + SUFFIX);
- repository2.setVersion(VERSION + SUFFIX);
- repository2.setCharacterEncoding(ENCODING + SUFFIX);
- repository2.setSynchronizationTimeStamp(TIMESTAMP + SUFFIX);
- taskRepositories.add(repository2);
- }
-
- public void testExternalization() {
- TaskRepositoriesExternalizer externalizer = new TaskRepositoriesExternalizer();
- String path = "repositories.xml";
- File file = new File(path);
- file.deleteOnExit();
- externalizer.writeRepositoriesToXML(taskRepositories, file);
- taskRepositories.clear();
- assertEquals(0, taskRepositories.size());
- taskRepositories = externalizer.readRepositoriesFromXML(file);
- assertEquals(2, taskRepositories.size());
- taskRepositories.contains(repository1);
- taskRepositories.contains(repository2);
- for (TaskRepository repository : taskRepositories) {
- if (repository.getRepositoryUrl().equals(REPURL1)) {
- assertEquals(TIMEZONE, repository.getTimeZoneId());
- assertEquals(VERSION, repository.getVersion());
- assertEquals(ENCODING, repository.getCharacterEncoding());
- assertEquals(TIMESTAMP, repository.getSynchronizationTimeStamp());
- } else if (repository.getRepositoryUrl().equals(REPURL2)) {
- assertEquals(TIMEZONE + SUFFIX, repository.getTimeZoneId());
- assertEquals(VERSION + SUFFIX, repository.getVersion());
- assertEquals(ENCODING + SUFFIX, repository.getCharacterEncoding());
- assertEquals(TIMESTAMP + SUFFIX, repository.getSynchronizationTimeStamp());
- }
- }
-
- }
-
- public void testExternalizationEmptyRepository() {
- TaskRepositoriesExternalizer externalizer = new TaskRepositoriesExternalizer();
- String path = "repositories.xml";
- File file = new File(path);
- file.deleteOnExit();
- externalizer.writeRepositoriesToXML(taskRepositories, file);
- taskRepositories = externalizer.readRepositoriesFromXML(file);
- assertEquals(2, taskRepositories.size());
- taskRepositories.clear();
- externalizer.writeRepositoriesToXML(taskRepositories, file);
- taskRepositories = externalizer.readRepositoriesFromXML(file);
- assertEquals(0, taskRepositories.size());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryFilterTests.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryFilterTests.java
deleted file mode 100644
index 010106543..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryFilterTests.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author Shawn Minto
- */
-public class TaskRepositoryFilterTests extends TestCase {
-
- public void testCanCreateTaskFilter() {
- ITaskRepositoryFilter canCreateTaskFilter = ITaskRepositoryFilter.CAN_CREATE_NEW_TASK;
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- MockRepositoryConnector connector = (MockRepositoryConnector) TasksUiPlugin.getConnector(MockRepositoryConnector.REPOSITORY_KIND);
- assertFalse(canCreateTaskFilter.accept(repository, connector));
-
- connector.setCanCreateNewTask(true);
- assertTrue(canCreateTaskFilter.accept(repository, connector));
-
- repository.setOffline(true);
- assertFalse(canCreateTaskFilter.accept(repository, connector));
-
- connector.resetDefaults();
- }
-
- public void testCanQueryTaskFilter() {
- ITaskRepositoryFilter canQueryFilter = ITaskRepositoryFilter.CAN_QUERY;
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- MockRepositoryConnector connector = (MockRepositoryConnector) TasksUiPlugin.getConnector(MockRepositoryConnector.REPOSITORY_KIND);
- assertFalse(canQueryFilter.accept(repository, connector));
-
- repository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND,
- LocalRepositoryConnector.REPOSITORY_URL);
- AbstractRepositoryConnector localConnector = TasksUiPlugin.getConnector(LocalRepositoryConnector.CONNECTOR_KIND);
- assertFalse(canQueryFilter.accept(repository, localConnector));
-
- // need a second mock repo
- connector.setCanQuery(true);
- assertTrue(canQueryFilter.accept(repository, connector));
-
- repository.setOffline(true);
- assertFalse(canQueryFilter.accept(repository, connector));
-
- connector.resetDefaults();
- }
-
- public void testCanCreateTaskFromKeyTaskFilter() {
- ITaskRepositoryFilter canCreateTaskFromKeyFilter = ITaskRepositoryFilter.CAN_CREATE_TASK_FROM_KEY;
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- MockRepositoryConnector connector = (MockRepositoryConnector) TasksUiPlugin.getConnector(MockRepositoryConnector.REPOSITORY_KIND);
- assertFalse(canCreateTaskFromKeyFilter.accept(repository, connector));
-
- // need a second mock repo
- connector.setCanCreateTaskFromKey(true);
- assertTrue(canCreateTaskFromKeyFilter.accept(repository, connector));
-
- repository.setOffline(true);
- assertFalse(canCreateTaskFromKeyFilter.accept(repository, connector));
- connector.resetDefaults();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java
deleted file mode 100644
index 29437b571..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TaskRepositoryManagerTest extends TestCase {
-
- private static final String DEFAULT_KIND = MockRepositoryConnector.REPOSITORY_KIND;
-
- private static final String DEFAULT_URL = "http://eclipse.org";
-
- private static final String ANOTHER_URL = "http://codehaus.org";
-
- private TaskRepositoryManager manager;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- manager = TasksUiPlugin.getRepositoryManager();
- assertNotNull(manager);
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- if (manager != null) {
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
- }
-
- public void testRepositoryWithSlash() throws MalformedURLException {
-
- TaskRepository repository1 = new TaskRepository("bugzilla", "http://repository1/");
- manager.addRepository(repository1);
- assertNotNull(manager.getRepository("http://repository1"));
- assertNotNull(manager.getRepository("http://repository1/"));
-
- assertNotNull(manager.getRepository("bugzilla", "http://repository1"));
- assertNotNull(manager.getRepository("bugzilla", "http://repository1/"));
-
- }
-
- public void testQueryDeletion() {
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
-
- MockTask task = new MockTask("1");
- MockRepositoryQuery query = new MockRepositoryQuery("Test");
- TasksUiPlugin.getTaskList().addQuery(query);
- TasksUiPlugin.getTaskList().addTask(task, query);
-
- assertNotNull(TasksUiPlugin.getTaskList().getTask(task.getHandleIdentifier()));
- TasksUiPlugin.getTaskList().deleteQuery(query);
- ITask task2 = TasksUiPlugin.getTaskList().getTask(task.getHandleIdentifier());
- assertNotNull(task2);
- assertEquals(1, ((AbstractTask) task2).getParentContainers().size());
-
- }
-
- public void testHandles() {
- String url = "http://foo.bar";
- String id = "123";
- String handle = RepositoryTaskHandleUtil.getHandle(url, id);
- assertEquals(url, RepositoryTaskHandleUtil.getRepositoryUrl(handle));
- assertEquals(id, RepositoryTaskHandleUtil.getTaskId(handle));
-// assertEquals(123, AbstractTask.getTaskIdAsInt(handle));
- }
-
- public void testMultipleNotAdded() throws MalformedURLException {
- TaskRepository repository = new TaskRepository(DEFAULT_KIND, DEFAULT_URL);
- manager.addRepository(repository);
- TaskRepository repository2 = new TaskRepository(DEFAULT_KIND, DEFAULT_URL);
- manager.addRepository(repository2);
- assertEquals(1, manager.getAllRepositories().size());
- }
-
- public void testGet() throws MalformedURLException {
- assertEquals("", TasksUiPlugin.getDefault().getPreferenceStore().getString(
- TaskRepositoryManager.PREF_REPOSITORIES));
-
- TaskRepository repository = new TaskRepository(DEFAULT_KIND, DEFAULT_URL);
- manager.addRepository(repository);
- assertEquals(repository, manager.getRepository(DEFAULT_KIND, DEFAULT_URL));
- assertNull(manager.getRepository(DEFAULT_KIND, "foo"));
- assertNull(manager.getRepository("foo", DEFAULT_URL));
- }
-
- public void testConnectorAddition() {
- AbstractRepositoryConnector connector = new MockRepositoryConnector();
- manager.addRepositoryConnector(connector);
- assertNotNull(manager.getRepositoryConnector(connector.getConnectorKind()));
- }
-
- public void testRepositoryPersistance() throws MalformedURLException {
- TaskRepository repository1 = new TaskRepository("bugzilla", "http://bugzilla");
- TaskRepository repository2 = new TaskRepository("jira", "http://jira");
- TaskRepository repository3 = new TaskRepository("local", "http://local");
- manager.addRepository(repository3);
- manager.addRepository(repository1);
- manager.addRepository(repository2);
- TasksUiPlugin.getDefault();
- TasksUiPlugin.getExternalizationManager().load();
- //manager.readRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- if (manager.getRepositoryConnector("bugzilla") != null) {
- assertTrue(manager.getAllRepositories().contains(repository2));
- }
- if (manager.getRepositoryConnector("jira") != null) {
- assertTrue(manager.getAllRepositories().contains(repository2));
- }
- assertTrue(manager.getAllRepositories().contains(repository3));
- }
-
- public void testRepositoryAttributePersistance() throws MalformedURLException {
- assertEquals("", TasksUiPlugin.getDefault().getPreferenceStore().getString(
- TaskRepositoryManager.PREF_REPOSITORIES));
-
- String version = "123";
- String encoding = "UTF-16";
- String fakeTimeZone = "nowhere";
- Date now = new Date();
- String dateString = now.toString();
-
- TaskRepository repository1 = new TaskRepository("local", "http://bugzilla");
- repository1.setVersion(version);
- repository1.setCharacterEncoding(encoding);
- repository1.setTimeZoneId(fakeTimeZone);
- repository1.setSynchronizationTimeStamp(dateString);
- manager.addRepository(repository1);
- TasksUiPlugin.getDefault();
- TasksUiPlugin.getExternalizationManager().load();
- //manager.readRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TaskRepository temp = manager.getRepository(repository1.getConnectorKind(), repository1.getRepositoryUrl());
- assertNotNull(temp);
- assertEquals(version, temp.getVersion());
- assertEquals(encoding, temp.getCharacterEncoding());
- assertEquals(fakeTimeZone, temp.getTimeZoneId());
- assertEquals(dateString, temp.getSynchronizationTimeStamp());
-
- }
-
- public void testRepositoryPersistanceAfterDelete() throws MalformedURLException {
-
- TaskRepository repository = new TaskRepository(DEFAULT_KIND, DEFAULT_URL);
- manager.addRepository(repository);
- assertNotNull(manager.getRepository(repository.getConnectorKind(), repository.getRepositoryUrl()));
-
- TaskRepository repository2 = new TaskRepository(DEFAULT_KIND, ANOTHER_URL);
- manager.addRepository(repository2);
- assertNotNull(manager.getRepository(repository2.getConnectorKind(), repository2.getRepositoryUrl()));
-
- manager.removeRepository(repository2, TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- assertNull(manager.getRepository(repository2.getConnectorKind(), repository2.getRepositoryUrl()));
- }
-
- public void testRepositoryWithUnknownUrlHandler() {
- TaskRepository repository = new TaskRepository("eclipse.technology.mylar",
- "abc://news.eclipse.org/eclipse.technology.mylar");
-
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("testUser",
- "testPassword"), true);
-
- AuthenticationCredentials credentials = repository.getCredentials(AuthenticationType.REPOSITORY);
- assertNotNull(credentials);
- assertEquals("testUser", credentials.getUserName());
- assertEquals("testPassword", credentials.getPassword());
- }
-
- public void testRepositoryWithCustomAttributes() throws Exception {
- // Note: if a connector doesn't exist the associated repositories are not loaded (orphaned)
- // causing this test to fail.
- AbstractRepositoryConnector connector = new MockRepositoryConnector();
- manager.addRepositoryConnector(connector);
-
- TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND,
- "http://mylyn.eclipse.org/");
- repository.setProperty("owner", "euxx");
- manager.addRepository(repository);
- TasksUiPlugin.getDefault();
- TasksUiPlugin.getExternalizationManager().load();
- //manager.readRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- TaskRepository temp = manager.getRepository(repository.getConnectorKind(), repository.getRepositoryUrl());
- assertNotNull(temp);
- assertEquals("euxx", temp.getProperty("owner"));
- }
-
- public void testRepositoryPersistanceSameUrl() throws MalformedURLException {
- TaskRepository repository1 = new TaskRepository("local", "http://repository");
- TaskRepository repository2 = new TaskRepository("web", "http://repository");
- manager.addRepository(repository1);
- manager.addRepository(repository2);
- assertEquals(2, manager.getAllRepositories().size());
-
- List<TaskRepository> repositoryList = new ArrayList<TaskRepository>();
- repositoryList.add(repository2);
- repositoryList.add(repository1);
- //manager.readRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TasksUiPlugin.getDefault();
- TasksUiPlugin.getExternalizationManager().load();
- assertEquals("got: " + manager.getAllRepositories(), 2, manager.getAllRepositories().size());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositorySorterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositorySorterTest.java
deleted file mode 100644
index 12d6835ce..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositorySorterTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Mik Kersten
- */
-public class TaskRepositorySorterTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testCategorySorting() {
- TaskRepositoriesSorter sorter = new TaskRepositoriesSorter();
- TaskRepository t1 = new TaskRepository("t1", "http://a");
- TaskRepository t2 = new TaskRepository("t2", "http://a");
- TaskRepository t3 = new TaskRepository("t3", "http://a");
- assertTrue(sorter.compare(null, t1, t2) < 0);
- assertTrue(sorter.compare(null, t3, t1) > 0);
- }
-
- public void testUrlSorting() {
- TaskRepositoriesSorter sorter = new TaskRepositoriesSorter();
- TaskRepository t1 = new TaskRepository("t", "http://a");
- TaskRepository t2 = new TaskRepository("t", "http://b");
- TaskRepository t3 = new TaskRepository("t", "http://c");
- assertTrue(sorter.compare(null, t1, t2) < 0);
- assertTrue(sorter.compare(null, t3, t1) > 0);
- }
-
- public void testLabelSorting() {
- TaskRepositoriesSorter sorter = new TaskRepositoriesSorter();
- TaskRepository t1 = new TaskRepository("kind", "http://a");
- t1.setProperty(IRepositoryConstants.PROPERTY_LABEL, "a");
- TaskRepository t2 = new TaskRepository("kind", "http://a");
- t2.setProperty(IRepositoryConstants.PROPERTY_LABEL, "b");
- TaskRepository t3 = new TaskRepository("kind", "http://a");
- t3.setProperty(IRepositoryConstants.PROPERTY_LABEL, "c");
-
- assertTrue(sorter.compare(null, t1, t2) < 0);
- assertTrue(sorter.compare(null, t3, t1) > 0);
- }
-
- public void testLabelVsNoLabel() {
- TaskRepositoriesSorter sorter = new TaskRepositoriesSorter();
- TaskRepository t1 = new TaskRepository("kind", "http://a");
- t1.setProperty(IRepositoryConstants.PROPERTY_LABEL, "a");
- TaskRepository t2 = new TaskRepository("kind", "http://a");
-
- assertTrue(sorter.compare(null, t1, t2) < 0);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryTest.java
deleted file mode 100644
index 586ff518e..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.net.URL;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Mik Kersten
- */
-public class TaskRepositoryTest extends TestCase {
-
- @SuppressWarnings("deprecation")
- public void testPlatformAuthHandlerAvailable() throws Exception {
- URL url = new URL("http://mylyn");
- Platform.addAuthorizationInfo(url, "", "", Collections.EMPTY_MAP);
- assertNotNull("Tests require org.eclipse.core.runtime.compatibility.auth", Platform.getAuthorizationInfo(url,
- "", ""));
- }
-
- public void testLabel() {
- TaskRepository repository = new TaskRepository("kind", "http://foo.bar");
- assertTrue(repository.getRepositoryLabel().equals(repository.getRepositoryUrl()));
-
- repository.setProperty(IRepositoryConstants.PROPERTY_LABEL, "label");
- assertTrue(repository.getRepositoryLabel().equals("label"));
- }
-
- @SuppressWarnings("deprecation")
- public void testPassword() throws Exception {
- password(AuthenticationType.REPOSITORY);
-
- // test old API
- TaskRepository taskRepository = new TaskRepository("kind", "url");
- taskRepository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("user", "pwd"), true);
- assertEquals("user", taskRepository.getUserName());
- assertEquals("pwd", taskRepository.getPassword());
-
- assertEquals(null, taskRepository.getHttpUser());
- assertEquals(null, taskRepository.getHttpPassword());
- }
-
- @SuppressWarnings("deprecation")
- public void testHttpPassword() throws Exception {
- password(AuthenticationType.HTTP);
-
- TaskRepository taskRepository = new TaskRepository("kind", "url");
- taskRepository.setCredentials(AuthenticationType.HTTP, new AuthenticationCredentials("user", "pwd"), true);
- assertEquals("user", taskRepository.getHttpUser());
- assertEquals("pwd", taskRepository.getHttpPassword());
- }
-
- @SuppressWarnings("deprecation")
- public void testProxyPassword() throws Exception {
- password(AuthenticationType.PROXY);
-
- TaskRepository taskRepository = new TaskRepository("kind", "url");
- taskRepository.setCredentials(AuthenticationType.PROXY, new AuthenticationCredentials("user", "pwd"), false);
- assertEquals("user", taskRepository.getProxyUsername());
- assertEquals("pwd", taskRepository.getProxyPassword());
- }
-
- @SuppressWarnings("deprecation")
- public void testFlushCredentials() throws Exception {
- TaskRepository taskRepository = new TaskRepository("kind", "url");
- taskRepository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("user", "pwd"),
- false);
- taskRepository.setCredentials(AuthenticationType.HTTP, new AuthenticationCredentials("user", "pwd"), true);
- taskRepository.flushAuthenticationCredentials();
- assertEquals(null, taskRepository.getUserName());
- assertEquals(null, taskRepository.getPassword());
- assertEquals(null, taskRepository.getHttpUser());
- assertEquals(null, taskRepository.getHttpPassword());
- assertNull(taskRepository.getCredentials(AuthenticationType.REPOSITORY));
- assertNull(taskRepository.getCredentials(AuthenticationType.HTTP));
- assertNull(taskRepository.getCredentials(AuthenticationType.PROXY));
- }
-
- public void testPlatformIsRunning() {
- assertTrue(Platform.isRunning());
- }
-
- // TODO e3.4 move to new api
- @SuppressWarnings("deprecation")
- public void password(AuthenticationType authType) throws Exception {
- URL url = new URL("http://url");
- TaskRepository taskRepository = new TaskRepository("kind", url.toString());
- try {
- taskRepository.flushAuthenticationCredentials();
-
- assertNull(taskRepository.getCredentials(authType));
- assertTrue(taskRepository.getSavePassword(authType));
-
- taskRepository.setCredentials(authType, new AuthenticationCredentials("user", "pwd"), true);
- AuthenticationCredentials credentials = taskRepository.getCredentials(authType);
- assertNotNull(credentials);
- assertEquals("user", credentials.getUserName());
- assertEquals("pwd", credentials.getPassword());
-
- Map<?, ?> map = Platform.getAuthorizationInfo(url, "", "Basic");
- assertNotNull(map);
- assertTrue(map.containsValue("user"));
- assertTrue(map.containsValue("pwd"));
-
- // test not saving password
- taskRepository.setCredentials(authType, new AuthenticationCredentials("user1", "pwd1"), false);
- assertFalse(taskRepository.getSavePassword(authType));
- credentials = taskRepository.getCredentials(authType);
- assertNotNull(credentials);
- assertEquals("user1", credentials.getUserName());
- assertEquals("pwd1", credentials.getPassword());
-
- // make sure old passwords are not in the key ring
- map = Platform.getAuthorizationInfo(url, "", "Basic");
- assertNotNull(map);
- assertTrue(map.containsValue("user1"));
- assertFalse(map.containsValue("pwd1"));
- assertFalse(map.containsValue("user"));
- assertFalse(map.containsValue("pwd"));
-
- taskRepository.setCredentials(authType, new AuthenticationCredentials("user2", "pwd2"), true);
- assertTrue(taskRepository.getSavePassword(authType));
- credentials = taskRepository.getCredentials(authType);
- assertNotNull(credentials);
- assertEquals("user2", credentials.getUserName());
- assertEquals("pwd2", credentials.getPassword());
- } finally {
- taskRepository.flushAuthenticationCredentials();
- }
- }
-
- public void testConfigUpdateStoring() throws Exception {
- URL url = new URL("http://url");
- TaskRepository taskRepository = new TaskRepository("kind", url.toString());
- Date stamp = taskRepository.getConfigurationDate();
- assertNull("unset configuration date returns null", stamp);
- stamp = new Date();
- stamp.setTime(stamp.getTime() - 35000L);
-
- taskRepository.setConfigurationDate(stamp);
- assertEquals("Time stamp set", stamp.getTime(), taskRepository.getConfigurationDate().getTime());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java
deleted file mode 100644
index f893ae4e0..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class TaskTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testUrl() {
- AbstractTask task = new LocalTask("handle", "label");
- task.setUrl("http://eclipse.org/mylyn/doc");
- assertTrue(TasksUiInternal.isValidUrl(task.getUrl()));
-
- task.setUrl("http://");
- assertFalse(TasksUiInternal.isValidUrl(task.getUrl()));
-
- task.setUrl("https://");
- assertFalse(TasksUiInternal.isValidUrl(task.getUrl()));
-
- task.setUrl("");
- assertFalse(TasksUiInternal.isValidUrl(task.getUrl()));
-
- task.setUrl(null);
- assertFalse(TasksUiInternal.isValidUrl(task.getUrl()));
- }
-
- public void testPriorityNeverNull() {
- ITask task = new LocalTask("handle", "label");
- assertNotNull(task.getPriority());
-
- PriorityLevel def = PriorityLevel.getDefault();
- assertNotNull(def);
- assertEquals(def, PriorityLevel.fromDescription("garbage"));
- assertEquals(def, PriorityLevel.fromString("garbage"));
- }
-
- public void testPriorityLevelFromLevel() {
- assertEquals(PriorityLevel.P1, PriorityLevel.fromLevel(Integer.MIN_VALUE));
- assertEquals(PriorityLevel.P1, PriorityLevel.fromLevel(-1));
- assertEquals(PriorityLevel.P1, PriorityLevel.fromLevel(0));
- assertEquals(PriorityLevel.P1, PriorityLevel.fromLevel(1));
- assertEquals(PriorityLevel.P2, PriorityLevel.fromLevel(2));
- assertEquals(PriorityLevel.P3, PriorityLevel.fromLevel(3));
- assertEquals(PriorityLevel.P4, PriorityLevel.fromLevel(4));
- assertEquals(PriorityLevel.P5, PriorityLevel.fromLevel(5));
- assertEquals(PriorityLevel.P5, PriorityLevel.fromLevel(6));
- assertEquals(PriorityLevel.P5, PriorityLevel.fromLevel(Integer.MAX_VALUE));
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTestUtil.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTestUtil.java
deleted file mode 100644
index 9d59d49f2..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTestUtil.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ViewIntroAdapterPart;
-
-/**
- * @author Mik Kersten
- */
-public class TaskTestUtil {
-
- public static File getLocalFile(String path) {
- try {
- URL installURL = TasksTestsPlugin.getDefault().getBundle().getEntry(path);
- URL localURL = FileLocator.toFileURL(installURL);
- return new File(localURL.getFile());
- } catch (IOException e) {
- return null;
- }
- }
-
- public static File getFile(String path) throws IOException {
- if (TasksTestsPlugin.getDefault() != null) {
- URL installURL = TasksTestsPlugin.getDefault().getBundle().getEntry(path);
- URL localURL = FileLocator.toFileURL(installURL);
- return new File(localURL.getFile());
- } else {
- URL localURL = TaskTestUtil.class.getResource("");
- return new File(localURL.getFile() + "../../../../../../" + path);
- }
- }
-
- /**
- * Clears tasks and repositories. When this method returns only the local task repository will exist and the task
- * list will only have default categories but no tasks.
- */
- public static void resetTaskListAndRepositories() throws Exception {
- TasksUiPlugin.getRepositoryManager().clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- TasksUiPlugin.getDefault().getLocalTaskRepository();
- resetTaskList();
- }
-
- /**
- * Clears all tasks.
- */
- public static void resetTaskList() throws Exception {
- TasksUi.getTaskActivityManager().deactivateActiveTask();
- TasksUiPlugin.getTaskListExternalizationParticipant().resetTaskList();
- TaskListView view = TaskListView.getFromActivePerspective();
- if (view != null) {
- view.refresh();
- }
- }
-
- /**
- * @see #resetTaskList()
- */
- public static void saveAndReadTasklist() throws Exception {
- TasksUiPlugin.getTaskList().notifyElementsChanged(null);
- saveTaskList();
- TaskTestUtil.resetTaskList();
- TasksUiPlugin.getDefault().initializeDataSources();
- }
-
- public static void saveTaskList() {
- TasksUiPlugin.getExternalizationManager().requestSave();
- }
-
- public static TaskRepository createMockRepository() {
- return new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
- }
-
- public static TaskTask createMockTask(String taskId) {
- return new TaskTask(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, taskId);
- }
-
- public static RepositoryQuery createMockQuery(String queryId) {
- return new RepositoryQuery(MockRepositoryConnector.REPOSITORY_KIND, queryId);
- }
-
- public static TaskListView openTasksViewInActivePerspective() throws Exception {
- IWorkbenchPart activePart = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage()
- .getActivePart();
- if (activePart instanceof ViewIntroAdapterPart) {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView((IViewPart) activePart);
- }
- TaskListView taskListView = (TaskListView) PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage()
- .showView(ITasksUiConstants.ID_VIEW_TASKS);
- Assert.assertSame("Failed to make task list view active", PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage()
- .getActivePart(), taskListView);
- return taskListView;
- }
-
- public static void addAndSelectTask(ITask task) throws Exception {
- TasksUiPlugin.getTaskList().addTask(task);
- TaskListView taskListView = TaskTestUtil.openTasksViewInActivePerspective();
- taskListView.refresh();
- taskListView.getViewer().expandAll();
- taskListView.getViewer().setSelection(new StructuredSelection(task), true);
- Assert.assertSame("Failed to select task", task, taskListView.getSelectedTask());
- }
-
- public static TaskData createTaskData(TaskRepository taskRepository, String taskId) {
- return new TaskData(new TaskAttributeMapper(taskRepository), taskRepository.getConnectorKind(),
- taskRepository.getRepositoryUrl(), taskId);
- }
-
- public static TaskData createMockTaskData(String taskId) {
- return createTaskData(createMockRepository(), taskId);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskWorkingSetTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskWorkingSetTest.java
deleted file mode 100644
index 176a5a010..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskWorkingSetTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.resources.ProjectDescription;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.resources.tests.ResourceTestUtil;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.internal.Workbench;
-
-/**
- * @author Mik Kersten
- */
-public class TaskWorkingSetTest extends TestCase {
-
- private IProject project;
-
- private IWorkspaceRoot root;
-
- private IWorkingSet workingSet;
-
- private IWorkingSetManager workingSetManager;
-
- @Override
- protected void setUp() throws Exception {
- workingSetManager = Workbench.getInstance().getWorkingSetManager();
- root = ResourcesPlugin.getWorkspace().getRoot();
- }
-
- @Override
- protected void tearDown() throws Exception {
- if (workingSet != null) {
- workingSetManager.removeWorkingSet(workingSet);
- }
-
- if (project != null) {
- ResourceTestUtil.deleteProject(project);
- }
- }
-
- public void testDeleteQuery() {
- MockRepositoryQuery query = new MockRepositoryQuery("description");
- TaskList taskList = TasksUiPlugin.getTaskList();
- taskList.addQuery(query);
- workingSet = createWorkingSet(query);
- assertTrue(Arrays.asList(workingSet.getElements()).contains(query));
- TasksUiPlugin.getTaskList().deleteQuery(query);
- assertFalse(Arrays.asList(workingSet.getElements()).contains(query));
- }
-
- public void testRenameQuery() {
- MockRepositoryQuery query = new MockRepositoryQuery("description");
- TaskList taskList = TasksUiPlugin.getTaskList();
- taskList.addQuery(query);
- workingSet = createWorkingSet(query);
- assertTrue(workingSet.getElements().length == 1);
- IAdaptable[] elements = workingSet.getElements();
- assertTrue(elements.length == 1);
- assertTrue(elements[0] instanceof MockRepositoryQuery);
- assertTrue(((MockRepositoryQuery) elements[0]).getHandleIdentifier().equals("description"));
- assertTrue(Arrays.asList(workingSet.getElements()).contains(query));
-
- query.setHandleIdentifier("Test");
- assertTrue(workingSet.getElements().length == 1);
- elements = workingSet.getElements();
- assertTrue(elements.length == 1);
- assertTrue(elements[0] instanceof MockRepositoryQuery);
- assertTrue(((MockRepositoryQuery) elements[0]).getHandleIdentifier().equals("Test"));
- assertTrue(Arrays.asList(workingSet.getElements()).contains(query));
- }
-
- // XXX see bug 212962
-// public void testRenameQuery() {
-// MockRepositoryQuery query = new MockRepositoryQuery("description");
-// TaskList taskList = TasksUiPlugin.getTaskList();
-// taskList.addQuery(query);
-// workingSet = createWorkingSet(query);
-//
-// TasksUiPlugin.getTaskList().deleteQuery(query);
-// query = new MockRepositoryQuery("newDescription");
-// TasksUiPlugin.getTaskList().addQuery(query);
-// assertTrue(Arrays.asList(workingSet.getElements()).contains(query));
-// }
-//
-// public void testEditQuery() {
-// MockRepositoryQuery query = new MockRepositoryQuery("description");
-// TaskList taskList = TasksUiPlugin.getTaskList();
-// taskList.addQuery(query);
-// workingSet = createWorkingSet(query);
-//
-// TasksUiPlugin.getTaskList().deleteQuery(query);
-// TasksUiPlugin.getTaskList().addQuery(query);
-// assertTrue(Arrays.asList(workingSet.getElements()).contains(query));
-// }
-
- public void testRenameProject() throws Exception {
- createProject("Test Rename");
- workingSet = createWorkingSet(project);
-
- WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
- @Override
- protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException,
- InterruptedException {
- IProjectDescription description = new ProjectDescription();
- description.setName("New Name");
- project.move(description, true, new NullProgressMonitor());
- }
- };
- op.run(new NullProgressMonitor());
-
- IProject oldProject = root.getProject("Test Rename");
- IProject newProject = root.getProject("New Name");
- assertFalse(Arrays.asList(workingSet.getElements()).contains(oldProject));
- assertTrue(Arrays.asList(workingSet.getElements()).contains(newProject));
- }
-
- private void createProject(String name) throws CoreException {
- project = root.getProject(name);
- project.create(null);
- project.open(null);
- }
-
- private IWorkingSet createWorkingSet(IAdaptable element) {
- IWorkingSet workingSet = workingSetManager.createWorkingSet("Task Working Set", new IAdaptable[] { element });
- workingSet.setId(TaskWorkingSetUpdater.ID_TASK_WORKING_SET);
- assertTrue(Arrays.asList(workingSet.getElements()).contains(element));
- workingSetManager.addWorkingSet(workingSet);
- return workingSet;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksTestsPlugin.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksTestsPlugin.java
deleted file mode 100644
index da070eda4..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksTestsPlugin.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * @author Mik Kersten
- */
-public class TasksTestsPlugin extends Plugin {
-
- private static TasksTestsPlugin plugin;
-
- public TasksTestsPlugin() {
- super();
- plugin = this;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- super.stop(context);
- plugin = null;
- }
-
- /**
- * Returns the shared instance.
- */
- public static TasksTestsPlugin getDefault() {
- return plugin;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUiUtilTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUiUtilTest.java
deleted file mode 100644
index 071911242..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUiUtilTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import java.lang.reflect.Field;
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.browser.WebBrowserEditor;
-import org.eclipse.ui.internal.browser.WebBrowserEditorInput;
-
-/**
- * @author Shawn Minto
- */
-public class TasksUiUtilTest extends TestCase {
-
- private TaskCategory cat1;
-
- private AbstractTask cat1task1;
-
- private AbstractTask cat1task2;
-
- private IWorkbenchPage activePage;
-
- private TaskList taskList;
-
- @Override
- public void setUp() throws Exception {
- taskList = TasksUiPlugin.getTaskList();
-
- TaskTestUtil.resetTaskListAndRepositories();
-
- cat1 = new TaskCategory("First Category");
- taskList.addCategory(cat1);
-
- cat1task1 = TasksUiInternal.createNewLocalTask("task 1");
- cat1task1.setPriority(PriorityLevel.P1.toString());
- cat1task1.setCompletionDate(new Date());
- taskList.addTask(cat1task1, cat1);
-
- cat1task2 = TasksUiInternal.createNewLocalTask("task 2");
- cat1task2.setPriority(PriorityLevel.P2.toString());
- taskList.addTask(cat1task2, cat1);
-
- assertEquals(cat1.getChildren().size(), 2);
-
- activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- activePage.closeAllEditors(false);
- assertEquals(0, activePage.getEditorReferences().length);
- }
-
- @Override
- public void tearDown() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
- activePage.closeAllEditors(false);
- }
-
- public void testOpenTaskFromTask() {
- TasksUiUtil.openTask(cat1task1);
- assertEquals(1, activePage.getEditorReferences().length);
- IEditorPart editor = activePage.getEditorReferences()[0].getEditor(true);
- assertNotNull(editor);
- assertEquals(TaskEditor.class, editor);
-
- TasksUiUtil.openTask(cat1task2);
- assertEquals(2, activePage.getEditorReferences().length);
- assertTrue(editor instanceof TaskEditor);
- assertTrue(activePage.getEditorReferences()[1].getEditor(true) instanceof TaskEditor);
- }
-
- public void testOpenTaskFromString() {
- TasksUiUtil.openTask((String) null);
- assertEquals(1, activePage.getEditorReferences().length);
- assertTrue(activePage.getEditorReferences()[0].getEditor(true) instanceof WebBrowserEditor);
- }
-
- public void testOpenUrl() {
- TasksUiUtil.openUrl(null);
- assertEquals(1, activePage.getEditorReferences().length);
- IEditorPart editor = activePage.getEditorReferences()[0].getEditor(true);
- assertTrue(editor instanceof WebBrowserEditor);
- assertTrue(editor.getEditorInput() instanceof WebBrowserEditorInput);
- assertEquals(null, ((WebBrowserEditorInput) editor.getEditorInput()).getURL());
-
- TasksUiUtil.openUrl("http://eclipse.org/mylyn");
- assertEquals(2, activePage.getEditorReferences().length);
- editor = activePage.getEditorReferences()[0].getEditor(true);
- assertTrue(editor instanceof WebBrowserEditor);
- assertEquals(null, ((WebBrowserEditorInput) editor.getEditorInput()).getURL());
-
- IEditorPart editor2 = activePage.getEditorReferences()[1].getEditor(true);
- assertTrue(editor2 instanceof WebBrowserEditor);
- assertNotNull(((WebBrowserEditorInput) editor2.getEditorInput()).getURL());
- assertEquals("http://eclipse.org/mylyn", ((WebBrowserEditorInput) editor2.getEditorInput()).getURL().toString());
- }
-
- public void testFlagNoRichEditor() throws SecurityException, NoSuchFieldException, IllegalArgumentException,
- IllegalAccessException {
- TasksUiUtil.openUrl(null);
- assertEquals(1, activePage.getEditorReferences().length);
- IEditorPart editor = activePage.getEditorReferences()[0].getEditor(true);
- assertTrue(editor instanceof WebBrowserEditor);
- assertTrue(editor.getEditorInput() instanceof WebBrowserEditorInput);
- assertEquals(null, ((WebBrowserEditorInput) editor.getEditorInput()).getURL());
- WebBrowserEditorInput input = ((WebBrowserEditorInput) editor.getEditorInput());
- Field f = input.getClass().getDeclaredField("style");
- f.setAccessible(true);
- int style = (Integer) f.get(input);
- assertFalse((style & TasksUiUtil.FLAG_NO_RICH_EDITOR) == 0);
-
- TasksUiUtil.openUrl("http://eclipse.org/mylyn");
- assertEquals(2, activePage.getEditorReferences().length);
- editor = activePage.getEditorReferences()[0].getEditor(true);
- assertTrue(editor instanceof WebBrowserEditor);
- assertEquals(null, ((WebBrowserEditorInput) editor.getEditorInput()).getURL());
- input = ((WebBrowserEditorInput) editor.getEditorInput());
- f = input.getClass().getDeclaredField("style");
- f.setAccessible(true);
- style = (Integer) f.get(input);
- assertFalse((style & TasksUiUtil.FLAG_NO_RICH_EDITOR) == 0);
-
- IEditorPart editor2 = activePage.getEditorReferences()[1].getEditor(true);
- assertTrue(editor2 instanceof WebBrowserEditor);
- assertNotNull(((WebBrowserEditorInput) editor2.getEditorInput()).getURL());
- assertEquals("http://eclipse.org/mylyn", ((WebBrowserEditorInput) editor2.getEditorInput()).getURL().toString());
- input = ((WebBrowserEditorInput) editor.getEditorInput());
- f = input.getClass().getDeclaredField("style");
- f.setAccessible(true);
- style = (Integer) f.get(input);
- assertFalse((style & TasksUiUtil.FLAG_NO_RICH_EDITOR) == 0);
-
- // open task should not set FLAG_NO_RICH_EDITOR
- TasksUiUtil.openTask("http://eclipse.org/mylyn/test");
- assertEquals(3, activePage.getEditorReferences().length);
- editor = activePage.getEditorReferences()[2].getEditor(true);
- assertTrue(editor instanceof WebBrowserEditor);
- assertEquals("http://eclipse.org/mylyn/test", ((WebBrowserEditorInput) editor.getEditorInput()).getURL()
- .toString());
- input = ((WebBrowserEditorInput) editor.getEditorInput());
- f = input.getClass().getDeclaredField("style");
- f.setAccessible(true);
- style = (Integer) f.get(input);
- assertTrue((style & TasksUiUtil.FLAG_NO_RICH_EDITOR) == 0);
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUtilTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUtilTest.java
deleted file mode 100644
index e7528f703..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TasksUtilTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.provisional.tasks.core.TasksUtil;
-
-public class TasksUtilTest extends TestCase {
-
- public void testDecode() {
- assertEquals("abc", TasksUtil.encode("abc"));
- assertEquals("%2D_", TasksUtil.encode("-"));
- assertEquals("abc%2D_123", TasksUtil.encode("abc-123"));
- assertEquals("", TasksUtil.encode(""));
- }
-
- public void testDecodeInvalid() {
- try {
- String s = TasksUtil.decode("abc-123");
- fail("Expected IllegalArgumentException, got '" + s + "'");
- } catch (IllegalArgumentException e) {
- }
- try {
- String s = TasksUtil.decode("%Z_");
- fail("Expected IllegalArgumentException, got '" + s + "'");
- } catch (IllegalArgumentException e) {
- }
- }
-
- public void testEncode() {
- assertEquals("abc", TasksUtil.decode("abc"));
- assertEquals("-", TasksUtil.decode("%2D_"));
- assertEquals("abc-123", TasksUtil.decode("abc%2D_123"));
- assertEquals("abc-123", TasksUtil.decode(TasksUtil.decode(TasksUtil.encode(TasksUtil.encode("abc-123")))));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java
deleted file mode 100644
index ec2fe6364..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.connector;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Steffen Pingel
- */
-public class MockAttachmentHandler extends AbstractTaskAttachmentHandler {
-
- private byte[] data;
-
- public void setAttachmentData(byte[] data) {
- this.data = data;
- }
-
- @Override
- public boolean canGetContent(TaskRepository repository, ITask task) {
- return true;
- }
-
- @Override
- public boolean canPostContent(TaskRepository repository, ITask task) {
- return true;
- }
-
- @Override
- public InputStream getContent(TaskRepository repository, ITask task, TaskAttribute attachmentAttribute,
- IProgressMonitor monitor) throws CoreException {
- return new ByteArrayInputStream(data);
- }
-
- @Override
- public void postContent(TaskRepository repository, ITask task, AbstractTaskAttachmentSource source, String comment,
- TaskAttribute attachmentAttribute, IProgressMonitor monitor) throws CoreException {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java
deleted file mode 100644
index f20e614a3..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.connector;
-
-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.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Shawn Minto
- * @author Steffen Pingel
- */
-public class MockRepositoryConnector extends AbstractRepositoryConnector {
-
- // TODO 3.2 rename to CONNECTOR_KIND
- public static final String REPOSITORY_KIND = "mock";
-
- public static final String REPOSITORY_URL = "http://mockrepository.test";
-
- public static MockRepositoryConnector getDefault() {
- return (MockRepositoryConnector) TasksUi.getRepositoryConnector(REPOSITORY_KIND);
- }
-
- private AbstractTaskAttachmentHandler attachmentHandler;
-
- private boolean canQuery;
-
- private boolean canCreateNewTask;
-
- private boolean canCreateTaskFromKey;
-
- private boolean hasLocalCompletionState;
-
- public MockRepositoryConnector() {
- resetDefaults();
- }
-
- public void resetDefaults() {
- canQuery = false;
- canCreateNewTask = false;
- canCreateTaskFromKey = false;
- hasLocalCompletionState = false;
- }
-
- public void setCanCreateNewTask(boolean canCreateNewTask) {
- this.canCreateNewTask = canCreateNewTask;
- }
-
- public void setCanCreateTaskFromKey(boolean canCreateTaskFromKey) {
- this.canCreateTaskFromKey = canCreateTaskFromKey;
- }
-
- public void setCanQuery(boolean canQuery) {
- this.canQuery = canQuery;
- }
-
- public void setHasLocalCompletionState(boolean hasLocalCompletionState) {
- this.hasLocalCompletionState = hasLocalCompletionState;
- }
-
- @Override
- public boolean canQuery(TaskRepository repository) {
- return canQuery;
- }
-
- @Override
- public boolean canCreateNewTask(TaskRepository repository) {
- return canCreateNewTask;
- }
-
- @Override
- public boolean canCreateTaskFromKey(TaskRepository repository) {
- return canCreateTaskFromKey;
- }
-
- @Override
- public String getLabel() {
- return "Mock Repository (for unit tests)";
- }
-
- @Override
- public String getConnectorKind() {
- return REPOSITORY_KIND;
- }
-
- @Override
- public String getRepositoryUrlFromTaskUrl(String url) {
- // ignore
- return null;
- }
-
- @Override
- public String getTaskIdFromTaskUrl(String url) {
- // ignore
- return null;
- }
-
- @Override
- public String getTaskUrl(String repositoryUrl, String taskId) {
- return null;
- }
-
- @Override
- public void updateRepositoryConfiguration(TaskRepository repository, IProgressMonitor monitor) throws CoreException {
- // ignore
- }
-
- @Override
- public IStatus performQuery(TaskRepository repository, IRepositoryQuery query, TaskDataCollector resultCollector,
- ISynchronizationSession event, IProgressMonitor monitor) {
- return Status.OK_STATUS;
- }
-
- @Override
- public AbstractTaskAttachmentHandler getTaskAttachmentHandler() {
- return attachmentHandler;
- }
-
- public void setTaskAttachmentHandler(MockAttachmentHandler attachmentHandler) {
- this.attachmentHandler = attachmentHandler;
- }
-
- @Override
- public TaskData getTaskData(TaskRepository taskRepository, String taskId, IProgressMonitor monitor)
- throws CoreException {
- return null;
- }
-
- @Override
- public boolean hasTaskChanged(TaskRepository taskRepository, ITask task, TaskData taskData) {
- return false;
- }
-
- @Override
- public boolean hasLocalCompletionState(TaskRepository taskRepository, ITask task) {
- return hasLocalCompletionState;
- }
-
- @Override
- public void updateTaskFromTaskData(TaskRepository taskRepository, ITask task, TaskData taskData) {
- }
-
-// @Override
-// public Set<RepositoryTemplate> getTemplates() {
-// Set<RepositoryTemplate> templates = new HashSet<RepositoryTemplate>();
-// RepositoryTemplate template = new RepositoryTemplate("Mock Template", REPOSITORY_URL, "utf-8", "1", "new",
-// "prefix", "query", "newAccountUrl", false, true);
-// templates.add(template);
-// return templates;
-// }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnectorUi.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnectorUi.java
deleted file mode 100644
index 221d201a0..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnectorUi.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.connector;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class MockRepositoryConnectorUi extends AbstractRepositoryConnectorUi {
-
- private static Pattern HYPERLINK_PATTERN = Pattern.compile("(\\d+)");
-
- @Override
- public String getConnectorKind() {
- return "mock";
- }
-
- @Override
- public ITaskRepositoryPage getSettingsPage(TaskRepository taskRepository) {
- // ignore
- return null;
- }
-
- @Override
- public boolean hasSearchPage() {
- return false;
- }
-
- @Override
- public IWizard getQueryWizard(TaskRepository repository, IRepositoryQuery query) {
- // ignore
- return null;
- }
-
- @Override
- public IWizard getNewTaskWizard(TaskRepository taskRepository, ITaskMapping selection) {
- // ignore
- return null;
- }
-
- @Override
- public IHyperlink[] findHyperlinks(TaskRepository repository, String text, int index, int textOffset) {
- List<IHyperlink> links = new ArrayList<IHyperlink>();
- Matcher m = HYPERLINK_PATTERN.matcher(text);
- while (m.find()) {
- links.add(new TaskHyperlink(new Region(textOffset + m.start(), m.end() - m.start()), repository, m.group()));
- }
- return links.toArray(new IHyperlink[0]);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java
deleted file mode 100644
index d23cf0ebb..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.connector;
-
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-
-/**
- * @author Mik Kersten
- */
-public class MockRepositoryQuery extends RepositoryQuery {
-
- public String MOCK_QUERY_URL = MockRepositoryConnector.REPOSITORY_URL + ".query";
-
- public MockRepositoryQuery(String description) {
- super(MockRepositoryConnector.REPOSITORY_KIND, description);
- super.setUrl(MOCK_QUERY_URL);
- super.setRepositoryUrl(MockRepositoryConnector.REPOSITORY_URL);
- }
-
- public MockRepositoryQuery(String description, String url) {
- super(MockRepositoryConnector.REPOSITORY_KIND, description);
- super.setUrl(url);
- }
-
- @Override
- public String getConnectorKind() {
- return "mock";
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockTask.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockTask.java
deleted file mode 100644
index 5a7ad3b4c..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockTask.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.connector;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-
-/**
- * @author Mik Kersten
- */
-public class MockTask extends AbstractTask {
-
- private String ownerId;
-
- public MockTask(String taskId) {
- super(MockRepositoryConnector.REPOSITORY_URL, taskId, taskId);
- }
-
- public MockTask(String repositoryUrl, String taskId) {
- super(repositoryUrl, taskId, taskId);
- }
-
- public MockTask(String repositoryUrl, String taskId, String summary) {
- super(repositoryUrl, taskId, summary);
- }
-
- @Override
- public String getConnectorKind() {
- return "mock";
- }
-
- @Override
- public void setOwner(String ownerId) {
- this.ownerId = ownerId;
- }
-
- @Override
- public String getOwner() {
- if (ownerId == null) {
- return super.getOwner();
- } else {
- return ownerId;
- }
- }
-
- @Override
- public String toString() {
- return "Mock Task: " + super.getHandleIdentifier();
- }
-
- @Override
- public boolean isLocal() {
- // ignore
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/FileTaskAttachmentSourceTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/FileTaskAttachmentSourceTest.java
deleted file mode 100644
index 0a4136ec8..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/FileTaskAttachmentSourceTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests.core;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-
-/**
- * @author David Green
- */
-public class FileTaskAttachmentSourceTest extends TestCase {
-
- public void testGetContentTypeFromFilename() {
- assertEquals("text/plain", FileTaskAttachmentSource.getContentTypeFromFilename("a.txt"));
- assertEquals("text/plain", FileTaskAttachmentSource.getContentTypeFromFilename("foo.mylyn-test-text"));
- assertEquals("application/xml", FileTaskAttachmentSource.getContentTypeFromFilename("a.xml"));
- assertEquals("application/xml", FileTaskAttachmentSource.getContentTypeFromFilename("foo.mylyn-test-xml"));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/ITasksCoreConstantsTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/ITasksCoreConstantsTest.java
deleted file mode 100644
index 7eb513763..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/ITasksCoreConstantsTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.core;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants.MutexSchedulingRule;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants.ObjectSchedulingRule;
-
-/**
- * @author Steffen Pingel
- */
-public class ITasksCoreConstantsTest extends TestCase {
-
- public void testRootRuleConflicts() {
- assertTrue(ITasksCoreConstants.ROOT_SCHEDULING_RULE.isConflicting(ITasksCoreConstants.ROOT_SCHEDULING_RULE));
- assertTrue(ITasksCoreConstants.ROOT_SCHEDULING_RULE.isConflicting(ITasksCoreConstants.TASKLIST_SCHEDULING_RULE));
- assertTrue(ITasksCoreConstants.ROOT_SCHEDULING_RULE.isConflicting(new MutexSchedulingRule()));
- assertTrue(ITasksCoreConstants.ROOT_SCHEDULING_RULE.isConflicting(new ObjectSchedulingRule(this)));
- assertTrue(ITasksCoreConstants.TASKLIST_SCHEDULING_RULE.isConflicting(ITasksCoreConstants.ROOT_SCHEDULING_RULE));
- assertTrue(new MutexSchedulingRule().isConflicting(ITasksCoreConstants.ROOT_SCHEDULING_RULE));
- assertTrue(new ObjectSchedulingRule(this).isConflicting(ITasksCoreConstants.ROOT_SCHEDULING_RULE));
- }
-
- public void testObjectSchdedulingRuleConflicts() {
- assertTrue(new ObjectSchedulingRule(this).isConflicting(new ObjectSchedulingRule(this)));
- assertFalse(new ObjectSchedulingRule(new Object()).isConflicting(new ObjectSchedulingRule(this)));
- ObjectSchedulingRule rule = new ObjectSchedulingRule(this);
- assertTrue(rule.isConflicting(rule));
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskListUnmatchedContainerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskListUnmatchedContainerTest.java
deleted file mode 100644
index 3ecc288a2..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskListUnmatchedContainerTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.core;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-/**
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class TaskListUnmatchedContainerTest extends TestCase {
-
- private TaskList taskList;
-
- private UnmatchedTaskContainer unmatchedContainer;
-
- @Override
- protected void setUp() throws Exception {
- taskList = new TaskList();
- unmatchedContainer = new UnmatchedTaskContainer(MockRepositoryConnector.REPOSITORY_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- taskList.addUnmatchedContainer(unmatchedContainer);
- }
-
- @Override
- protected void tearDown() throws Exception {
- }
-
- /**
- * When a local tasks is removed from a category it should be placed in the Uncategorized folder.
- */
- public void testRemoveLocalTask() {
- TaskCategory category = new TaskCategory("taskCategoryHandle");
- taskList.addCategory(category);
- LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), "new local task");
- taskList.addTask(newTask, category);
- //assertEquals(1, taskList.getOrphanContainers().size());
- assertEquals(2, taskList.getCategories().size());
- taskList.removeFromContainer(category, newTask);
- //assertEquals(taskList.getOrphanContainers().size(), 1);
- assertFalse(category.contains(newTask.getHandleIdentifier()));
- assertTrue(taskList.getDefaultCategory().contains(newTask.getHandleIdentifier()));
- assertEquals(1, newTask.getParentContainers().size());
- assertEquals(taskList.getDefaultCategory(), TaskCategory.getParentTaskCategory(newTask));
- }
-
- /**
- * Local tasks in a removed category should be orphaned.
- */
- public void testLocalTaskOrphanedInDeletedTaskCategory() {
- assertTrue(taskList.getDefaultCategory().isEmpty());
- TaskCategory category = new TaskCategory("taskCategoryHandle");
- taskList.addCategory(category);
- LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), "new local task");
- taskList.addTask(newTask, category);
- assertTrue(taskList.getDefaultCategory().isEmpty());
- taskList.deleteCategory(category);
- assertTrue(taskList.getDefaultCategory().contains(newTask.getHandleIdentifier()));
-
- }
-
- /**
- * Query removed with task in category, just query removed task remains.
- */
- public void testTaskRemovedFromQuery() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
-
- taskList.removeFromContainer(mockQuery, mockTask);
-
- assertFalse(mockQuery.contains(mockTask.getHandleIdentifier()));
- assertTrue(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- }
-
- /**
- * Query removed with task in category, just query removed task remains.
- */
- public void testTaskRemovedFromQueryButInCategory() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
-
- TaskCategory category = new TaskCategory("taskCategoryHandle");
- taskList.addCategory(category);
- taskList.addTask(mockTask, category);
- assertTrue(category.contains(mockTask.getHandleIdentifier()));
- taskList.removeFromContainer(mockQuery, mockTask);
-
- assertFalse(mockQuery.contains(mockTask.getHandleIdentifier()));
- assertEquals(2, taskList.getCategories().size());
- assertTrue(category.contains(mockTask.getHandleIdentifier()));
-
- //* Repository tasks within a removed category that are not in a query should be orphaned.
-
- taskList.removeFromContainer(category, mockTask);
- assertTrue(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- }
-
- /**
- * Repository tasks that exists in a query are not orphaned.
- */
- public void testRepositoryTaskInDeletedCategory() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
- assertEquals(1, taskList.getCategories().size());
- TaskCategory category = new TaskCategory("taskCategoryHandle");
- taskList.addCategory(category);
- taskList.addTask(mockTask, category);
- assertEquals(2, taskList.getCategories().size());
- assertTrue(taskList.getDefaultCategory().isEmpty());
- taskList.deleteCategory(category);
- assertTrue(unmatchedContainer.isEmpty());
- assertEquals(1, taskList.getCategories().size());
- }
-
- /**
- * Repository tasks in deleted queries are orphaned.
- */
- public void testRepositoryTaskInDeletedQuery() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- assertTrue(taskList.getQueries().size() > 0);
- taskList.addTask(mockTask, mockQuery);
- assertTrue(mockQuery.contains(mockTask.getHandleIdentifier()));
- assertTrue(unmatchedContainer.isEmpty());
- taskList.deleteQuery(mockQuery);
- assertTrue(taskList.getQueries().size() == 0);
- assertFalse(unmatchedContainer.isEmpty());
- }
-
- /**
- * Repository tasks that exist in another query are not orphaned
- */
- public void testRemovalOfTaskInTwoQueries() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query 1");
- MockRepositoryQuery mockQuery2 = new MockRepositoryQuery("mock query 2");
- taskList.addQuery(mockQuery);
- taskList.addQuery(mockQuery2);
- taskList.addTask(mockTask, mockQuery);
- taskList.addTask(mockTask, mockQuery2);
-
- taskList.removeFromContainer(mockQuery2, mockTask);
- assertTrue(mockQuery2.isEmpty());
- assertFalse(mockQuery.isEmpty());
- assertTrue(unmatchedContainer.isEmpty());
- }
-
- /**
- * Moving an orphan to a Category should result in the task only being present in the target Category
- */
- public void testMoveLocalTask() {
- TaskCategory category = new TaskCategory("taskCategoryHandle");
- taskList.addCategory(category);
- LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), "new local task");
- taskList.addTask(newTask, null);
- assertTrue(taskList.getDefaultCategory().contains(newTask.getHandleIdentifier()));
- taskList.addTask(newTask, category);
- assertFalse(taskList.getDefaultCategory().contains(newTask.getHandleIdentifier()));
- }
-
- public void testAddRepositoryTask() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
- Set<ITask> tasks = taskList.getTasks(MockRepositoryConnector.REPOSITORY_URL);
- assertFalse(tasks.isEmpty());
-
- RepositoryQuery query = (RepositoryQuery) mockTask.getParentContainers().iterator().next();
- assertEquals(mockQuery, query);
- assertFalse(query.isEmpty());
- assertTrue(unmatchedContainer.isEmpty());
- }
-
- public void testMoveRepositoryTask() {
- TaskList tasklist = taskList;
- assertTrue(tasklist.getAllTasks().isEmpty());
-
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
-
- TaskCategory category = new TaskCategory("taskCategoryHandle");
- taskList.addCategory(category);
-
- taskList.addTask(mockTask, category);
- assertTrue(taskList.getDefaultCategory().isEmpty());
- assertTrue(category.contains(mockTask.getHandleIdentifier()));
- assertTrue(mockQuery.contains(mockTask.getHandleIdentifier()));
-
- }
-
- public void testRefactorOrphanedHandle() {
- MockTask mockTask = new MockTask("1");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
-
- taskList.removeFromContainer(mockQuery, mockTask);
-
- assertFalse(mockQuery.contains(mockTask.getHandleIdentifier()));
- assertTrue(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
-
- taskList.refactorRepositoryUrl(MockRepositoryConnector.REPOSITORY_URL, MockRepositoryConnector.REPOSITORY_URL
- + "new");
- assertTrue(taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL + "new").contains(
- mockTask.getHandleIdentifier()));
- }
-
- public void testOrphanedSubtasks() {
- MockTask mockTask = new MockTask("1");
- MockTask mockTask2 = new MockTask("2");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
- taskList.addTask(mockTask2, mockTask);
-
- assertFalse(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- assertFalse(unmatchedContainer.contains(mockTask2.getHandleIdentifier()));
-
- assertNotNull(taskList.getTask(mockTask.getHandleIdentifier()));
- assertNotNull(taskList.getTask(mockTask2.getHandleIdentifier()));
- assertNotNull(unmatchedContainer);
- taskList.removeFromContainer(mockQuery, mockTask);
- assertTrue(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- assertTrue(mockTask.contains(mockTask2.getHandleIdentifier()));
- taskList.deleteTask(mockTask);
- assertFalse(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- // mockTask2 should be orphaned when the parent task is deleted
- assertTrue(unmatchedContainer.contains(mockTask2.getHandleIdentifier()));
- }
-
- /**
- * If a task with subtasks falls out of a query, if its subtasks are subtasks of another task that is still around,
- * they shouldn't be in the archive.
- */
- public void testOrphanedSubtaskWithOtherParent() {
- MockTask mockTask = new MockTask("1");
- MockTask mockTask2 = new MockTask("2");
- MockTask mockTask3 = new MockTask("3");
- MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query");
- taskList.addQuery(mockQuery);
- taskList.addTask(mockTask, mockQuery);
- taskList.addTask(mockTask2, mockTask);
- taskList.addTask(mockTask3, mockQuery);
- taskList.addTask(mockTask2, mockTask3);
- assertFalse(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- assertFalse(unmatchedContainer.contains(mockTask2.getHandleIdentifier()));
- assertFalse(unmatchedContainer.contains(mockTask3.getHandleIdentifier()));
-
- taskList.removeFromContainer(mockQuery, mockTask);
- assertTrue(unmatchedContainer.contains(mockTask.getHandleIdentifier()));
- assertTrue(mockTask.contains(mockTask2.getHandleIdentifier()));
-
- // True since mockTask is contained and has mockTask2 as a subtask
-// assertFalse(unmatchedContainer.contains(
-// mockTask2.getHandleIdentifier()));
-
- taskList.removeFromContainer(mockQuery, mockTask3);
- assertTrue(unmatchedContainer.contains(mockTask3.getHandleIdentifier()));
- assertTrue(mockTask3.contains(mockTask2.getHandleIdentifier()));
- // True since mockTask is contained and has mockTask2 as a subtask
-// assertFalse(unmatchedContainer.contains(
-// mockTask2.getHandleIdentifier()));
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskRepositoryLocationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskRepositoryLocationTest.java
deleted file mode 100644
index 018e977fa..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/TaskRepositoryLocationTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.core;
-
-import java.net.InetSocketAddress;
-import java.net.Proxy;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.net.proxy.IProxyData;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.UnsupportedRequestException;
-import org.eclipse.mylyn.internal.commons.net.AuthenticatedProxy;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryLocation;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskRepositoryLocationTest extends TestCase {
-
- public void testGetCredentials() {
- TaskRepository taskRepository = new TaskRepository("kind", "http://url");
- taskRepository.flushAuthenticationCredentials();
- TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
- assertNull(location.getCredentials(AuthenticationType.HTTP));
-
- taskRepository.setCredentials(AuthenticationType.HTTP, new AuthenticationCredentials("user", "pwd"), true);
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.HTTP);
- assertNotNull(credentials);
- assertEquals("user", credentials.getUserName());
- assertEquals("pwd", credentials.getPassword());
-
- assertNull(location.getCredentials(AuthenticationType.PROXY));
-
- taskRepository.setCredentials(AuthenticationType.PROXY, new AuthenticationCredentials("user2", "pwd2"), true);
- credentials = location.getCredentials(AuthenticationType.PROXY);
- assertNotNull(credentials);
- assertEquals("user2", credentials.getUserName());
- assertEquals("pwd2", credentials.getPassword());
- }
-
- public void testGetProxyForHost() {
- TaskRepository taskRepository = new TaskRepository("kind", "http://url");
- TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
-
- assertTrue(taskRepository.isDefaultProxyEnabled());
- assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
-
- taskRepository.setProperty(TaskRepository.PROXY_USEDEFAULT, "false");
- assertFalse(taskRepository.isDefaultProxyEnabled());
- assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
-
- taskRepository.setProperty(TaskRepository.PROXY_HOSTNAME, "host");
- taskRepository.setProperty(TaskRepository.PROXY_PORT, "1234");
- Proxy proxy = location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE);
- assertNotNull(proxy);
- assertEquals(new InetSocketAddress("host", 1234), proxy.address());
-
- taskRepository.setCredentials(AuthenticationType.PROXY, new AuthenticationCredentials("user", "pwd"), false);
- proxy = location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE);
- assertNotNull(proxy);
- assertEquals(new InetSocketAddress("host", 1234), proxy.address());
-
- assertTrue(proxy instanceof AuthenticatedProxy);
- assertEquals("user", ((AuthenticatedProxy) proxy).getUserName());
- assertEquals("pwd", ((AuthenticatedProxy) proxy).getPassword());
- }
-
- public void testGetProxyForHostEmptyProxy() {
- TaskRepository taskRepository = new TaskRepository("kind", "http://url");
- TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
-
- taskRepository.setDefaultProxyEnabled(false);
- assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
-
- taskRepository.setProperty(TaskRepository.PROXY_HOSTNAME, "");
- taskRepository.setProperty(TaskRepository.PROXY_PORT, "");
- assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
-
- taskRepository.setProperty(TaskRepository.PROXY_HOSTNAME, "");
- taskRepository.setProperty(TaskRepository.PROXY_PORT, "abc");
- assertEquals(null, location.getProxyForHost("localhost", IProxyData.HTTP_PROXY_TYPE));
- }
-
- public void testRequestCredentials() {
- TaskRepository taskRepository = new TaskRepository("kind", "http://url");
- TaskRepositoryLocation location = new TaskRepositoryLocation(taskRepository);
- try {
- location.requestCredentials(AuthenticationType.REPOSITORY, null, null);
- fail("Expected UnsupportedRequestException");
- } catch (UnsupportedRequestException expected) {
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/data/TaskDataExternalizerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/data/TaskDataExternalizerTest.java
deleted file mode 100644
index 3ebf0a5b5..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/data/TaskDataExternalizerTest.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.data;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.zip.ZipInputStream;
-
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.data.ITaskDataConstants;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataExternalizer;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataState;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.AttributesImpl;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskDataExternalizerTest extends TestCase {
-
- private class SimpleCharacterReader extends DefaultHandler {
-
- private char ch;
-
- public SimpleCharacterReader() {
- }
-
- @Override
- public void characters(char[] ch, int start, int length) throws SAXException {
- Assert.assertEquals(1, length);
- this.ch = ch[start];
- }
-
- public char getCharacter() {
- return ch;
- }
-
- }
-
- private final class SimpleCharacterWriter {
- private final TransformerHandler handler;
-
- public SimpleCharacterWriter(TransformerHandler handler) {
- this.handler = handler;
- }
-
- public void write(char character) throws SAXException {
- handler.startDocument();
- AttributesImpl atts = new AttributesImpl();
- handler.startElement("", "", ITaskDataConstants.ELEMENT_VALUE, atts); //$NON-NLS-1$ //$NON-NLS-2$
- ///handler.startCDATA();
- handler.characters(new char[] { character }, 0, 1);
- //handler.endCDATA();
- handler.endElement("", "", ITaskDataConstants.ELEMENT_VALUE);
- handler.endDocument();
- }
- }
-
- TaskDataExternalizer externalizer;
-
- @Override
- protected void setUp() throws Exception {
- externalizer = new TaskDataExternalizer(null);
- }
-
- public void testMapFromLegacy() throws Exception {
- File file = TaskTestUtil.getFile("testdata/taskdata-1.0-bug-219897.zip");
- ZipInputStream in = new ZipInputStream(new FileInputStream(file));
- ITaskDataWorkingCopy state;
- try {
- in.getNextEntry();
- state = externalizer.readState(in);
- } finally {
- in.close();
- }
-
- TaskData taskData = state.getRepositoryData();
- @SuppressWarnings("unused")
- TaskMapper taskScheme = new TaskMapper(taskData);
-
- fail("fixme");
-// RepositoryTaskData legacyData = TaskDataUtil.toLegacyData(taskData, IdentityAttributeFactory.getInstance());
-// assertEquals(taskData.getConnectorKind(), legacyData.getConnectorKind());
-// assertEquals(taskData.getRepositoryUrl(), legacyData.getRepositoryUrl());
-// assertEquals(taskData.getTaskId(), legacyData.getTaskId());
-// assertEquals(taskScheme.getTaskKind(), legacyData.getTaskKind());
-// assertEquals(taskScheme.getComments().length, legacyData.getComments().size());
-// assertEquals(taskScheme.getAttachments().length, legacyData.getAttachments().size());
-//
-// TaskData taskData2 = TaskDataUtil.toTaskData(legacyData, IdentityAttributeMapper.getInstance());
-// assertEquals(taskData.getConnectorKind(), taskData2.getConnectorKind());
-// assertEquals(taskData.getRepositoryUrl(), taskData2.getRepositoryUrl());
-// assertEquals(taskData.getTaskId(), taskData2.getTaskId());
-//
-// assertEquals(taskData.getRoot().toString(), taskData2.getRoot().toString());
- }
-
- public void testRead() throws Exception {
- File file = TaskTestUtil.getFile("testdata/taskdata-1.0-bug-219897.zip");
- ZipInputStream in = new ZipInputStream(new FileInputStream(file));
- try {
- in.getNextEntry();
- @SuppressWarnings("unused")
- ITaskDataWorkingCopy state = externalizer.readState(in);
- } finally {
- in.close();
- }
- }
-
- public void testReadWrite() throws Exception {
- File file = TaskTestUtil.getFile("testdata/taskdata-1.0-bug-219897.zip");
- ZipInputStream in = new ZipInputStream(new FileInputStream(file));
- ITaskDataWorkingCopy state;
- try {
- in.getNextEntry();
- state = externalizer.readState(in);
- } finally {
- in.close();
- }
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- externalizer.writeState(out, state);
- TaskDataState state2 = externalizer.readState(new ByteArrayInputStream(out.toByteArray()));
- assertEquals(state.getConnectorKind(), state2.getConnectorKind());
- assertEquals(state.getRepositoryUrl(), state2.getRepositoryUrl());
- assertEquals(state.getTaskId(), state2.getTaskId());
-
- assertEquals(state.getRepositoryData().getRoot().toString(), state2.getRepositoryData().getRoot().toString());
-
- }
-
- public void testWriteandReadBadCharacter() throws Exception {
- for (int i = 0; i < 0xFFFF; i++) {
- char badChar = (char) i;
-
- StringWriter stringWriter = new StringWriter();
- SAXTransformerFactory transformerFactory = (SAXTransformerFactory) TransformerFactory.newInstance();
- TransformerHandler handler = transformerFactory.newTransformerHandler();
- Transformer serializer = handler.getTransformer();
- serializer.setOutputProperty(OutputKeys.VERSION, "1.0");
- serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //$NON-NLS-1$
- serializer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
- handler.setResult(new StreamResult(stringWriter));
- SimpleCharacterWriter writer = new SimpleCharacterWriter(handler);
- writer.write(badChar);
-
- XMLReader parser = XMLReaderFactory.createXMLReader();
- SimpleCharacterReader readHandler = new SimpleCharacterReader();
- parser.setEntityResolver(new EntityResolver() {
- public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
- System.out.println(publicId);
- System.out.println(systemId);
- return null;
- }
- });
- parser.setContentHandler(readHandler);
- parser.parse(new InputSource(new StringReader(stringWriter.getBuffer().toString())));
- char character = readHandler.getCharacter();
- assertEquals(badChar, character);
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskContainerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskContainerTest.java
deleted file mode 100644
index 9f9826113..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskContainerTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.performance;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-import org.eclipse.test.performance.PerformanceTestCase;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskContainerTest extends PerformanceTestCase {
-
- int counter;
-
- private void addChildren(AbstractTask parent, int[] childCount, int depth) {
- for (int i = 0; i < childCount[depth]; i++) {
- MockTask task = new MockTask("task", ++counter + "");
- parent.internalAddChild(task);
- if (depth < childCount.length - 1) {
- addChildren(task, childCount, depth + 1);
- }
- }
- }
-
- public void testContains() {
- MockTask task = new MockTask(++counter + "");
- addChildren(task, new int[] { 1000, 10, 2 }, 0);
-
- for (int i = 0; i < 10; i++) {
- startMeasuring();
- task.contains("handle");
- stopMeasuring();
- }
-
- commitMeasurements();
- assertPerformance();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskListPerformanceTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskListPerformanceTest.java
deleted file mode 100644
index dfef9ecac..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/performance/TaskListPerformanceTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.performance;
-
-import java.io.File;
-
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TransferList;
-import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.test.performance.PerformanceTestCase;
-
-public class TaskListPerformanceTest extends PerformanceTestCase {
-
- private static final String TASK_LIST_4000 = "testdata/performance/tasklist-4000.xml.zip";
-
- private TaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- taskList = TasksUiPlugin.getTaskList();
- taskList.reset();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- taskList.reset();
- }
-
- public void testReadTasksWith4000Tasks() throws Exception {
- final File file = TaskTestUtil.getLocalFile(TASK_LIST_4000);
- final TaskListExternalizer taskListWriter = TasksUiPlugin.getDefault().createTaskListExternalizer();
-
- for (int i = 0; i < 10; i++) {
- startMeasuring();
- taskListWriter.readTaskList(new TransferList(), file);
- stopMeasuring();
- taskList.reset();
- }
-
- commitMeasurements();
- assertPerformance();
- }
-
- public void testReadTaskListWith4000Tasks() throws Exception {
- final File file = TaskTestUtil.getLocalFile(TASK_LIST_4000);
- final TaskListExternalizer taskListWriter = TasksUiPlugin.getDefault().createTaskListExternalizer();
-
- for (int i = 0; i < 10; i++) {
- startMeasuring();
- taskListWriter.readTaskList(new TransferList(), file);
- stopMeasuring();
- taskList.reset();
- }
-
- commitMeasurements();
- assertPerformance();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/ContextPerspectiveManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/ContextPerspectiveManagerTest.java
deleted file mode 100644
index 1513aae82..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/ContextPerspectiveManagerTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
-import org.eclipse.mylyn.internal.context.ui.IContextUiPreferenceContstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.monitor.ui.MonitorUi;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class ContextPerspectiveManagerTest extends TestCase {
-
- private static final String ID_RESOURCE_PERSPECTIVE = "org.eclipse.ui.resourcePerspective";
-
- private static final String ID_PLANNING_PERSPECTIVE = "org.eclipse.mylyn.tasks.ui.perspectives.planning";
-
- private boolean previousSetting;
-
- @Override
- protected void setUp() throws Exception {
- TestUtil.triggerContextUiLazyStart();
-
- TaskTestUtil.resetTaskListAndRepositories();
- previousSetting = ContextUiPlugin.getDefault().getPreferenceStore().getBoolean(
- IContextUiPreferenceContstants.AUTO_MANAGE_PERSPECTIVES);
- ContextUiPlugin.getDefault().getPreferenceStore().setValue(
- IContextUiPreferenceContstants.AUTO_MANAGE_PERSPECTIVES, true);
- }
-
- @Override
- protected void tearDown() throws Exception {
- ContextUiPlugin.getDefault().getPreferenceStore().setValue(
- IContextUiPreferenceContstants.AUTO_MANAGE_PERSPECTIVES, previousSetting);
- TaskTestUtil.resetTaskListAndRepositories();
- }
-
- public void testRestorePerspective() throws Exception {
- PlatformUI.getWorkbench().showPerspective(ID_RESOURCE_PERSPECTIVE, MonitorUi.getLaunchingWorkbenchWindow());
- assertEquals(ID_RESOURCE_PERSPECTIVE, getActivePerspective());
- TaskTask task = TaskTestUtil.createMockTask("1");
-
- // check that perspective is not switched for new task
- TasksUi.getTaskActivityManager().activateTask(task);
- assertEquals(ID_RESOURCE_PERSPECTIVE, getActivePerspective());
-
- // check if previous perspective is restored on deactivation
- PlatformUI.getWorkbench().showPerspective(ID_PLANNING_PERSPECTIVE, MonitorUi.getLaunchingWorkbenchWindow());
- assertEquals(ID_PLANNING_PERSPECTIVE, getActivePerspective());
- TasksUi.getTaskActivityManager().deactivateActiveTask();
- assertEquals(ID_RESOURCE_PERSPECTIVE, getActivePerspective());
-
- // check if perspective is restored on activation
- TasksUi.getTaskActivityManager().activateTask(task);
- assertEquals(ID_PLANNING_PERSPECTIVE, getActivePerspective());
- }
-
- // FIXME 3.2 re-enable test
-// public void testRecreateTask() throws Exception {
-// PlatformUI.getWorkbench().showPerspective(ID_RESOURCE_PERSPECTIVE, MonitorUi.getLaunchingWorkbenchWindow());
-// TaskTask task = TaskTestUtil.createMockTask("1");
-//
-// // check that deleting task switches back to original perspective
-// TasksUi.getTaskActivityManager().activateTask(task);
-// PlatformUI.getWorkbench().showPerspective(ID_PLANNING_PERSPECTIVE, MonitorUi.getLaunchingWorkbenchWindow());
-// TasksUiPlugin.getTaskActivityManager().deactivateActiveTask();
-// TasksUiPlugin.getTaskList().deleteTask(task);
-// assertEquals(ID_RESOURCE_PERSPECTIVE, getActivePerspective());
-//
-// task = TaskTestUtil.createMockTask("1");
-//
-// // check that activating new task with the same id does not switch the perspective
-// TasksUi.getTaskActivityManager().activateTask(task);
-// assertEquals(ID_RESOURCE_PERSPECTIVE, getActivePerspective());
-// }
-
- private String getActivePerspective() {
- return MonitorUi.getLaunchingWorkbenchWindow().getActivePage().getPerspective().getId();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/MarkTaskHandlerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/MarkTaskHandlerTest.java
deleted file mode 100644
index 4bc7125b8..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/MarkTaskHandlerTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui;
-
-import java.util.HashSet;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler.MarkTaskCompleteHandler;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * @author Steffen Pingel
- */
-public class MarkTaskHandlerTest extends TestCase {
-
- private IHandlerService handlerService;
-
- @Override
- protected void setUp() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
-
- handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
-
- TaskRepository repository = TaskTestUtil.createMockRepository();
- TasksUiPlugin.getRepositoryManager().addRepository(repository);
-
- // TODO figure out which test leaves a filter enabled
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(new HashSet<IWorkingSet>(0));
- TaskTestUtil.openTasksViewInActivePerspective().clearFilters();
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
- }
-
- public void testMarkTaskCompleted() throws Exception {
- MockRepositoryConnector.getDefault().setHasLocalCompletionState(true);
- TaskTask task = TaskTestUtil.createMockTask("1");
- TaskTestUtil.addAndSelectTask(task);
- assertFalse(task.isCompleted());
-
- handlerService.executeCommand(MarkTaskCompleteHandler.ID_COMMAND, null);
- assertTrue(task.isCompleted());
-
- try {
- handlerService.executeCommand(MarkTaskCompleteHandler.ID_COMMAND, null);
- fail("Expected NotEnabledException");
- } catch (NotEnabledException e) {
- // expected
- }
- }
-
- public void testMarkLocalTaskCompleted() throws Exception {
- LocalTask localTask = new LocalTask("1", "");
- TaskTestUtil.addAndSelectTask(localTask);
- assertFalse(localTask.isCompleted());
-
- handlerService.executeCommand(MarkTaskCompleteHandler.ID_COMMAND, null);
- assertTrue(localTask.isCompleted());
-
- try {
- handlerService.executeCommand(MarkTaskCompleteHandler.ID_COMMAND, null);
- fail("Expected NotEnabledException");
- } catch (NotEnabledException e) {
- // expected
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/RetrieveTitleFromUrlTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/RetrieveTitleFromUrlTest.java
deleted file mode 100644
index 438e9f5eb..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/RetrieveTitleFromUrlTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 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.tasks.tests.ui;
-
-import java.lang.reflect.InvocationTargetException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.ui.util.AbstractRetrieveTitleFromUrlJob;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class RetrieveTitleFromUrlTest extends TestCase {
-
- private String retrievedTitle;
-
- public void testRetrieve() throws InterruptedException, InvocationTargetException {
- final String url = "http://eclipse.org/mylyn";
- final String knownTitle = "Eclipse Mylyn Open Source Project";
- AbstractRetrieveTitleFromUrlJob job = new AbstractRetrieveTitleFromUrlJob(url) {
- @Override
- public void titleRetrieved(String title) {
- retrievedTitle = title;
- }
- };
- job.schedule();
- job.join();
- assertEquals(knownTitle, job.getPageTitle());
- // process pending events
- while (PlatformUI.getWorkbench().getDisplay().readAndDispatch()) {
- }
- assertEquals(knownTitle, retrievedTitle);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskAttachmentPropertyTesterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskAttachmentPropertyTesterTest.java
deleted file mode 100644
index 66b8d6c0b..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskAttachmentPropertyTesterTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.TaskAttachment;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskAttachmentPropertyTester;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskAttachmentPropertyTesterTest extends TestCase {
-
- public void testHasUrl() {
- TaskAttachment attachment = new StubAttachment();
- TaskAttachmentPropertyTester tester = new TaskAttachmentPropertyTester();
- attachment.setUrl("url");
- assertTrue(tester.test(attachment, "hasUrl", null, Boolean.TRUE));
- attachment.setUrl("");
- assertTrue(tester.test(attachment, "hasUrl", null, Boolean.FALSE));
- attachment.setUrl(null);
- assertFalse(tester.test(attachment, "hasUrl", null, Boolean.TRUE));
- assertFalse(tester.test(new Object(), "hasUrl", null, Boolean.TRUE));
- }
-
- private class StubAttachment extends TaskAttachment {
-
- public StubAttachment() {
- super(TaskTestUtil.createMockRepository(), TaskTestUtil.createMockTask("1"),
- TaskTestUtil.createMockTaskData("1").getRoot());
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskHyperlinkDetectorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskHyperlinkDetectorTest.java
deleted file mode 100644
index 0666da543..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskHyperlinkDetectorTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskHyperlinkDetector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskHyperlinkDetectorTest extends TestCase {
-
- protected MockRepositoryConnectorUi connectorUi;
-
- protected TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- repository = TaskTestUtil.createMockRepository();
- connectorUi = new MockRepositoryConnectorUi();
- }
-
- protected IHyperlink[] detect(final String text, int start, int length) {
- AbstractTaskHyperlinkDetector detector = createHyperlinkDetector();
- return detector.detectHyperlinks(new TextViewer() {
- @Override
- public IDocument getDocument() {
- return new Document(text);
- }
- }, new Region(start, length), true);
- }
-
- protected AbstractTaskHyperlinkDetector createHyperlinkDetector() {
- TaskHyperlinkDetector detector = new TaskHyperlinkDetector() {
- @Override
- protected TaskRepository getTaskRepository(ITextViewer textViewer) {
- return repository;
- }
-
- @Override
- protected AbstractRepositoryConnectorUi getConnectorUi(TaskRepository repository) {
- return connectorUi;
- }
- };
- return detector;
- }
-
- public void testMultiple() {
- IHyperlink[] links = detect("123 456 789", 4, 5);
- assertNotNull(links);
- assertEquals(2, links.length);
- assertEquals(new Region(4, 3), links[0].getHyperlinkRegion());
- assertEquals(new Region(8, 1), links[1].getHyperlinkRegion());
- }
-
- public void testMultipleFullRegion() {
- IHyperlink[] links = detect("123 456 789", 0, 11);
- assertEquals(3, links.length);
- assertEquals(new Region(0, 3), links[0].getHyperlinkRegion());
- assertEquals(new Region(4, 3), links[1].getHyperlinkRegion());
- assertEquals(new Region(8, 3), links[2].getHyperlinkRegion());
- }
-
- public void testSingleZeroLenghtRegion() {
- IHyperlink[] links = detect("123 456 789", 5, 0);
- assertEquals(1, links.length);
- }
-
- public void testSpaceZeroLengthRegion() {
- IHyperlink[] links = detect("1234 789", 5, 0);
- assertNull(links);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskListFilterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskListFilterTest.java
deleted file mode 100644
index efd3a48e3..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskListFilterTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui;
-
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.mylyn.context.tests.UiTestUtil;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TaskWorkingSetFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListInterestFilter;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.internal.Workbench;
-
-/**
- * @author Mik Kersten
- */
-public class TaskListFilterTest extends TestCase {
-
- private TaskListView view;
-
- private Set<AbstractTaskListFilter> previousFilters;
-
- private AbstractTask taskCompleted;
-
- private AbstractTask taskIncomplete;
-
- private AbstractTask taskOverdue;
-
- private AbstractTask taskDueToday;
-
- private AbstractTask taskCompletedToday;
-
- private AbstractTask taskScheduledLastWeek;
-
- private AbstractTask taskCompleteAndOverdue;
-
- private TaskList taskList;
-
- @Override
- protected void setUp() throws Exception {
- TaskTestUtil.resetTaskListAndRepositories();
-
- view = (TaskListView) TasksUiUtil.openTasksViewInActivePerspective();
- assertNotNull(view);
- previousFilters = view.getFilters();
- view.clearFilters();
-
- taskList = TasksUiPlugin.getTaskList();
-
- taskCompleted = new LocalTask("1", "completed");
- taskCompleted.setCompletionDate(TaskActivityUtil.snapForwardNumDays(Calendar.getInstance(), -1).getTime());
- taskList.addTask(taskCompleted);
-
- taskIncomplete = new LocalTask("2", "t-incomplete");
- taskList.addTask(taskIncomplete);
-
- taskOverdue = new LocalTask("3", "t-overdue");
- taskOverdue.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday().previous());
- taskList.addTask(taskOverdue);
-
- taskDueToday = new LocalTask("4", "t-today");
- taskDueToday.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday());
- taskList.addTask(taskDueToday);
-
- taskCompletedToday = new LocalTask("5", "t-donetoday");
- taskCompletedToday.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday());
- taskCompletedToday.setCompletionDate(new Date());
- taskList.addTask(taskCompletedToday);
-
- taskScheduledLastWeek = new LocalTask("6", "t-scheduledLastWeek");
- taskList.addTask(taskScheduledLastWeek);
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(taskScheduledLastWeek,
- TaskActivityUtil.getCurrentWeek().previous());
-
- taskCompleteAndOverdue = new LocalTask("7", "t-completeandoverdue");
- taskList.addTask(taskCompleteAndOverdue);
- Calendar cal = TaskActivityUtil.getCalendar();
- cal.add(Calendar.DAY_OF_MONTH, -1);
- TasksUiPlugin.getTaskActivityManager().setDueDate(taskCompleteAndOverdue, cal.getTime());
- taskCompleteAndOverdue.setCompletionDate(cal.getTime());
- }
-
- @Override
- protected void tearDown() throws Exception {
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(new HashSet<IWorkingSet>(0));
- view.clearFilters();
- for (AbstractTaskListFilter filter : previousFilters) {
- view.addFilter(filter);
- }
- }
-
- public void testSearchScheduledWorkingSet() throws InterruptedException {
- TaskCategory category = new TaskCategory("category");
- taskList.addCategory(category);
- taskList.addTask(taskOverdue, category);
- taskList.addTask(taskIncomplete, category);
- view.getViewer().refresh();
- view.getViewer().expandAll();
- List<Object> items = UiTestUtil.getAllData(view.getViewer().getTree());
- assertTrue(items.contains(taskCompleted));
- assertTrue(items.contains(taskOverdue));
- IWorkingSetManager workingSetManager = Workbench.getInstance().getWorkingSetManager();
- IWorkingSet workingSet = workingSetManager.createWorkingSet("Task Working Set", new IAdaptable[] { category });
- workingSet.setId(TaskWorkingSetUpdater.ID_TASK_WORKING_SET);
- assertTrue(Arrays.asList(workingSet.getElements()).contains(category));
- workingSetManager.addWorkingSet(workingSet);
-
- TaskWorkingSetFilter workingSetFilter = new TaskWorkingSetFilter();
- view.addFilter(workingSetFilter);
- HashSet<IWorkingSet> workingSets = new HashSet<IWorkingSet>(1);
- workingSets.add(workingSet);
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(workingSets);
- view.getFilteredTree().setFilterText("over");
- view.getFilteredTree().getRefreshPolicy().internalForceRefresh();
-
- items = UiTestUtil.getAllData(view.getViewer().getTree());
- assertFalse(items.contains(taskCompleted));
- assertTrue(items.contains(taskOverdue));
- workingSets = new HashSet<IWorkingSet>(0);
- view.removeFilter(workingSetFilter);
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(workingSets);
- taskList.removeFromContainer(category, taskOverdue);
- taskList.removeFromContainer(category, taskIncomplete);
- view.getFilteredTree().setFilterText("");
- view.getFilteredTree().getRefreshPolicy().internalForceRefresh();
- }
-
- public void testInterestFilter() {
- TaskListInterestFilter interestFilter = new TaskListInterestFilter();
- view.addFilter(interestFilter);
- view.getViewer().refresh();
- view.getViewer().expandAll();
- List<Object> items = UiTestUtil.getAllData(view.getViewer().getTree());
- assertFalse(items.contains(taskCompleted));
- assertFalse(items.contains(taskIncomplete));
- assertTrue(items.contains(taskOverdue));
- assertTrue(items.contains(taskDueToday));
- assertTrue(items.contains(taskCompletedToday));
- assertTrue(items.contains(taskScheduledLastWeek));
- assertFalse(items.contains(taskCompleteAndOverdue));
- view.removeFilter(interestFilter);
- }
-
- public void testNoFilters() {
- assertEquals("should have working set filter and orphan/archive filter: " + view.getFilters(), 2,
- view.getFilters().size());
- view.getViewer().refresh();
-
- assertEquals("should only have Uncategorized folder present in stock task list: "
- + view.getViewer().getTree().getItems(), 1, view.getViewer().getTree().getItemCount());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskRelationHyperlinkDetectorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskRelationHyperlinkDetectorTest.java
deleted file mode 100644
index fb18b6340..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/TaskRelationHyperlinkDetectorTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskRelationHyperlinkDetector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskRelationHyperlinkDetectorTest extends TaskHyperlinkDetectorTest {
-
- @Override
- protected AbstractTaskHyperlinkDetector createHyperlinkDetector() {
- TaskRelationHyperlinkDetector detector = new TaskRelationHyperlinkDetector() {
- @Override
- protected TaskRepository getTaskRepository(ITextViewer textViewer) {
- return repository;
- }
- };
- return detector;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java
deleted file mode 100644
index ad240432d..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui.editor;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author Steffen Pingel
- */
-public class EditorUtilTest extends TestCase {
-
- public void testSetEnabledState() {
- Shell shell = new Shell();
- Composite composite = new Composite(shell, SWT.NONE);
- Label label = new Label(composite, SWT.NONE);
-
- CommonUiUtil.setEnabled(composite, false);
- assertFalse(composite.getEnabled());
- assertFalse(label.getEnabled());
-
- CommonUiUtil.setEnabled(composite, true);
- assertTrue(composite.getEnabled());
- assertTrue(label.getEnabled());
-
- CommonUiUtil.setEnabled(composite, true);
- assertTrue(composite.getEnabled());
- assertTrue(label.getEnabled());
- }
-
- public void testSetEnabledStateDisabledChild() {
- Shell shell = new Shell();
- Composite composite = new Composite(shell, SWT.NONE);
- Label label = new Label(composite, SWT.NONE);
- label.setEnabled(false);
-
- CommonUiUtil.setEnabled(composite, false);
- assertFalse(composite.getEnabled());
- assertFalse(label.getEnabled());
-
- CommonUiUtil.setEnabled(composite, true);
- assertTrue(composite.getEnabled());
- assertFalse(label.getEnabled());
- }
-
- public void testSetEnabledStateDisabledParent() {
- Shell shell = new Shell();
- Composite composite = new Composite(shell, SWT.NONE);
- composite.setEnabled(false);
- Label label = new Label(composite, SWT.NONE);
-
- CommonUiUtil.setEnabled(composite, false);
- assertFalse(composite.getEnabled());
- assertFalse(label.getEnabled());
-
- CommonUiUtil.setEnabled(composite, true);
- assertFalse(composite.getEnabled());
- assertTrue(label.getEnabled());
- }
-
- public void testSetEnabledStateDisabledChildAndComposite() {
- Shell shell = new Shell();
- Composite composite = new Composite(shell, SWT.NONE);
- composite.setEnabled(false);
- Label label = new Label(composite, SWT.NONE);
- label.setEnabled(false);
-
- CommonUiUtil.setEnabled(composite, false);
- assertFalse(composite.getEnabled());
- assertFalse(label.getEnabled());
-
- CommonUiUtil.setEnabled(composite, true);
- assertFalse(composite.getEnabled());
- assertFalse(label.getEnabled());
- }
-
- public void testSetEnabledStateDisableStateRemoved() {
- Shell shell = new Shell();
- Composite composite = new Composite(shell, SWT.NONE);
- Label label = new Label(composite, SWT.NONE);
- label.setEnabled(false);
-
- CommonUiUtil.setEnabled(composite, false);
- CommonUiUtil.setEnabled(composite, true);
- // the second time all state information should have been removed and all controls enabled
- CommonUiUtil.setEnabled(composite, true);
- assertTrue(composite.getEnabled());
- assertTrue(label.getEnabled());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorPartDescriptorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorPartDescriptorTest.java
deleted file mode 100644
index 958fbcb30..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorPartDescriptorTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.ui.editor;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorPartDescriptor;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorPartDescriptorTest extends TestCase {
-
- private TaskEditorPartDescriptor descriptor1;
-
- private TaskEditorPartDescriptor descriptor2;
-
- @Override
- protected void setUp() throws Exception {
- descriptor1 = new TaskEditorPartDescriptor("id") {
- @Override
- public AbstractTaskEditorPart createPart() {
- return null;
- }
- };
- descriptor2 = new TaskEditorPartDescriptor("id") {
- @Override
- public AbstractTaskEditorPart createPart() {
- // ignore
- return null;
- }
- }.setPath(AbstractTaskEditorPage.PATH_ACTIONS);
- }
-
- public void testEquals() {
- assertEquals(descriptor1, descriptor2);
- assertEquals(descriptor1.hashCode(), descriptor2.hashCode());
- }
-
- public void testInsertIntoSet() {
- Set<TaskEditorPartDescriptor> set = new LinkedHashSet<TaskEditorPartDescriptor>();
- set.add(descriptor1);
- set.add(descriptor2);
- assertEquals(1, set.size());
- assertSame(descriptor1, set.iterator().next());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java
deleted file mode 100644
index 2bcdb3695..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * 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
- * David Green - fix for bug 266693
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.tests.ui.editor;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlinkDetector;
-
-/**
- * @author Steffen Pingel
- * @author David Green
- */
-public class TaskUrlHyperlinkDetectorTest extends TestCase {
-
- protected IHyperlink[] detect(final String text, int start, int length) {
- AbstractHyperlinkDetector detector = new TaskUrlHyperlinkDetector();
- return detector.detectHyperlinks(new TextViewer() {
- @Override
- public IDocument getDocument() {
- return new Document(text);
- }
- }, new Region(start, length), true);
- }
-
- public void testUrl() {
- IHyperlink[] links = detect("http://foo", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://foo", ((TaskUrlHyperlink) links[0]).getURLString());
- }
-
- public void testInvalidUrl() {
- IHyperlink[] links = detect("abc", 0, 0);
- assertNull(links);
-
- links = detect("", 0, 0);
- assertNull(links);
-
- links = detect(").", 0, 0);
- assertNull(links);
- }
-
- public void testParenthesis() {
- IHyperlink[] links = detect("(http://foo)", 2, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://foo", ((TaskUrlHyperlink) links[0]).getURLString());
-
- links = detect("( http://foo)", 2, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://foo", ((TaskUrlHyperlink) links[0]).getURLString());
-
- links = detect("( http://foo).", 2, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://foo", ((TaskUrlHyperlink) links[0]).getURLString());
- }
-
- public void testDetectionUsingExtent() {
- IHyperlink[] hyperlinks = detect("aa http://www.eclipse.org test", 0, 30);
- assertNotNull(hyperlinks);
- assertEquals(1, hyperlinks.length);
- }
-
- public void testDetectionMultipleLinks() {
- String text = "aa http://www.eclipse.org test http://www.foo.bar/baz?one=two&three=four+five#six";
- IHyperlink[] hyperlinks = detect(text, 0, text.length());
- assertNotNull(hyperlinks);
- assertEquals(2, hyperlinks.length);
- assertEquals(new Region(3, 22), hyperlinks[0].getHyperlinkRegion());
- assertEquals(new Region(31, 50), hyperlinks[1].getHyperlinkRegion());
- }
-
- public void testDetectionNegativeMatchOnTrailingPunctuation() {
- String text = "aa http://www.eclipse.org) http://www.eclipse.org. http://www.eclipse.org,";
- IHyperlink[] hyperlinks = detect(text, 0, text.length());
- assertNotNull(hyperlinks);
- assertEquals(3, hyperlinks.length);
- assertEquals(new Region(3, 22), hyperlinks[0].getHyperlinkRegion());
- assertEquals(new Region(27, 22), hyperlinks[1].getHyperlinkRegion());
- assertEquals(new Region(51, 22), hyperlinks[2].getHyperlinkRegion());
- }
-
- public void testDetection() {
- IHyperlink[] hyperlinks = detect("aa http://www.eclipse.org test", 20, 0);
- assertNotNull(hyperlinks);
- assertEquals(1, hyperlinks.length);
- }
-
- public void testDetection2() {
- String text = "http://www.eclipse.org";
- IHyperlink[] hyperlinks = detect(text, 0, text.length());
- assertNotNull(hyperlinks);
- assertEquals(1, hyperlinks.length);
- assertEquals(new Region(0, 22), hyperlinks[0].getHyperlinkRegion());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/util/TestTaskDataCollector.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/util/TestTaskDataCollector.java
deleted file mode 100644
index 91d9383d9..000000000
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/util/TestTaskDataCollector.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.tests.util;
-
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Steffen Pingel
- */
-public class TestTaskDataCollector extends TaskDataCollector {
-
- public List<TaskData> results = new ArrayList<TaskData>();
-
- @Override
- public void accept(TaskData taskData) {
- results.add(taskData);
- }
-
- public Set<ITask> getTasks(AbstractRepositoryConnector connector, TaskRepository repository) {
- Set<ITask> tasks = new LinkedHashSet<ITask>(results.size());
- for (TaskData taskData : results) {
- ITask task = TasksUi.getRepositoryModel().getTask(repository, taskData.getTaskId());
- if (task == null) {
- task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
- if (connector != null) {
- connector.updateTaskFromTaskData(repository, task, taskData);
- }
- }
- tasks.add(task);
- }
- return tasks;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/activityTests/.activity.xml.zip b/org.eclipse.mylyn.tasks.tests/testdata/activityTests/.activity.xml.zip
deleted file mode 100644
index 676a3e64f..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/activityTests/.activity.xml.zip
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/activityTests/activity.xml.zip b/org.eclipse.mylyn.tasks.tests/testdata/activityTests/activity.xml.zip
deleted file mode 100644
index fd825ed31..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/activityTests/activity.xml.zip
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/legacy/tasklist_0_4_8.xml b/org.eclipse.mylyn.tasks.tests/testdata/legacy/tasklist_0_4_8.xml
deleted file mode 100644
index ca6d3bb41..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/legacy/tasklist_0_4_8.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><TaskList Version="1.0.1"><BugzillaTaskRegistryCategory><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-18 15:05:08.174 PST" Dirty="false" Elapsed="710333" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121313" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121313" Kind="" Label="121313: PDE outline broken in 3.2 M4" LastDate="1134948318985" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-02 10:04:24.144 PST" Dirty="false" Elapsed="635683" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116503" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116503" Kind="" Label="116503: url format in bugzilla preference page is not clear" LastDate="1133571800075" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-16 12:43:14.101 PST" Dirty="false" Elapsed="10248681" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121280" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121280" Kind="" Label="121280: create tips/tricks/quickref document" LastDate="1138147878358" Notes="" Priority="P2" Reminded="true" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-28 18:34:39.585 PST" Dirty="false" Elapsed="137758" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117799" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117799" Kind="" Label="117799: UI hangs after ResourceException" LastDate="1133232080872" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="9496954" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103418" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103418" Kind="" Label="103418: improve active search UI" LastDate="1121707407100" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-22 13:55:18.46 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117587" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117587" Kind="normal" Label="117587: clean up 3.1 build process" LastDate="1139867273370" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-03 16:28:12.745 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114949" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114949" Kind="" Label="114949: When Task List is Fast View, tasks disappear" LastDate="1131081597575" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-29 15:52:29.524 PDT" Dirty="false" Elapsed="67208963" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104253" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104253" Kind="" Label="104253: make mylar bridges extension points" LastDate="1125453336058" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-07 19:34:14.962 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112016" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112016" Kind="normal" Label="112016: text selections in xml files will get recorded twice" LastDate="1139867260542" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-08 10:51:47.725 PST" Dirty="false" Elapsed="5281739" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114262" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114262" Kind="" Label="114262: Ensure reporting collectors see interaction events in ascending order" LastDate="1132011200505" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 19:21:19.225 PDT" Dirty="false" Elapsed="22906549" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111023" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111023" Kind="" Label="111023: create one-to-one association tasks hyperlinks" LastDate="1138053045868" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-20 09:58:43.217 PDT" Dirty="false" Elapsed="2427962" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110061" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110061" Kind="" Label="110061: previous task history should be persistent" LastDate="1138053061851" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="8669328" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103589" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103589" Kind="" Label="103589: task list and active search contribution items fail to show on startup" LastDate="1134708976687" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107082" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107082" Kind="normal" Label="107082: npe in IconAndMessageDialog.getSWTImage(..)" LastDate="1140115559340" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107146" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107146" Kind="" Label="107146: text selections cause too much refreshing ManifestEditor" LastDate="1124771063890" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 14:50:04.130 PDT" Dirty="false" Elapsed="2231576" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106933" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106933" Kind="" Label="106933: ensure empty root nodes not shown when Package Explorer in Working Sets mode" LastDate="1132619727013" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-14 15:30:11.390 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112718" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112718" Kind="" Label="112718: mailing list statistics should specify list" LastDate="1130341917652" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102676" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102676" Kind="" Label="102676: add support for moving from study phase1 to phase2" LastDate="1121707455991" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:01:49.698 PST" Dirty="false" Elapsed="3853192" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119372" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119372" Kind="" Label="119372: workspace move breaks mylar paths" LastDate="1134101714271" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-20 11:10:22.478 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123980" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123980" Kind="minor" Label="123980: Deleting an active task should just deactivate it." LastDate="1139969412802" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-30 11:46:34.801 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118692" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118692" Kind="" Label="118692: support low-priority test launching" LastDate="1133576860231" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-13 19:17:45.440 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109457" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109457" Kind="" Label="109457: new visualization request: timeline view" LastDate="1134154661758" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-21 12:06:28.9 PDT" Dirty="false" Elapsed="2551808" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113397" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113397" Kind="" Label="113397: race condition in tests causing failure on slow machine" LastDate="1134688304924" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-16 13:18:10.736 PST" Dirty="false" Elapsed="452841" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119368" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119368" Kind="" Label="119368: http auth dialog freezes eclipse" LastDate="1134780694517" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-14 14:36:25.782 PDT" Dirty="false" Elapsed="27005677" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112712" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112712" Kind="" Label="112712: make monitor reports HTML based" LastDate="1129688072602" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="14401" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104247" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104247" Kind="enhancement" Label="104247: support decorators in task list" LastDate="1139867211481" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-16 10:10:49.283 PDT" Dirty="false" Elapsed="581446" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109770" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109770" Kind="" Label="109770: create future plan elements in summary" LastDate="1133323627373" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-14 10:16:05.145 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111258" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111258" Kind="normal" Label="111258: verify interaction of Java active search with JSP resources" LastDate="1140232916095" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="1653362" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103585" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103585" Kind="" Label="103585: package explorer refreshes too much" LastDate="1121707389826" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-31 12:08:11.699 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114408" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114408" Kind="" Label="114408: make bug report titles consistent" LastDate="1131421227649" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 11:55:27.299 PDT" Dirty="false" Elapsed="128314" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106931" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106931" Kind="" Label="106931: Improve icons for bugzilla tasks" LastDate="1126551639568" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-19 11:29:52.14 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121381" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121381" Kind="" Label="121381: Can't open mylar task view - NoClassDefFoundError" LastDate="1136427246438" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-28 08:45:02.117 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114124" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114124" Kind="normal" Label="114124: set up monitor scripts on eclipse.org" LastDate="1140232916145" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 20:01:29.411 PDT" Dirty="false" Elapsed="0" EndDate="2005-11-07 18:08:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111025" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111025" Kind="normal" Label="111025: [Viewers] setting background color on trees with columns" LastDate="1140115552520" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-13 09:29:27.644 PST" Dirty="false" Elapsed="56431126" EndDate="" Estimated="3" Handle="https://bugs.eclipse.org/bugs-120248" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120248" Kind="" Label="120248: Context externalization optimization" LastDate="1134686229440" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="8573843" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104259" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104259" Kind="" Label="104259: mylar open type dialog integration" LastDate="1127876303230" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-09 18:03:51.700 PST" Dirty="false" Elapsed="12574542" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123173" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123173" Kind="" Label="123173: make task editor update title on description change" LastDate="1137178946080" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-11 16:22:04.322 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123527" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123527" Kind="enhancement" Label="123527: support mutliple status values" LastDate="1139867232862" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-17 15:11:31.898 PDT" Dirty="false" Elapsed="15983568" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112716" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112716" Kind="" Label="112716: Create extension points to generalize monitor" LastDate="1130018750533" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-19 13:15:48.48 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109928" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109928" Kind="normal" Label="109928: make documentation available online" LastDate="1139867253992" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-09 14:54:33.313 PST" Dirty="false" Elapsed="541729" EndDate="" Estimated="2" Handle="https://bugs.eclipse.org/bugs-117275" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117275" Kind="" Label="117275: Gradient problem" LastDate="1138061378299" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-22 11:33:38.387 PDT" Dirty="false" Elapsed="10494" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113457" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113457" Kind="" Label="113457: improve formatting of task dates" LastDate="1138053050845" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-12 07:42:37.955 PST" Dirty="false" Elapsed="11093787" EndDate="" Estimated="1" Handle="https://bugs.eclipse.org/bugs-120374" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120374" Kind="" Label="120374: task activity time reportes is too high" LastDate="1138042966244" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-05 19:42:03.528 PST" Dirty="false" Elapsed="665237" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122845" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122845" Kind="" Label="122845: &quot;Could not save task list&quot; NPE" LastDate="1137193138698" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.408 PST" Dirty="false" Elapsed="651" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104341" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104341" Kind="enhancement" Label="104341: add interest scaling factor control" LastDate="1139867214005" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-16 16:37:10.20 PDT" Dirty="false" Elapsed="4649526" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109693" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109693" Kind="" Label="109693: Tasklist's filter-completed doesn't work" LastDate="1128463755466" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-04 12:28:19.465 PST" Dirty="false" Elapsed="135959" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107261" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107261" Kind="" Label="107261: make task list tooltips more consistent with other Eclipse views" LastDate="1138053088269" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-24 16:50:02.624 PDT" Dirty="false" Elapsed="20330323" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107384" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107384" Kind="" Label="107384: active hierarchy can contain duplicate elements" LastDate="1126925295927" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-19 11:29:39.205 PST" Dirty="false" Elapsed="513334635" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120952" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120952" Kind="normal" Label="120952: [discussion] provide task/issue repository view and extension points" LastDate="1140030392296" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103516" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103516" Kind="enhancement" Label="103516: Should be able to map highlighters to priority" LastDate="1139867210750" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 10:47:20.132 PDT" Dirty="false" Elapsed="2366794" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107645" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107645" Kind="" Label="107645: content assist not available on initial startup" LastDate="1134773588208" Notes="" Priority="P4" Reminded="true" ReminderDate="2005-09-20 09:37:25.988 PDT" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 15:18:33.51 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124956" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124956" Kind="" Label="124956: reduce amount of refresh needed for views that are not visible" LastDate="1138146805055" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 10:06:44.227 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108011" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108011" Kind="" Label="108011: prevent automatic package explorer collapse" LastDate="1128742683567" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-14 11:27:35.636 PST" Dirty="false" Elapsed="39427" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120469" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120469" Kind="enhancement" Label="120469: Decouple bugzilla task reading" LastDate="1139867229678" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-14 18:25:27.241 PDT" Dirty="false" Elapsed="736022" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109551" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109551" Kind="" Label="109551: Provide keybinding for toggling folding" LastDate="1130545048548" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-23 09:21:27.499 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104373" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104373" Kind="normal" Label="104373: [projection] Entered text gets automatically folded away" LastDate="1140115547292" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-28 14:00:19.178 PDT" Dirty="false" Elapsed="401338" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108305" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108305" Kind="" Label="108305: Commenting from Mylar's Bugzilla UI doesn't update CC" LastDate="1138053059047" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-13 09:35:35.806 PST" Dirty="false" Elapsed="232316" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123167" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123167" Kind="" Label="123167: invalid thread access on change set management" LastDate="1137203858182" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-24 09:12:06.967 PST" Dirty="false" Elapsed="5686681" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117926" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117926" Kind="" Label="117926: clean up Mylar usage reporting" LastDate="1132892503341" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-09 18:57:36.359 PDT" Dirty="false" Elapsed="15209775" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109232" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109232" Kind="" Label="109232: package explorer refreshes too much on marker change" LastDate="1126845173531" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 12:11:16.703 PDT" Dirty="false" Elapsed="324177" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110236" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110236" Kind="" Label="110236: guard against concurrent modification of context" LastDate="1128137904850" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-07 08:41:25.237 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110472" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110472" Kind="" Label="110472: Text CVS label decorator interferes with landmark bolding" LastDate="1129311856571" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107169" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107169" Kind="normal" Label="107169: consider making ITaskListElement(s) adapt to tasks" LastDate="1139867240143" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-15 14:14:11.417 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116518" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116518" Kind="" Label="116518: Submission to Bugzilla works but displays erroneous error" LastDate="1132105376411" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104084" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104084" Kind="" Label="104084: active search jobs should be terminated before shutdown" LastDate="1129564349999" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-24 19:39:43.598 PST" Dirty="false" Elapsed="123873" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117352" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117352" Kind="" Label="117352: resources changes as part of applying patch should become interesting" LastDate="1134709524825" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106927" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106927" Kind="" Label="106927: automatic refresh of bugzilla reports fails" LastDate="1125005506463" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-18 15:25:36.657 PST" Dirty="false" Elapsed="2049534" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123882" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123882" Kind="" Label="123882: Allow to remove taks from the task activity list on task planner" LastDate="1137629533058" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 13:43:01.440 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114841" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114841" Kind="" Label="114841: live stats problem when date is set to &quot;Last 30 days&quot;" LastDate="1131063927948" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-05 19:02:21.62 PST" Dirty="false" Elapsed="17728913" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117035" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117035" Kind="major" Label="117035: Bugzilla plugin ignores encoding" LastDate="1139969412792" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 08:47:50.688 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114786" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114786" Kind="" Label="114786: sideitems get pushed past page border on MSIE" LastDate="1131063818310" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-03 10:51:24.240 PST" Dirty="false" Elapsed="1009231" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114966" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114966" Kind="normal" Label="114966: fix web docs support" LastDate="1139867264458" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 16:57:30.167 PDT" Dirty="false" Elapsed="1535040" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110993" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110993" Kind="" Label="110993: Super-flashy folding in Java editor" LastDate="1128377896888" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-20 11:09:06.28 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124572" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124572" Kind="" Label="124572: Task Repository View not deleting properly" LastDate="1138146801700" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-26 08:23:29.339 PDT" Dirty="false" Elapsed="8435725" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107304" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107304" Kind="" Label="107304: Make key project resources always visible" LastDate="1125085600846" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104052" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104052" Kind="enhancement" Label="104052: active search of local context" LastDate="1140232915965" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="250920" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104063" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104063" Kind="" Label="104063: toggling related element providers fails to remove the search hits" LastDate="1125010426838" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-28 18:46:06.172 PST" Dirty="false" Elapsed="3067570" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115903" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115903" Kind="" Label="115903: newly created resources should become interesting" LastDate="1133323080327" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 10:17:42.896 PST" Dirty="false" Elapsed="2435811" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115307" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115307" Kind="" Label="115307: Mylar tasks view should be in favorites" LastDate="1132004701209" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-06 16:28:29.972 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111861" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111861" Kind="normal" Label="111861: open type history might be missing some interesting types" LastDate="1140232905850" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-21 11:27:31.739 PDT" Dirty="false" Elapsed="0" EndDate="2005-11-07 13:08:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113392" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113392" Kind="normal" Label="113392: [rulers]promote annotations for folded regions" LastDate="1140115552991" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-26 11:26:23.409 PDT" Dirty="false" Elapsed="3042124" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107165" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107165" Kind="" Label="107165: disjoint/multiple selections and actions on the task list" LastDate="1134694378187" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-05 16:38:46.605 PDT" Dirty="false" Elapsed="8925291" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111708" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111708" Kind="" Label="111708: improve UI for opening tasks and contexts" LastDate="1130466659852" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 09:50:51.49 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109312" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109312" Kind="" Label="109312: improve performance and execution of task activation/deactivation" LastDate="1128647223245" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-02 16:06:08.160 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118942" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118942" Kind="" Label="118942: Send statistics feedback now dialog problems" LastDate="1134789044123" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107062" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107062" Kind="" Label="107062: support custom queries" LastDate="1124992090362" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-24 18:30:01.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117979" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117979" Kind="normal" Label="117979: new selection should always make parent interest positive" LastDate="1140232916165" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 10:17:10.990 PST" Dirty="false" Elapsed="1608401" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115156" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115156" Kind="" Label="115156: unclear UI for turning off folding" LastDate="1133573889820" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-23 18:37:40.763 PST" Dirty="false" Elapsed="778116" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117596" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117596" Kind="" Label="117596: ConcurrentModificationException at Eclipse exit" LastDate="1132802005817" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-13 15:15:51.815 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123846" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123846" Kind="" Label="123846: improve icons and labels of task repository view and wizards" LastDate="1138146785157" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 11:58:59.361 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109905" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109905" Kind="enhancement" Label="109905: [discussion] plan JIRA support" LastDate="1139867215297" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-02 16:06:12.336 PST" Dirty="false" Elapsed="406965" EndDate="" Estimated="1" Handle="https://bugs.eclipse.org/bugs-118238" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118238" Kind="" Label="118238: Bugzilla rare bug" LastDate="1133570823251" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-20 15:08:09.148 PDT" Dirty="false" Elapsed="7526294" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110111" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110111" Kind="" Label="110111: create context activity context" LastDate="1127263189654" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 10:40:00.230 PST" Dirty="false" Elapsed="1246770" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114172" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114172" Kind="" Label="114172: Switch task data directory option on the task list" LastDate="1138053080297" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 12:08:59.752 PDT" Dirty="false" Elapsed="342853" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110234" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110234" Kind="" Label="110234: guard against failure of elements to open" LastDate="1127432024980" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 14:50:44.591 PDT" Dirty="false" Elapsed="12682517" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109810" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109810" Kind="" Label="109810: Active Search / Hierarchy should display class names for methods" LastDate="1128367754203" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-27 15:36:34.237 PDT" Dirty="false" Elapsed="810483" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113877" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113877" Kind="" Label="113877: filter browser url tracking" LastDate="1138052473615" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-13 11:51:37.223 PST" Dirty="false" Elapsed="9992579" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115705" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115705" Kind="" Label="115705: dynamic change set in a sync view is not refreshed on task change" LastDate="1131998615368" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-14 10:52:24.332 PDT" Dirty="false" Elapsed="24537944" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111945" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111945" Kind="" Label="111945: Read-only activations of tasks" LastDate="1130342214489" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-20 15:17:29.33 PDT" Dirty="false" Elapsed="3107833" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110113" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110113" Kind="" Label="110113: restructure documentation" LastDate="1127273230502" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-15 21:48:54.426 PST" Dirty="false" Elapsed="58995" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-128126" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128126" Kind="normal" Label="128126: New repository validate button should validate credentials" LastDate="1140232404199" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="982424" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103729" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103729" Kind="" Label="103729: add support for disjoint selections in Mylar views" LastDate="1124994915133" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-24 20:35:54.265 PST" Dirty="false" Elapsed="1334009" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117517" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117517" Kind="normal" Label="117517: add support for commit comment templates" LastDate="1139867272459" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 11:45:45.633 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114419" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114419" Kind="" Label="114419: create flash videos for 0.4" LastDate="1131672539748" Notes="working with tasks and bug reports&#13;&#10;- navigating to reports&#13;&#10;&#13;&#10;other &#13;&#10;- junit tests of active context&#13;&#10;- commit resources in context&#13;&#10;&#13;&#10;active search&#13;&#10;- qualify member names&#13;&#10;- drag-and-drop activation" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-13 19:32:43.91 PDT" Dirty="false" Elapsed="2565729" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109459" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109459" Kind="" Label="109459: during bugzilla refresh focus is repeatedly lost.." LastDate="1138049392194" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-20 11:56:42.374 PDT" Dirty="false" Elapsed="1823323" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113270" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113270" Kind="" Label="113270: support URL monitoring for internal browser" LastDate="1129838098983" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 12:41:09.10 PDT" Dirty="false" Elapsed="15494252" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110132" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110132" Kind="" Label="110132: ClassCircularityError on startup" LastDate="1127487637375" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-17 11:40:55.180 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119554" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119554" Kind="enhancement" Label="119554: Generalize monitor uploading" LastDate="1139867121722" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 12:15:49.870 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108294" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108294" Kind="" Label="108294: improve active search laziness" LastDate="1126846166238" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-22 13:28:46.255 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110374" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110374" Kind="" Label="110374: recursive bug editor activation attempt" LastDate="1138046667917" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-28 18:30:44.98 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114281" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114281" Kind="" Label="114281: improve task list context menu action enablement" LastDate="1131417951909" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="3611363" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106929" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106929" Kind="" Label="106929: Add tooltip for description column in the tasklist" LastDate="1124994944826" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102678" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102678" Kind="enhancement" Label="102678: improve distinguishing between editor selections and edits" LastDate="1139867208777" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-20 17:01:02.813 PST" Dirty="false" Elapsed="204114" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104637" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104637" Kind="" Label="104637: Enhancment in folding" LastDate="1138046537209" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-12 19:39:18.379 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123710" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123710" Kind="" Label="123710: repository failure is silent" LastDate="1137209889077" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-17 18:41:15.820 PST" Dirty="false" Elapsed="816574" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124222" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124222" Kind="" Label="124222: BugzillaTaskExternalizer creates elements for non-bugzilla queries" LastDate="1137552846979" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104888" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104888" Kind="" Label="104888: revise docs for 0.3.2" LastDate="1122298984543" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-24 15:53:33.407 PST" Dirty="false" Elapsed="19233196" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-125095" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125095" Kind="" Label="125095: make task/report editor extensible" LastDate="1138146819756" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-29 19:31:09.56 PDT" Dirty="false" Elapsed="1164165" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108295" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108295" Kind="" Label="108295: Intrusive suggestions in Java code completion" LastDate="1125370205400" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103414" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103414" Kind="" Label="103414: create task list documentation" LastDate="1124994926570" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-24 16:50:40.949 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107949" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107949" Kind="normal" Label="107949: active hierarchy should update based on model changes" LastDate="1139867240183" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-21 18:46:37.510 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115128" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115128" Kind="" Label="115128: Toggling Mylar in outline causes the editor to change to another file" LastDate="1132633898621" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 18:02:01.596 PST" Dirty="false" Elapsed="958759" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115709" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115709" Kind="" Label="115709: Allow to specify custom template for commit comments" LastDate="1132020936187" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102090" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102090" Kind="" Label="102090: package explorer synchronization with interest filtering off" LastDate="1121707393401" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 18:10:15.606 PDT" Dirty="false" Elapsed="4066079" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110506" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110506" Kind="" Label="110506: provide context for previous/next task actions" LastDate="1138053064544" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="1162" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103107" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103107" Kind="" Label="103107: bugzilla fails to load corrupted offline reports" LastDate="1124994942363" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="110170378" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102674" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102674" Kind="" Label="102674: reduce size of taskscapes" LastDate="1128647206732" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-24 12:37:32.2 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124732" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124732" Kind="" Label="124732: Move method to open URL in internal browser" LastDate="1138151676159" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-25 13:08:38.55 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115707" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115707" Kind="" Label="115707: support multiple active change sets" LastDate="1133415963978" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-19 11:29:52.14 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121315" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121315" Kind="normal" Label="121315: Preferences: Highlighter with label &quot;orange gradient&quot; is rendered Brown" LastDate="1139969416758" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-02 14:27:06.22 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114849" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114849" Kind="" Label="114849: flatten interaction event summary table" LastDate="1132699262262" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103742" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103742" Kind="" Label="103742: Packages do not reappear in Java Browsing Packages view when no task activated" LastDate="1124994931247" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-22 14:42:14.656 PST" Dirty="false" Elapsed="203632" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117599" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117599" Kind="" Label="117599: improve web site and phoneix use" LastDate="1133565678262" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-23 10:00:21.311 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113476" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113476" Kind="" Label="113476: improve gradient highlighters" LastDate="1131487916357" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="2748584" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104607" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104607" Kind="" Label="104607: create FAQ document" LastDate="1127749128849" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="1150297" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103726" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103726" Kind="" Label="103726: reopened bug reports are filtered as completed" LastDate="1134688329920" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-23 14:52:26.938 PDT" Dirty="false" Elapsed="4412659" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109803" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109803" Kind="" Label="109803: tooltips on task list cause loss of focus on GTK" LastDate="1131160761127" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-25 10:45:19.516 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108021" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108021" Kind="normal" Label="108021: make monitor listen to all preference changes" LastDate="1139867241575" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-07 17:44:21.951 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-93820" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=93820" Kind="" Label="93820: [Forms] Manifest editor not sending correct selection events" LastDate="1138052566979" Notes="" Priority="P3" Reminded="true" ReminderDate="2005-11-05 10:44:12.883 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103733" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103733" Kind="" Label="103733: support gamma settings" LastDate="1124995054894" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-05 12:26:19.242 PST" Dirty="false" Elapsed="31794163" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119300" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119300" Kind="" Label="119300: fix setting of elapsed time to 0" LastDate="1134101994815" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="2869036" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104263" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104263" Kind="" Label="104263: support reminders in task list" LastDate="1124995026524" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="6676150" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106800" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106800" Kind="" Label="106800: Add an option to deactivate task without closing opened editors" LastDate="1123883880986" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-09 10:54:37.242 PST" Dirty="false" Elapsed="1123295" EndDate="" Estimated="3" Handle="https://bugs.eclipse.org/bugs-118582" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118582" Kind="minor" Label="118582: improve bugzilla client support for http auth" LastDate="1139969412792" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.408 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106899" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106899" Kind="" Label="106899: suppress filtering of active tasks" LastDate="1124994872602" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-16 20:09:10.912 PST" Dirty="false" Elapsed="45156728" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123884" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123884" Kind="" Label="123884: Collapse and sash controls in form editors" LastDate="1137808207006" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="105011" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103236" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103236" Kind="" Label="103236: make sure active reports can't disappear" LastDate="1124994893452" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 17:08:32.241 PST" Dirty="false" Elapsed="2689280" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124910" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124910" Kind="" Label="124910: improve task planner UI" LastDate="1138147875064" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103092" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103092" Kind="" Label="103092: improve category filtering and sorting" LastDate="1124994954340" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="121836" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103940" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103940" Kind="" Label="103940: update documentation for 0.3.2" LastDate="1124994912950" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-19 13:09:32.991 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124545" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124545" Kind="normal" Label="124545: [Viewers] FilteredTree refresh when filter is on" LastDate="1140115558108" Notes="" Priority="P3" Reminded="false" ReminderDate="2006-02-27 13:17:00.0 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-04 18:30:16.573 PST" Dirty="false" Elapsed="3644520" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122144" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122144" Kind="" Label="122144: eclipse deadlocked while starting up" LastDate="1136522697176" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-17 16:58:06.383 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114810" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114810" Kind="" Label="114810: Hardware and OS attributes not auto determined in New Bug Report wizard" LastDate="1133460517749" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-23 18:17:51.25 PST" Dirty="false" Elapsed="862411" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118151" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118151" Kind="" Label="118151: Auto-Opening with external editors" LastDate="1138071494864" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-13 09:09:45.834 PDT" Dirty="false" Elapsed="12909242" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108309" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108309" Kind="" Label="108309: Improve usability of &quot;make less interesting&quot; action" LastDate="1132531380038" Notes="" Priority="P1" Reminded="true" ReminderDate="2005-09-20 09:37:30.935 PDT" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-21 09:22:23.843 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110202" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110202" Kind="" Label="110202: bug links should be clickable in bug editor" LastDate="1138061373522" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-26 11:32:01.114 PDT" Dirty="false" Elapsed="703962" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107549" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107549" Kind="" Label="107549: Accessibility of Mylar glasses in all view..." LastDate="1125081666308" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 09:56:18.287 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108006" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108006" Kind="" Label="108006: add UI for restoring the tasklist from the backup copy" LastDate="1125448315248" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 12:35:28.227 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110701" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110701" Kind="" Label="110701: explore drag and drop integration with browser" LastDate="1132092580337" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-19 16:23:01.984 PST" Dirty="false" Elapsed="486388" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124424" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124424" Kind="" Label="124424: Write test cases for TaskReportGenerator" LastDate="1137716637594" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-30 14:23:36.844 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111266" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111266" Kind="normal" Label="111266: make Active Search work for Ant references" LastDate="1139867260522" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 07:24:24.372 PDT" Dirty="false" Elapsed="1513406" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-82752" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=82752" Kind="" Label="82752: ProgramElement.getSourceSignature returns &quot;public&quot; for &quot;private&quot; members" LastDate="1124981375284" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-02 13:31:27.342 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114837" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114837" Kind="" Label="114837: stack overflow in layout" LastDate="1134154665473" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-06 19:57:17.426 PDT" Dirty="false" Elapsed="13559770" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111870" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111870" Kind="" Label="111870: hour estimates are wrong" LastDate="1138053072876" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-24 12:20:39.352 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113583" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113583" Kind="enhancement" Label="113583: improve UI for activating multiple contexts" LastDate="1139867121722" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-16 19:56:09.969 PDT" Dirty="false" Elapsed="4564380" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109815" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109815" Kind="" Label="109815: add phase 2 upgarde popup" LastDate="1127154172716" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-13 10:33:10.141 PST" Dirty="false" Elapsed="3065" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122849" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122849" Kind="normal" Label="122849: [Model Sync] Support for change sets" LastDate="1140115553091" Notes="" Priority="P3" Reminded="false" ReminderDate="2006-02-26 10:33:26.434 PST" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107754" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107754" Kind="" Label="107754: entire tasklist can be lost if mylar is closed before load completes" LastDate="1124992095549" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 08:51:07.762 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114789" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114789" Kind="" Label="114789: red background of top tables is an eyesore when page is loading" LastDate="1131063923611" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-15 10:59:41.939 PDT" Dirty="false" Elapsed="1712705" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109642" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109642" Kind="" Label="109642: mylar can block workspace on startup" LastDate="1126897611293" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-11 13:19:02.666 PDT" Dirty="false" Elapsed="11145163" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108742" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108742" Kind="" Label="108742: Eclipse's Problems filters interact badly with Mylar" LastDate="1126481794835" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-03 11:15:46.675 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111362" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111362" Kind="enhancement" Label="111362: manage resource history" LastDate="1139867215307" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-16 16:33:44.596 PST" Dirty="false" Elapsed="401446" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106990" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106990" Kind="major" Label="106990: Add support for Bugzilla integrated into Collabnet" LastDate="1139867234725" Notes="" Priority="P4" Reminded="true" ReminderDate="2006-02-13 17:00:42.132 PST" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-18 18:15:54.157 PST" Dirty="false" Elapsed="1676540" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124225" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124225" Kind="" Label="124225: generalize tasklist actions to be object contributions" LastDate="1138046528736" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-06 19:23:54.846 PDT" Dirty="false" Elapsed="1510302" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111869" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111869" Kind="" Label="111869: changing highlightre fails to refresh views" LastDate="1128724678166" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-31 11:25:14.127 PST" Dirty="false" Elapsed="187877" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114399" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114399" Kind="" Label="114399: make Get Description in New Task dialog use progress" LastDate="1138053083101" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:01:53.364 PST" Dirty="false" Elapsed="23191140" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119380" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119380" Kind="" Label="119380: MyLar Seems to Block and make Eclipse unusable when running external build" LastDate="1134160685272" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 09:13:14.543 PDT" Dirty="false" Elapsed="5852370" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110200" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110200" Kind="" Label="110200: clean up task list extension points and create JIRA plug-in" LastDate="1127502875246" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-14 18:33:41.591 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121000" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121000" Kind="normal" Label="121000: make monitor interaction event externalization consistent with core" LastDate="1139867277076" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-11 13:24:32.871 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109259" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109259" Kind="normal" Label="109259: working set filter interacts badly with mylar filter" LastDate="1139867246852" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-12 14:45:38.411 PDT" Dirty="false" Elapsed="0" EndDate="2005-10-31 17:15:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112406" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112406" Kind="minor" Label="112406: misleading exception when web browser is not available" LastDate="1140115547292" Notes="" Priority="P3" Reminded="true" ReminderDate="2005-11-08 10:48:17.818 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-14 10:29:23.176 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112669" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112669" Kind="enhancement" Label="112669: add optional categories for completed today, completed this week" LastDate="1139867219242" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 13:34:49.768 PDT" Dirty="false" Elapsed="1442227" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110248" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110248" Kind="" Label="110248: notes field needs scroll bar and word wrap" LastDate="1130161170532" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-26 09:20:12.930 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113848" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113848" Kind="enhancement" Label="113848: support attaching context to bug report" LastDate="1139867219883" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 10:03:33.505 PDT" Dirty="false" Elapsed="1250510" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109313" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109313" Kind="" Label="109313: outline view refreshes too often" LastDate="1126897669327" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-29 08:47:21.422 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118443" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118443" Kind="" Label="118443: improve task list startup performance" LastDate="1134760891962" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-15 19:37:41.591 PST" Dirty="false" Elapsed="10358805" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116493" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116493" Kind="" Label="116493: mylar reopen closed editors on task acticvation" LastDate="1132591133670" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104782" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104782" Kind="normal" Label="104782: ensure that mylar viewer management removes facilities on view close" LastDate="1139867238841" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="8805730" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102870" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102870" Kind="" Label="102870: provide documentation of known limitations" LastDate="1124994957354" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 09:05:31.714 PDT" Dirty="false" Elapsed="1395166" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110464" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110464" Kind="" Label="110464: make active search check box selections disjoint" LastDate="1127520726870" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 19:01:41.61 PST" Dirty="false" Elapsed="9627252" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119557" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119557" Kind="" Label="119557: Tasklist data doesn't change when changing workspace" LastDate="1134154737126" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-21 08:18:35.468 PDT" Dirty="false" Elapsed="589688" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110133" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110133" Kind="" Label="110133: Unhandled event loop exception" LastDate="1127316728097" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-13 19:36:49.956 PDT" Dirty="false" Elapsed="385995" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109460" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109460" Kind="normal" Label="109460: wrong incoming status on submitted reports/comments" LastDate="1139969412682" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-04 13:19:30.271 PST" Dirty="false" Elapsed="814328" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114162" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114162" Kind="" Label="114162: Export to zip files" LastDate="1138053067749" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 11:12:33.675 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-125276" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125276" Kind="normal" Label="125276: common navigation items are overly restritive and cumbersome to navigate" LastDate="1139518294878" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-16 13:18:16.334 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120502" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120502" Kind="normal" Label="120502: [performance] pauses during casual editor navigation" LastDate="1140232919580" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-01 09:48:38.114 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118884" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118884" Kind="normal" Label="118884: problems with PDE Outline update" LastDate="1140232912700" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-21 11:36:57.207 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110225" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110225" Kind="" Label="110225: plan merge with Jeff Pound's for of the Platform Team's Bugs plug-in" LastDate="1132619761563" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-29 19:33:01.991 PDT" Dirty="false" Elapsed="934144" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111167" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111167" Kind="" Label="111167: [Discussion] Re-activate last task when Eclipse starts" LastDate="1128377904669" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103234" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103234" Kind="" Label="103234: monitor seems to be storing too much for preferences" LastDate="1124994959878" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-04 17:45:27.647 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114283" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114283" Kind="" Label="114283: NPE setting colour of highlighter" LastDate="1131155763901" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 10:17:32.821 PST" Dirty="false" Elapsed="1311474" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115183" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115183" Kind="" Label="115183: &quot;make less interesting&quot; shortcut only decrements single element" LastDate="1132626798902" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-16 13:25:09.596 PST" Dirty="false" Elapsed="2719320" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124038" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124038" Kind="" Label="124038: new report creation wizard should require fewer clicks" LastDate="1137729238603" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-14 18:41:26.901 PDT" Dirty="false" Elapsed="550261" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110127" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110127" Kind="" Label="110127: Improvements for Alt-Click in all views with active Mylar filter" LastDate="1134752754989" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-27 20:05:17.75 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110892" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110892" Kind="normal" Label="110892: repeated searches should not induce landmark interest" LastDate="1139867260512" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103570" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103570" Kind="" Label="103570: ensure that task list writes versions" LastDate="1124994895776" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="11425145" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102663" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102663" Kind="enhancement" Label="102663: support multiple workbench windows" LastDate="1140232912760" Notes="" Priority="P3" Reminded="true" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-07 17:41:17.827 PDT" Dirty="false" Elapsed="283767" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112009" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112009" Kind="" Label="112009: editing build.properties does not induce interest properly" LastDate="1132026760442" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-26 11:40:39.530 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108163" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108163" Kind="" Label="108163: active tasks disappear" LastDate="1125085546998" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-16 14:48:14.894 PST" Dirty="false" Elapsed="2819995" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124044" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124044" Kind="" Label="124044: Task Repositories -&gt; Properties: IndexOutOfBounds on Mac OS X" LastDate="1137454257740" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-14 09:59:40.621 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120917" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120917" Kind="normal" Label="120917: clean up collection of Mylar usage stats" LastDate="1140232919610" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="657505" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103373" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103373" Kind="" Label="103373: on task activation expand all intersting in managed views" LastDate="1121707409614" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-13 18:17:26.932 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-127609" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=127609" Kind="normal" Label="127609: parametrize task completion status" LastDate="1140232905850" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-10 17:19:35.857 PST" Dirty="false" Elapsed="84689" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114435" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114435" Kind="" Label="114435: calendar month off-by-one" LastDate="1138053077814" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-30 06:47:43.416 PST" Dirty="false" Elapsed="9118991" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121976" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121976" Kind="" Label="121976: Delete Icon should be red" LastDate="1135963705640" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="4769748" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104489" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104489" Kind="" Label="104489: clean up composite context API" LastDate="1121873724873" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 11:40:59.551 PST" Dirty="false" Elapsed="1319053" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106939" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106939" Kind="normal" Label="106939: Bugzilla query refresh in a task list should use scheduler" LastDate="1139969416537" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="1151886" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104091" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104091" Kind="" Label="104091: predicted interest items are never removed from the contest" LastDate="1121711114722" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-30 11:44:13.397 PDT" Dirty="false" Elapsed="5939" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108409" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108409" Kind="" Label="108409: make usage summary limit results to accepted users" LastDate="1138049389470" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-15 14:00:12.30 PST" Dirty="false" Elapsed="2117796" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116514" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116514" Kind="normal" Label="116514: support building against IBM JDK" LastDate="1139867271688" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-19 11:29:37.362 PST" Dirty="false" Elapsed="1582" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118542" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118542" Kind="normal" Label="118542: Open/close Java files leave interest on packages" LastDate="1140232909165" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104070" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104070" Kind="" Label="104070: put back drill-down adapter on task list" LastDate="1121707402243" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-15 21:40:25.105 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121171" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121171" Kind="" Label="121171: improve task list filtering and decoration" LastDate="1136518714497" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="6520355" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104644" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104644" Kind="" Label="104644: monitor task activation" LastDate="1122298988699" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 18:46:41.538 PDT" Dirty="false" Elapsed="1062989" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111020" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111020" Kind="" Label="111020: Freeze editing Java file with outline view up" LastDate="1127960674847" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="2264" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106926" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106926" Kind="" Label="106926: too many &quot;download failed&quot; messages in log" LastDate="1124771110778" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-05 14:50:16.627 PST" Dirty="false" Elapsed="3883583" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119254" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119254" Kind="" Label="119254: New bug id error with Bugzilla 2.20 (parsing)" LastDate="1134162719217" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-12 10:53:40.649 PDT" Dirty="false" Elapsed="19238155" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106678" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106678" Kind="normal" Label="106678: hierarchical layout in package explorer shows uninteresting elements" LastDate="1140232909145" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-05 18:24:44.377 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107675" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107675" Kind="" Label="107675: newly created resources should become interesting" LastDate="1129564555254" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-15 14:47:31.64 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103276" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103276" Kind="" Label="103276: Temporarily disable server property page test" LastDate="1134686879024" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-20 11:08:03.919 PST" Dirty="false" Elapsed="4460377" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124676" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124676" Kind="" Label="124676: Edit on F2 in Task view truncate task description" LastDate="1137795243286" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-27 17:58:51.92 PDT" Dirty="false" Elapsed="516784" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114047" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114047" Kind="enhancement" Label="114047: allow junit test suite of current context to run with low process priority" LastDate="1139867226363" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 11:39:07.430 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124919" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124919" Kind="normal" Label="124919: planner should only report time Elapsed during plan period" LastDate="1139969417058" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 16:04:15.442 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108068" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108068" Kind="" Label="108068: update active search based on resource changes" LastDate="1125370199281" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-19 15:42:40.551 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117024" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117024" Kind="" Label="117024: Content assist doesn't show static members (eg enum instances)" LastDate="1132630525591" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106428" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106428" Kind="normal" Label="106428: Need support for deploying features depending on other features" LastDate="1140115552510" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="215661" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-105094" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=105094" Kind="" Label="105094: invalidate search results" LastDate="1124994996120" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-12 07:21:41.57 PST" Dirty="false" Elapsed="6798932" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120185" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120185" Kind="" Label="120185: make task planner run with progress" LastDate="1134419352177" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="2784" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104037" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104037" Kind="" Label="104037: ensure that monitor can progress through phases" LastDate="1121707461108" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103289" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103289" Kind="" Label="103289: preserve downloaded labels during refresh" LastDate="1124994905640" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-06 09:41:07.674 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-100635" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=100635" Kind="" Label="100635: Provide live, always up to date, combined online help at eclipse.org" LastDate="1128616867704" Notes="" Priority="P3" Reminded="true" ReminderDate="2005-10-13 11:02:31.211 PDT" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-10 10:11:16.684 PST" Dirty="false" Elapsed="475364" EndDate="2006-02-15 20:13:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-126866" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126866" Kind="normal" Label="126866: NPE in new bugzilla report wizard" LastDate="1140052509929" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-10 12:34:09.281 PST" Dirty="false" Elapsed="79043613" EndDate="2006-02-14 21:18:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-125438" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125438" Kind="normal" Label="125438: make tasklist icons overlay-based" LastDate="1139970010061" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-10 16:00:00.546 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-25 15:01:28.826 PDT" Dirty="false" Elapsed="672957" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108063" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108063" Kind="normal" Label="108063: create policy for re-running active searches" LastDate="1139867242766" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-21 12:17:58.101 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113399" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113399" Kind="enhancement" Label="113399: add recommended preference changes" LastDate="1140232909115" Notes="" Priority="P2" Reminded="true" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-13 09:40:42.957 PST" Dirty="false" Elapsed="83721" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-224577" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=224577" Kind="" Label="224577: Bugzilla could use a web services interface" LastDate="1139867282053" Notes="" Priority="P4" Reminded="true" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-20 08:35:03.28 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110042" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110042" Kind="normal" Label="110042: consider limiting size of active search matches" LastDate="1139867257968" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-05 14:50:12.310 PST" Dirty="false" Elapsed="566453" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119180" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119180" Kind="" Label="119180: Cleanup of tasklist provider schema" LastDate="1133994245259" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-29 15:00:52.18 PDT" Dirty="false" Elapsed="0" EndDate="2005-09-30 09:43:00.0 PDT" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111155" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111155" Kind="normal" Label="111155: [Contributions] wrong toolbar height if first button has a pull-down menu" LastDate="1140115552540" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-04 10:48:02.103 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115117" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115117" Kind="" Label="115117: contexts junit tests failing to launch on 3.2M3" LastDate="1131938430713" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-27 18:00:09.345 PDT" Dirty="false" Elapsed="2359533" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113585" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113585" Kind="" Label="113585: Automatically fetch task title" LastDate="1138053053168" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103364" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103364" Kind="" Label="103364: add timestamp to user sign-up" LastDate="1124994983251" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-03 20:16:46.734 PST" Dirty="false" Elapsed="8880173" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115017" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115017" Kind="" Label="115017: bugzilla 2.20 hits only result in one match" LastDate="1131155473714" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-04 18:31:45.701 PST" Dirty="false" Elapsed="110174858" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121041" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121041" Kind="" Label="121041: Support more than one Bugzilla account per Workspace" LastDate="1137172947572" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-27 13:20:50.857 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113564" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113564" Kind="" Label="113564: Bugzilla provider does not work from behind firewall" LastDate="1132028533361" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="1692734" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107152" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107152" Kind="" Label="107152: make &quot;unsure&quot; the default for questionnaire responses" LastDate="1124771103588" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-25 07:30:34.984 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107991" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107991" Kind="normal" Label="107991: make one level of subtypes show in Active Hierarchy" LastDate="1139867240904" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-06 17:58:45.319 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111865" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111865" Kind="enhancement" Label="111865: create welcome page" LastDate="1139867219162" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-18 15:41:03.794 PST" Dirty="false" Elapsed="1301522" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121326" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121326" Kind="" Label="121326: MylarUiPlugin fails to activate if no mylar views visible" LastDate="1134950896191" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-16 13:41:20.408 PST" Dirty="false" Elapsed="1373624" EndDate="2006-02-16 16:41:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-128256" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128256" Kind="critical" Label="128256: Task list disappeared on restart" LastDate="1140126239417" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-17 19:21:28.956 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-128500" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128500" Kind="normal" Label="128500: hits should show resolved status" LastDate="1140232940390" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.408 PST" Dirty="false" Elapsed="831420" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103283" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103283" Kind="normal" Label="103283: make predicted interest errors work for plugin.xml and other resources" LastDate="1139867236367" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 10:28:56.685 PDT" Dirty="false" Elapsed="1451607" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109315" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109315" Kind="" Label="109315: package explorer fails to unlink with editor when Mylar is enabled" LastDate="1126557631304" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-04 13:23:55.739 PDT" Dirty="false" Elapsed="7464071" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111022" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111022" Kind="" Label="111022: Edit .properties file should make it be important" LastDate="1128738563993" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-09 10:54:48.599 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119553" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119553" Kind="" Label="119553: Refactor error reporting and logging support" LastDate="1134154533774" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-23 20:00:12.121 PDT" Dirty="false" Elapsed="118550" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107812" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107812" Kind="" Label="107812: add prompt to view tutorial video on phase1 start" LastDate="1126485645903" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-07 13:35:35.792 PST" Dirty="false" Elapsed="17232461" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115394" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115394" Kind="" Label="115394: improve the Task Planner reporting on activity" LastDate="1138053055822" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-13 18:15:58.940 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109454" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109454" Kind="normal" Label="109454: make online access mode to report trigger offline mode" LastDate="1139867250257" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-08 20:00:17.293 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109114" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109114" Kind="" Label="109114: command failures on startup" LastDate="1126897374142" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-11 16:44:39.983 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109262" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109262" Kind="" Label="109262: problems list filter does not retain state on startup" LastDate="1126537281236" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-19 11:29:35.700 PST" Dirty="false" Elapsed="1662" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116652" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116652" Kind="" Label="116652: Activated indicator column does not resize correctly" LastDate="1136596782292" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107081" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107081" Kind="" Label="107081: completed bugs don't filter from root" LastDate="1124771068697" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-26 15:52:27.854 PDT" Dirty="false" Elapsed="885419" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113916" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113916" Kind="" Label="113916: fix exceptions reported in logs" LastDate="1130536677341" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-19 17:30:11.868 PST" Dirty="false" Elapsed="1108444" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117100" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117100" Kind="" Label="117100: tasks view should not change its title when paused" LastDate="1132510052722" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="9465866" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102679" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102679" Kind="" Label="102679: add show filtered action to navigator" LastDate="1122066516762" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-31 08:28:22.165 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108475" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108475" Kind="" Label="108475: if active task is only under archive reports it still needs to show up" LastDate="1126200114284" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-18 10:48:12.635 PST" Dirty="false" Elapsed="1040414" EndDate="2006-02-07 03:54:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119603" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119603" Kind="normal" Label="119603: [api][content assist] allow contributions to filter and sort proposals" LastDate="1139510945170" Notes="" Priority="P3" Reminded="true" ReminderDate="2006-01-20 11:14:38.265 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 13:07:22.471 PDT" Dirty="false" Elapsed="234350" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103419" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103419" Kind="" Label="103419: improve active search infrastructure" LastDate="1125010575602" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="8776295" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104287" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104287" Kind="enhancement" Label="104287: Alt+Click does not work in the Java Browsing Perspective" LastDate="1139867211521" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 11:51:18.388 PST" Dirty="false" Elapsed="3273570" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-126842" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126842" Kind="enhancement" Label="126842: prototype JIRA support" LastDate="1140232905850" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 12:19:44.848 PDT" Dirty="false" Elapsed="15581" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109536" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109536" Kind="" Label="109536: add keybindings for common actions" LastDate="1130988941373" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 10:17:38.59 PST" Dirty="false" Elapsed="2416917" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115201" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115201" Kind="" Label="115201: Del action deletes task only on second call" LastDate="1132622491809" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 14:13:12.40 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-126237" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126237" Kind="normal" Label="126237: copying and pasting task contexts" LastDate="1140232912750" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-20 12:58:36.666 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113275" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113275" Kind="enhancement" Label="113275: improve PDE search and include manifest files" LastDate="1140232905850" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-01 08:42:22.359 PST" Dirty="false" Elapsed="803727" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114561" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114561" Kind="normal" Label="114561: restructure and fix up documentation" LastDate="1139867264137" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-22 14:11:29.324 PDT" Dirty="false" Elapsed="28067911" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113461" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113461" Kind="" Label="113461: allow mylar monitor to be disabled" LastDate="1130113992716" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 19:36:02.153 PST" Dirty="false" Elapsed="1854941" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112722" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112722" Kind="" Label="112722: adding task when drilled into a category should add it to that category" LastDate="1131036515614" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 15:05:10.808 PST" Dirty="false" Elapsed="4063139" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114853" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114853" Kind="" Label="114853: group Add actions into a submenu on the popup menu" LastDate="1130989290425" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-28 16:47:47.186 PDT" Dirty="false" Elapsed="269227" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113277" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113277" Kind="" Label="113277: Error while stopping &quot;org.eclipse.mylyn.java_0.3.12.e31&quot;." LastDate="1130543614295" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-09 14:53:51.633 PST" Dirty="false" Elapsed="4175748" EndDate="" Estimated="2" Handle="https://bugs.eclipse.org/bugs-119137" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119137" Kind="enhancement" Label="119137: Task does not remember perspective" LastDate="1140232915965" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-13 11:59:22.583 PST" Dirty="false" Elapsed="5766922" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123817" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123817" Kind="" Label="123817: make add of existing report use repository" LastDate="1137809376949" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 08:11:58.706 PDT" Dirty="false" Elapsed="90" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107582" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107582" Kind="" Label="107582: Implement F3 &quot;open declaration&quot; action for pointcuts" LastDate="1125420269367" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-13 18:48:32.309 PDT" Dirty="false" Elapsed="35045443" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109456" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109456" Kind="" Label="109456: problems list blinks in save in filtered mode" LastDate="1126893230364" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-14 10:52:31.482 PDT" Dirty="false" Elapsed="4970260" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112572" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112572" Kind="" Label="112572: allow a stats generating action to specify stats collectors" LastDate="1129326360528" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-20 10:04:13.856 PST" Dirty="false" Elapsed="8203474" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117217" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117217" Kind="" Label="117217: create action for navigating from change set to bug report" LastDate="1132531444892" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-16 11:02:39.585 PDT" Dirty="false" Elapsed="439031" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106797" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106797" Kind="" Label="106797: label decorator makes Package Explorer view flicker on marker change" LastDate="1132092845268" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 12:00:44.382 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-125959" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125959" Kind="normal" Label="125959: [OLE] in-place editor for PDFs" LastDate="1140115558959" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-13 11:10:16.216 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123813" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123813" Kind="" Label="123813: bugzilla version should be associated with repository" LastDate="1138046466267" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 12:59:36.219 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110490" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110490" Kind="" Label="110490: make the data elements of the Active Hiearchy view be java elements" LastDate="1128562010809" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103365" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103365" Kind="normal" Label="103365: monitor scrolling activity" LastDate="1139867236627" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-23 12:12:49.24 PST" Dirty="false" Elapsed="1922885" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117775" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117775" Kind="" Label="117775: navigating back can fail if element in nested class is selected" LastDate="1133576107329" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-19 17:47:54.926 PST" Dirty="false" Elapsed="14416227" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116449" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116449" Kind="" Label="116449: package explorer scrolling on activation" LastDate="1132611848731" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102680" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102680" Kind="" Label="102680: all views should de-register taskscape listeners when deactivated" LastDate="1125370254210" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-22 13:30:45.296 PDT" Dirty="false" Elapsed="1487540" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110375" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110375" Kind="" Label="110375: concurrent modification exception during Java search" LastDate="1135954299415" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-10 11:36:58.478 PST" Dirty="false" Elapsed="34706105" EndDate="2006-02-16 10:53:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-127123" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=127123" Kind="normal" Label="127123: Mylar does not remember Bugzilla Repository Settings" LastDate="1140105314338" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-08 14:01:47.552 PST" Dirty="false" Elapsed="2986639" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115496" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115496" Kind="" Label="115496: ApplyMylarToPackageExplorerAction may not be fully initialized" LastDate="1133323740055" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-08 10:22:13.211 PDT" Dirty="false" Elapsed="2249987" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109016" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109016" Kind="" Label="109016: NullPointerException when building configuration" LastDate="1127403592919" Notes="" Priority="P2" Reminded="true" ReminderDate="2005-09-22 18:00:45.996 PDT" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-16 17:22:59.807 PDT" Dirty="false" Elapsed="93845" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112751" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112751" Kind="" Label="112751: temporary zip files don't get deleted" LastDate="1129564611014" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="1750957" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106930" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106930" Kind="" Label="106930: Task list is loosing its content after each restart" LastDate="1124994973027" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-20 16:10:56.490 PST" Dirty="false" Elapsed="974120" EndDate="2006-02-14 21:20:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122884" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122884" Kind="normal" Label="122884: Mylar should provide a Milestone field in the Bug entering dialog box." LastDate="1139970596464" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-13 09:34:46.4 PST" Dirty="false" Elapsed="7028571" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107487" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107487" Kind="" Label="107487: add &quot;validate password&quot; to bugzilla prefs page" LastDate="1137188249087" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-21 19:35:28.154 PST" Dirty="false" Elapsed="91242" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116869" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116869" Kind="" Label="116869: Mylar classpath broken when using alt install locations in e3.1.1" LastDate="1134613130129" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-14 18:01:40.986 PST" Dirty="false" Elapsed="175461" EndDate="2006-02-14 21:07:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-125982" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125982" Kind="major" Label="125982: [linux] Tooltips don't disappear" LastDate="1139969384952" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 14:46:23.443 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110731" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110731" Kind="" Label="110731: bugzilla task in category fails to activate on startup" LastDate="1128046911717" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-19 16:41:22.15 PST" Dirty="false" Elapsed="1245737" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115159" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115159" Kind="" Label="115159: could not connect to Bugzilla, could not troubleshoot" LastDate="1132630522997" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104555" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104555" Kind="" Label="104555: add mechanism for analyzing statistics per-user" LastDate="1122298957294" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-18 16:36:05.847 PDT" Dirty="false" Elapsed="8128573" EndDate="" Estimated="3" Handle="https://bugs.eclipse.org/bugs-107457" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107457" Kind="" Label="107457: Make tasklist saves more eager" LastDate="1133567856655" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 14:53:48.585 PDT" Dirty="false" Elapsed="2931195" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107810" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107810" Kind="" Label="107810: toggle of folding can cause file modification when using VSSPlugin" LastDate="1127521801865" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 18:52:38.401 PST" Dirty="false" Elapsed="2477210" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119785" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119785" Kind="" Label="119785: Endless flicker loop after CVS exception" LastDate="1134075577625" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104340" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104340" Kind="normal" Label="104340: multiple tasks active not working correctly" LastDate="1139867237619" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 10:32:58.843 PDT" Dirty="false" Elapsed="6981265" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109317" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109317" Kind="" Label="109317: inconsistent coloring in when Mylar filter is off" LastDate="1129169570136" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="799029" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103915" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103915" Kind="" Label="103915: Parameters are missing from the context assist" LastDate="1121707397366" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-08 14:24:05.886 PST" Dirty="false" Elapsed="818480" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115199" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115199" Kind="" Label="115199: Pause/Resume Capturing Context action should be on the toolbar" LastDate="1131500615341" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-27 18:42:12.994 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114050" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114050" Kind="normal" Label="114050: support plans in task list" LastDate="1139867264137" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 12:30:10.968 PDT" Dirty="false" Elapsed="2777286" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109538" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109538" Kind="" Label="109538: make active search disable when view is not active" LastDate="1126738790857" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-03 15:09:03.983 PDT" Dirty="false" Elapsed="10351623" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111390" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111390" Kind="" Label="111390: improve outline refresh lainess and ensure that outline does not set selections when link mode is off" LastDate="1128648740968" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-21 18:53:20.151 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110281" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110281" Kind="normal" Label="110281: move commons dependancies to be on SDK" LastDate="1139867260432" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104057" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104057" Kind="" Label="104057: on startup active task's context is inactive" LastDate="1121707426028" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-13 12:36:09.662 PST" Dirty="false" Elapsed="107332" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-74795" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=74795" Kind="enhancement" Label="74795: [Viewers] Generic quick filter for large tree-based views" LastDate="1139867290525" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104062" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104062" Kind="enhancement" Label="104062: in &quot;new bug report&quot;, put the previously-submitted to components on top" LastDate="1139867210760" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 15:13:06.832 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124955" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124955" Kind="" Label="124955: modifying a task should refresh the containing query category" LastDate="1138061383156" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-08 11:52:57.262 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115535" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115535" Kind="" Label="115535: renamed perspective usage logged incorrectly" LastDate="1138052463590" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-21 11:41:31.6 PDT" Dirty="false" Elapsed="1539003" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113394" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113394" Kind="" Label="113394: refactor common per-user analysis code" LastDate="1129925458584" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-28 10:43:29.416 PDT" Dirty="false" Elapsed="4510333" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114156" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114156" Kind="" Label="114156: create new icons" LastDate="1130534618450" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-13 09:34:57.391 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123681" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123681" Kind="" Label="123681: query categories don't refresh after modification" LastDate="1137188934002" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="74535177" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103736" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103736" Kind="enhancement" Label="103736: add interest sorter to problems list" LastDate="1139867210750" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-09 14:22:59.134 PST" Dirty="false" Elapsed="0" EndDate="2006-02-16 00:43:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-127182" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=127182" Kind="normal" Label="127182: bugzilla outline missing in generic task editor" LastDate="1139867126599" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 10:20:13.129 PST" Dirty="false" Elapsed="2753429" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119692" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119692" Kind="" Label="119692: tooltip showing current task summary on mylar task view icon" LastDate="1133982239215" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-02 11:45:41.677 PST" Dirty="false" Elapsed="740249" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114318" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114318" Kind="" Label="114318: Task in task list disappearing" LastDate="1131081231048" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-21 13:12:54.942 PDT" Dirty="false" Elapsed="724944" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113292" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113292" Kind="" Label="113292: Task summary editor tab for issue report web page" LastDate="1138053048471" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="2090707" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106690" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106690" Kind="" Label="106690: add &quot;edit highlighters&quot; button to &quot;choose highlighter&quot; menu" LastDate="1126663733675" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-13 15:11:00.797 PST" Dirty="false" Elapsed="5109170" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123845" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123845" Kind="" Label="123845: provide query page extensibility" LastDate="1138138923398" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-15 19:37:33.720 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116450" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116450" Kind="" Label="116450: making a resource less interesting fails to remove it from the commit set" LastDate="1132277808372" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-25 13:00:36.218 PDT" Dirty="false" Elapsed="928275" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113696" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113696" Kind="" Label="113696: make usage upload wizard aware of monitor extensions" LastDate="1130271605560" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-09 11:24:33.346 PST" Dirty="false" Elapsed="2272012" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115514" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115514" Kind="" Label="115514: Editors closed on task deactivation should be opened on reactivation" LastDate="1131584611098" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 09:14:04.591 PDT" Dirty="false" Elapsed="2832617" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110630" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110630" Kind="" Label="110630: java.lang.VerifyError with Mylar 0.3.9 on Eclipse 3.2M2" LastDate="1127760088249" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-13 10:43:34.153 PST" Dirty="false" Elapsed="175612" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123806" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123806" Kind="" Label="123806: create default perspective and shortcut locations" LastDate="1137192636346" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-26 10:54:54.462 PDT" Dirty="false" Elapsed="922376" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108158" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108158" Kind="" Label="108158: make folding state toggle with task activation" LastDate="1137785678732" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-06 08:18:19.991 PST" Dirty="false" Elapsed="1509289" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122700" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122700" Kind="" Label="122700: expose all task state editable via the form editor and improve form formatting" LastDate="1137105361317" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103422" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103422" Kind="" Label="103422: labels showing HTML characters wrong" LastDate="1124995019193" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-16 10:54:56.550 PST" Dirty="false" Elapsed="274706" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124006" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124006" Kind="" Label="124006: support sorting tasklist items as both ascending and descending" LastDate="1138147907200" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-08 08:04:38.712 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115498" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115498" Kind="normal" Label="115498: [discussion] rewind and replay of context capture" LastDate="1139867267322" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="17612758" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104110" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104110" Kind="" Label="104110: add support for resetting edges" LastDate="1125010277934" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-05 09:17:23.708 PDT" Dirty="false" Elapsed="28296573" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111603" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111603" Kind="" Label="111603: Allow unit tests in Mylar context to be run as a group" LastDate="1129201561141" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-24 16:45:30.483 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107948" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107948" Kind="" Label="107948: propagated interest sticks for error packages" LastDate="1133288110121" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-14 10:51:11.778 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109523" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109523" Kind="" Label="109523: move flash demos to downloads area" LastDate="1137104545113" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 10:16:56.770 PST" Dirty="false" Elapsed="374549" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114808" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114808" Kind="" Label="114808: Query form is hard to use under linux" LastDate="1137798886354" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-24 08:54:25.942 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113554" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113554" Kind="" Label="113554: support ajsym file generation for command line builds" LastDate="1131418209029" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-13 20:43:30.27 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109462" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109462" Kind="" Label="109462: can't change category name" LastDate="1138049395739" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="1122765" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106566" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106566" Kind="" Label="106566: make the sign-up form HTML" LastDate="1124151496496" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-18 19:49:00.645 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113031" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113031" Kind="" Label="113031: launching spring viewer causes workbench exit" LastDate="1130957199063" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 10:48:03.197 PDT" Dirty="false" Elapsed="16845435" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109521" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109521" Kind="" Label="109521: create eclipse.org update site" LastDate="1130444453371" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-30 11:19:46.799 PST" Dirty="false" Elapsed="17679767" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118461" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118461" Kind="" Label="118461: code assist for static methods/fields not working" LastDate="1134491716179" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-03 15:18:28.384 PDT" Dirty="false" Elapsed="4325210" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110747" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110747" Kind="" Label="110747: automatically open the task list when Mylar first runs" LastDate="1128393385327" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-20 15:15:18.345 PDT" Dirty="false" Elapsed="777217" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110112" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110112" Kind="" Label="110112: tasks fail to get removed from root" LastDate="1127273883301" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-27 10:58:59.749 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114009" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114009" Kind="" Label="114009: make bugzilla depdency optional" LastDate="1130466703225" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="11665515" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103748" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103748" Kind="" Label="103748: make highlighters work with de-coupled task list" LastDate="1121707417445" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-19 09:39:58.137 PDT" Dirty="false" Elapsed="6575324" EndDate="2006-02-15 20:20:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109902" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109902" Kind="normal" Label="109902: integrate reminders into the task list" LastDate="1140053722062" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 10:56:34.710 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124908" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124908" Kind="" Label="124908: improve bugzilla notification of incoming information" LastDate="1138061370538" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-30 09:26:01.8 PDT" Dirty="false" Elapsed="3165743" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111226" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111226" Kind="" Label="111226: suppress active search running if view is not active" LastDate="1128113086843" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-13 18:09:45.772 PDT" Dirty="false" Elapsed="2015840" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112019" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112019" Kind="" Label="112019: CVS text decorator applied twice on Active Search view" LastDate="1129258727032" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103440" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103440" Kind="" Label="103440: support bugzilla refresh on a standard category" LastDate="1124995016870" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102673" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102673" Kind="" Label="102673: task editor dirty state" LastDate="1124994883859" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-14 18:46:27.756 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109559" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109559" Kind="enhancement" Label="109559: add &quot;dependant project&quot; degree of separation" LastDate="1139867215107" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="11050791" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107463" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107463" Kind="" Label="107463: &quot;unfiltered&quot; view selections are reported incorrectly" LastDate="1124828168368" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-17 15:20:24.441 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116948" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116948" Kind="" Label="116948: Alt-Click in views not working under Linux" LastDate="1134773358999" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.408 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102047" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102047" Kind="" Label="102047: Drag and Drop overwrites task description" LastDate="1125370217748" Notes="" Priority="P5" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-13 13:29:05.600 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112550" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112550" Kind="" Label="112550: contentProviderClass extension point should be of kind &quot;class&quot;" LastDate="1130444336903" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102916" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102916" Kind="" Label="102916: split bugzilla into core and ui plugins" LastDate="1121299174811" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-24 11:09:38.698 PDT" Dirty="false" Elapsed="10291666" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107542" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107542" Kind="" Label="107542: Build errors should increase interest level for java files" LastDate="1124927231658" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-08 08:09:15.527 PDT" Dirty="false" Elapsed="1366330" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108811" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108811" Kind="" Label="108811: Installer screen freezes" LastDate="1130521761453" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="3591754" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102800" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102800" Kind="" Label="102800: selections in package explorer jump to previous location" LastDate="1123883273792" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-18 15:30:40.458 PST" Dirty="false" Elapsed="532009" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121318" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121318" Kind="" Label="121318: NumberFormatException on Preferences-&gt;Mylar-&gt;Bugzilla on Mac OS X" LastDate="1137444019938" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-23 15:31:36.796 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115885" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115885" Kind="" Label="115885: add a background questionnaire wizard page" LastDate="1138052460886" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104889" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104889" Kind="" Label="104889: differentiate between element selections of normal, decayed, interesting" LastDate="1124770953782" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-07 11:27:16.421 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-63692" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63692" Kind="minor" Label="63692: [projection] Annotations in folded region are not rendered in overview ruler" LastDate="1140115547292" Notes="" Priority="P3" Reminded="false" ReminderDate="2006-02-21 15:02:00.0 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103588" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103588" Kind="" Label="103588: use extension points in place of ITaskListActionContributor" LastDate="1124994888375" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-11 17:45:35.99 PDT" Dirty="false" Elapsed="530042" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109147" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109147" Kind="" Label="109147: &quot;link with editor&quot; doesn't work" LastDate="1126486674692" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 14:13:29.665 PDT" Dirty="false" Elapsed="1570628" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110724" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110724" Kind="" Label="110724: background coloring of task list elements is wrong on 3.2" LastDate="1131418223970" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-05 12:30:52.22 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122804" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122804" Kind="" Label="122804: make bugzilla options refresh when repository is added" LastDate="1138146782242" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103728" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103728" Kind="enhancement" Label="103728: consider changing active search quick view to JavaOutlineInformationControl subclass" LastDate="1139867277356" Notes="" Priority="P5" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-17 16:45:44.521 PST" Dirty="false" Elapsed="548099" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-126271" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126271" Kind="normal" Label="126271: support import of task list and contexts" LastDate="1140230324749" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 14:52:18.756 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109804" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109804" Kind="" Label="109804: Differentiating task categories is difficult with Mylar as similar to default background on Linux-GTK" LastDate="1127519342849" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-04 18:32:26.891 PDT" Dirty="false" Elapsed="50851677" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-56779" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56779" Kind="" Label="56779: [ajdoc] add ajdoc support for inter-type declarations and other declare forms" LastDate="1128529129351" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-04 15:08:57.194 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115179" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115179" Kind="" Label="115179: new bug creation fails on with bugzilla 2.20" LastDate="1131152072894" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-23 20:01:06.40 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117631" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117631" Kind="" Label="117631: NPE in JavaProblemListener" LastDate="1132805609229" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-03 12:37:33.521 PDT" Dirty="false" Elapsed="6079411" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111375" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111375" Kind="" Label="111375: improve laziness of managed viewer refresh" LastDate="1128377422455" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104799" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104799" Kind="normal" Label="104799: show filtered fails to clear root nodes in navigator view" LastDate="1139867239371" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-25 13:59:25.633 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113711" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113711" Kind="" Label="113711: set up automated build process" LastDate="1130453566835" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-23 14:53:37.579 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107865" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107865" Kind="" Label="107865: decrement interest fails to refresh label when not in filtered mode" LastDate="1129564567932" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-13 19:26:51.627 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112586" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112586" Kind="" Label="112586: [api] add support for toggling folding for IJavaElement's" LastDate="1129312022509" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-26 10:18:49.359 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108154" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108154" Kind="" Label="108154: navigating to previous task doesn't work if only one task has been activated then deactivated" LastDate="1125080961665" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-23 18:35:24.476 PDT" Dirty="false" Elapsed="4753561" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107809" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107809" Kind="" Label="107809: make error logging more verbose" LastDate="1124906803747" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-09 19:29:04.44 PDT" Dirty="false" Elapsed="12477313" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109235" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109235" Kind="" Label="109235: interest should be maintained across a refactoring" LastDate="1129338671240" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-24 13:51:10.473 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117374" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117374" Kind="" Label="117374: adding resources to mylar commit set should add them into task context" LastDate="1132889558336" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-04 18:40:27.441 PST" Dirty="false" Elapsed="1621530" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122706" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122706" Kind="" Label="122706: create developer FAQ" LastDate="1138146810783" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-19 20:49:41.925 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113185" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113185" Kind="" Label="113185: editor jumps to previous wrong selection when navigating" LastDate="1133546448664" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-19 10:33:55.983 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-36961" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36961" Kind="" Label="36961: [Navigator][Plan Item] Provide a general purpose navigator" LastDate="1138052555783" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-23 11:40:59.551 PST" Dirty="false" Elapsed="305077" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123801" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123801" Kind="" Label="123801: Reminder date popup is duplicated when the combo button is pressed twice" LastDate="1138156635831" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-03 12:21:57.955 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114988" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114988" Kind="" Label="114988: a selected type can fail to show up in the open type list" LastDate="1131418052924" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-16 12:39:51.407 PST" Dirty="false" Elapsed="104549" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123883" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123883" Kind="" Label="123883: In task planner d-n-d does not work for multiple tasks" LastDate="1137444028391" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-19 15:51:42.872 PST" Dirty="false" Elapsed="749178" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116751" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116751" Kind="" Label="116751: Mylar Tests Fail Under Linux" LastDate="1137715732522" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103734" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103734" Kind="" Label="103734: add statistics generation check for phase switch" LastDate="1124995045211" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="2056367" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104873" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104873" Kind="" Label="104873: suppress active search results showing up in package explorer" LastDate="1125005457583" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 11:55:48.265 PDT" Dirty="false" Elapsed="3753301" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110688" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110688" Kind="" Label="110688: active search causes workbench freeze" LastDate="1128113033246" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-11 08:33:02.521 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109251" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109251" Kind="" Label="109251: context is not saved on shutdown or task deactivation" LastDate="1126480322578" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="true" Bugzilla="true" Complete="false" CreationDate="2006-02-16 18:40:51.820 PST" Dirty="false" Elapsed="21373066" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-126775" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126775" Kind="" Label="126775: &gt;fix task archive and category duplication" LastDate="1140232905850" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-06 18:08:45.92 PDT" Dirty="false" Elapsed="2181507" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111866" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111866" Kind="" Label="111866: when a report is submitted, only refresh that report" LastDate="1132624870008" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-20 11:10:47.214 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120499" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120499" Kind="normal" Label="120499: Mylar should make explicitly created resources interesting, and ignore others" LastDate="1140232912730" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-20 15:58:12.906 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117233" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117233" Kind="normal" Label="117233: xml and bugzilla bridges should implement retrieving children" LastDate="1139867271718" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-14 10:17:07.275 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115041" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115041" Kind="normal" Label="115041: Task highlighters look ugly on gtk" LastDate="1139969416537" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-10 11:50:26.670 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-125936" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125936" Kind="normal" Label="125936: add option to activate tasks on open" LastDate="1139867277116" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-31 10:23:35.516 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108487" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108487" Kind="" Label="108487: add object contributions to active views" LastDate="1128046776713" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-25 11:44:09.400 PST" Dirty="false" Elapsed="1253762" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117370" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117370" Kind="" Label="117370: commit set text is not updated when task title is changed" LastDate="1133557772856" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:01:56.989 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119646" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119646" Kind="" Label="119646: Mylar deadlocked eclipse while deleting a file" LastDate="1134060189346" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 11:49:29.898 PDT" Dirty="false" Elapsed="1387152" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109530" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109530" Kind="" Label="109530: all hits opened via Task List could become reports" LastDate="1138169636475" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-21 11:02:05.725 PDT" Dirty="false" Elapsed="46267188" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113386" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113386" Kind="" Label="113386: support viewing of web docs in context" LastDate="1130202930219" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-23 15:15:39.41 PST" Dirty="false" Elapsed="2766841" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124768" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124768" Kind="" Label="124768: Back button broken in the add repository query wizard" LastDate="1138060040245" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-05 12:37:06.72 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119307" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119307" Kind="normal" Label="119307: resources and other moved elements should maintain interest" LastDate="1139867274171" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-16 20:04:56.997 PDT" Dirty="false" Elapsed="3571925" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109816" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109816" Kind="" Label="109816: active search labels blink on every selection" LastDate="1127450562857" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-18 08:34:03.769 PST" Dirty="false" Elapsed="491120" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124321" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124321" Kind="normal" Label="124321: explore making local tasks be a repository" LastDate="1139969416998" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-06 11:06:13.796 PDT" Dirty="false" Elapsed="2254386" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111813" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111813" Kind="" Label="111813: make error interest a preference" LastDate="1129258604866" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-05 12:29:44.777 PST" Dirty="false" Elapsed="17486191" EndDate="" Estimated="1" Handle="https://bugs.eclipse.org/bugs-119301" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119301" Kind="" Label="119301: improve task planner activity period and UI" LastDate="1134690087197" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="951" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104089" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104089" Kind="" Label="104089: on bug change refresh" LastDate="1124994985755" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-12 18:48:16.777 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112424" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112424" Kind="minor" Label="112424: test for failure of non-filtered mode refresh" LastDate="1139867236367" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-08 13:12:31.127 PST" Dirty="false" Elapsed="379412" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119835" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119835" Kind="" Label="119835: Compile eror on latest integration builds" LastDate="1134076568861" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-12 10:18:13.460 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109314" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109314" Kind="normal" Label="109314: auto folding hides annotation matches" LastDate="1139867249686" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-09 10:54:19.457 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118581" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118581" Kind="" Label="118581: All tests failing on shared task folder test" LastDate="1134154633467" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-18 16:10:00.648 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124420" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124420" Kind="" Label="124420: allow task times to be refreshed in editors" LastDate="1138061385589" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-05 20:01:22.484 PDT" Dirty="false" Elapsed="14135329" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111722" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111722" Kind="" Label="111722: reactivating multiple context results in no editors opened" LastDate="1132022966266" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-09 10:55:10.911 PST" Dirty="false" Elapsed="4221393" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119672" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119672" Kind="" Label="119672: No Status set on new bugs created through new Bugtask Wizard" LastDate="1134165750085" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-02 12:05:20.848 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122469" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122469" Kind="enhancement" Label="122469: [performance] create structure bridge cache" LastDate="1139867229678" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-23 10:26:17.146 PST" Dirty="false" Elapsed="1769823" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124224" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124224" Kind="" Label="124224: Allow to edit priorities in the task planner" LastDate="1138061380642" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-23 07:43:46.565 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113471" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113471" Kind="" Label="113471: remove log file functionality" LastDate="1130114103626" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106924" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106924" Kind="" Label="106924: npe when no products are available" LastDate="1124771124678" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-19 21:17:11.226 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113187" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113187" Kind="normal" Label="113187: make content type an extension, not API" LastDate="1139867264077" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-02 10:04:19.808 PST" Dirty="false" Elapsed="1071491" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116488" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116488" Kind="" Label="116488: Priority dropdown in Tasks View behaves incorrectly" LastDate="1134772361485" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-09 15:19:01.310 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109214" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109214" Kind="normal" Label="109214: create active serach UI test harness" LastDate="1139867244118" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-29 12:50:24.605 PST" Dirty="false" Elapsed="229059" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118513" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118513" Kind="" Label="118513: navigator should automatically expand on context activation" LastDate="1136230714959" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-20 14:07:23.534 PDT" Dirty="false" Elapsed="1723173" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113111" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113111" Kind="" Label="113111: JDT failing on open type (ctrl+shit+T)" LastDate="1130537425697" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-04 15:57:43.268 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111540" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111540" Kind="enhancement" Label="111540: add overlay to indicate task completion" LastDate="1139867217160" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 18:27:37.855 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115931" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115931" Kind="" Label="115931: allow customized monitor plugins to specify a version number" LastDate="1138052466054" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102946" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102946" Kind="" Label="102946: provide unified utility for InteractionEvent externalization" LastDate="1124994924116" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="1285688" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107055" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107055" Kind="" Label="107055: Task List Filter" LastDate="1124232070888" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-19 17:51:47.41 PDT" Dirty="false" Elapsed="50173973" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106257" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106257" Kind="" Label="106257: Proposed enhancement: Decouple UBC study" LastDate="1127493660385" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-21 13:04:20.412 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113408" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113408" Kind="" Label="113408: refactor coupling between tasklist, ui, and bugzilla" LastDate="1138041607861" Notes="" Priority="P5" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-06 17:33:53.494 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111864" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111864" Kind="enhancement" Label="111864: make open type history sorting be based on interest" LastDate="1139867218882" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-04 18:30:12.47 PST" Dirty="false" Elapsed="778837" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121448" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121448" Kind="" Label="121448: ConcurrentModificationException when &quot;Updating Change Sets for CVS Workspace&quot;" LastDate="1136592991580" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 18:16:58.654 PDT" Dirty="false" Elapsed="351746" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110991" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110991" Kind="" Label="110991: Shouldn't have to activate a task before choosing a highlighter" LastDate="1127957287806" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-25 13:08:33.679 PST" Dirty="false" Elapsed="7194593" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112593" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112593" Kind="" Label="112593: Problems found by FindBugs" LastDate="1132965949120" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-20 11:31:05.686 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124702" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124702" Kind="normal" Label="124702: [projection] redraw problem with JavaEditor.resetProject()" LastDate="1140115558879" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 08:38:12.177 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119305" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119305" Kind="" Label="119305: cannot find eithics/consent form (.html file)" LastDate="1138052468417" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-07 18:46:08.121 PDT" Dirty="false" Elapsed="10291154" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111388" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111388" Kind="" Label="111388: Add &quot;Link With Editor&quot; button to Active Search view" LastDate="1134761960409" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 08:37:19.580 PDT" Dirty="false" Elapsed="8243956" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110508" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110508" Kind="" Label="110508: Allow drag-n-drop to Active Search to create landmark" LastDate="1127763670149" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-12 12:46:58.553 PDT" Dirty="false" Elapsed="844674" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112374" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112374" Kind="" Label="112374: Mylar fails ungracefully when mozilla is not found" LastDate="1129201817399" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103537" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103537" Kind="" Label="103537: password shows up in query string when internal browser used" LastDate="1124994881665" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 11:12:05.324 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-127135" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=127135" Kind="normal" Label="127135: improve bug search integration" LastDate="1139515114565" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-16 12:29:06.883 PST" Dirty="false" Elapsed="3138419" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121221" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121221" Kind="" Label="121221: Stack traces in Eclipse log" LastDate="1135020566487" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-27 15:58:24.60 PDT" Dirty="false" Elapsed="12167364" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114040" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114040" Kind="enhancement" Label="114040: imporove web docs integration" LastDate="1139867225471" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-14 20:59:58.959 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116369" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116369" Kind="" Label="116369: times are wrong in comments" LastDate="1132105119201" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-16 11:07:08.462 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124011" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124011" Kind="" Label="124011: add support for exporting planner data" LastDate="1138147871879" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-06 19:19:16.210 PST" Dirty="false" Elapsed="10065326" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-119556" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119556" Kind="" Label="119556: fix task list drag and drop" LastDate="1133931011564" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-11 08:36:15.319 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109252" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109252" Kind="" Label="109252: active task not consistently highlighted" LastDate="1126482418232" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="649273" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104783" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104783" Kind="enhancement" Label="104783: landmarks blink on save" LastDate="1139867215107" Notes="" Priority="P4" Reminded="true" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.408 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103235" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103235" Kind="" Label="103235: support monitoring multiple workbench windows" LastDate="1124994874946" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-23 07:24:48.77 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113470" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113470" Kind="enhancement" Label="113470: apply mylar to task list" LastDate="1139867219303" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102668" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102668" Kind="" Label="102668: Provide mailing list statistics in the Committer tools" LastDate="1129688008560" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-27 19:28:58.498 PDT" Dirty="false" Elapsed="1836552" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-113985" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=113985" Kind="" Label="113985: Too much expansion in Package Explorer" LastDate="1130468431219" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.408 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104553" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104553" Kind="" Label="104553: after new report is created via task list, open it" LastDate="1121906604536" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:02:00.694 PST" Dirty="false" Elapsed="5410856" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118584" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118584" Kind="" Label="118584: Mylar task context and change set disagree" LastDate="1134014468601" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-17 08:49:53.754 PDT" Dirty="false" Elapsed="382590" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112812" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112812" Kind="" Label="112812: deactivation doesn't add task to history" LastDate="1138053075470" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-13 18:56:54.580 PST" Dirty="false" Elapsed="4342784" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-120790" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120790" Kind="" Label="120790: recursive editor activation attempt with MyEclipse" LastDate="1134533853759" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 12:06:55.802 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109534" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109534" Kind="" Label="109534: add &quot;remove from this category&quot; action" LastDate="1126846132910" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-24 17:00:28.224 PDT" Dirty="false" Elapsed="5441527" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107459" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107459" Kind="" Label="107459: Deactivate mylar filter in all views on task deactivation" LastDate="1124993586984" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-20 08:23:50.271 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110037" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110037" Kind="normal" Label="110037: find referencing contexts" LastDate="1139867256136" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-30 20:06:13.461 PDT" Dirty="false" Elapsed="135417" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108441" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108441" Kind="normal" Label="108441: make relation providers extension point based" LastDate="1139867244108" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-29 15:23:50.539 PDT" Dirty="false" Elapsed="6230" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-107348" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107348" Kind="major" Label="107348: Mylar should not increase interest when scrolling trough search results" LastDate="1139867234725" Notes="" Priority="P4" Reminded="true" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-04 17:11:32.481 PDT" Dirty="false" Elapsed="3807715" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110511" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110511" Kind="" Label="110511: Dragging from Active search does not work" LastDate="1128474571283" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-28 13:59:07.895 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114254" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114254" Kind="enhancement" Label="114254: create new landmark manipulation icons and fix names" LastDate="1139867279519" Notes="" Priority="P5" Reminded="true" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-30 09:50:19.721 PDT" Dirty="false" Elapsed="233265" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108398" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108398" Kind="" Label="108398: on reactivation of context state appears to be lost" LastDate="1128654257120" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-19 11:29:52.14 PST" Dirty="false" Elapsed="4736409" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121208" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121208" Kind="" Label="121208: Option to open bugzilla task automatically in external browser" LastDate="1136509161747" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-30 10:57:21.474 PDT" Dirty="false" Elapsed="6176261" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108408" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108408" Kind="" Label="108408: don't allow non-existing elements to be landmarks" LastDate="1126839784231" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-05 13:47:31.366 PST" Dirty="false" Elapsed="9910820" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-122795" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=122795" Kind="" Label="122795: Unable to remove tasks from root category" LastDate="1136514758269" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-03 15:11:50.175 PST" Dirty="false" Elapsed="1575775" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114930" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114930" Kind="" Label="114930: support Eclipse 3.2M3" LastDate="1131064042392" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-09 09:50:39.374 PST" Dirty="false" Elapsed="5017180" EndDate="" Estimated="2" Handle="https://bugs.eclipse.org/bugs-119614" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119614" Kind="" Label="119614: support Eclipse 3.2M4" LastDate="1134686110769" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104074" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104074" Kind="" Label="104074: make all Java active search categories one and add drop-downs" LastDate="1121745262596" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="33181410" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106762" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106762" Kind="" Label="106762: add within user analysis of edit ratio" LastDate="1124852156624" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-29 20:03:31.733 PST" Dirty="false" Elapsed="5654594" EndDate="" Estimated="1" Handle="https://bugs.eclipse.org/bugs-118541" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118541" Kind="" Label="118541: mylar is tracking context with no active task" LastDate="1133568236852" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-19 11:29:52.14 PST" Dirty="false" Elapsed="44885" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121329" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121329" Kind="normal" Label="121329: ensure that there are no leaks of Color and Image" LastDate="1140232912740" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-19 11:29:52.14 PST" Dirty="false" Elapsed="81568" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121442" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121442" Kind="normal" Label="121442: Active Search hogs the CPU" LastDate="1140232919800" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106925" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106925" Kind="" Label="106925: error stopping bugzilla plug-in" LastDate="1124771118279" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="2182809" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103288" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103288" Kind="" Label="103288: &quot;close all editors&quot; not closing all" LastDate="1121884443786" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-27 18:04:28.948 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114048" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114048" Kind="" Label="114048: new bug wizard blank when no bugzilla credentials set" LastDate="1138049265211" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-16 11:18:16.242 PDT" Dirty="false" Elapsed="2968359" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109783" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109783" Kind="" Label="109783: provide indication of whether task has context" LastDate="1138053070533" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-19 16:49:46.631 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124567" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124567" Kind="" Label="124567: task description get truncated on save" LastDate="1137784331875" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-11-20 12:54:53.400 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-117225" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=117225" Kind="" Label="117225: periodic &quot;SWTError: No more handles&quot; error" LastDate="1133546533326" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 19:17:03.408 PDT" Dirty="false" Elapsed="621484" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-111021" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=111021" Kind="" Label="111021: NPE in TaskSummaryEditor.addLinkToTable" LastDate="1129564720922" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-26 12:53:38.685 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110711" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110711" Kind="" Label="110711: add support for eclipse 3.2 problem filters" LastDate="1132014458600" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-29 16:50:57.786 PDT" Dirty="false" Elapsed="31866" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123" Kind="" Label="123: Synchronize View: files nodes in tree should provide replace with action (1GEPBKL)" LastDate="1128037857786" Notes="" Priority="P5" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.438 PST" Dirty="false" Elapsed="2332915" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102662" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102662" Kind="" Label="102662: create summary statistics for perspective usage" LastDate="1138052471041" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-10 13:49:06.255 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123330" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123330" Kind="normal" Label="123330: temporarily unfiltered nodes stick if not selected" LastDate="1140232919800" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-01-09 08:50:33.774 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-123120" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=123120" Kind="enhancement" Label="123120: create full-screen screenshots of Mylar usage" LastDate="1139867232552" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-28 17:14:50.263 PDT" Dirty="false" Elapsed="7785777" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-110957" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=110957" Kind="" Label="110957: Crashes, slowness in XML outline" LastDate="1128137750017" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.418 PST" Dirty="false" Elapsed="1022350" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104526" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104526" Kind="" Label="104526: make highlighters and clear context action use task list extension points" LastDate="1121906627809" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-14 11:50:29.244 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106862" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106862" Kind="" Label="106862: use task description as comments in CVS commit" LastDate="1131570377036" Notes="" Priority="P2" Reminded="true" ReminderDate="2005-09-20 09:37:29.433 PDT" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-15 11:11:42.135 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109643" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109643" Kind="normal" Label="109643: improve active search invalidation for calls" LastDate="1139867253141" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-16 19:08:54.375 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121309" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121309" Kind="normal" Label="121309: improve monitor upload facility" LastDate="1140232919620" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 11:20:18.877 PDT" Dirty="false" Elapsed="700272" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106938" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106938" Kind="" Label="106938: Implement &quot;new&quot; marker for Bugzilla query" LastDate="1126551484625" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 09:47:52.392 PDT" Dirty="false" Elapsed="74286824" EndDate="" Estimated="4" Handle="https://bugs.eclipse.org/bugs-109311" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109311" Kind="" Label="109311: migrate folding to 3.2M3 APIs" LastDate="1137725796794" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-09-15 14:23:01.261 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109678" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109678" Kind="normal" Label="109678: create mylar perspectives" LastDate="1139867253231" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-12 19:08:21.53 PDT" Dirty="false" Elapsed="3731636" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109348" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109348" Kind="" Label="109348: streamline date chooser" LastDate="1126581986571" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-21 18:39:40.130 PST" Dirty="false" Elapsed="2049888" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-116535" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116535" Kind="" Label="116535: Bugzilla Editor shows incorrect time for comments" LastDate="1132630244116" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-13 17:32:30.795 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115795" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115795" Kind="" Label="115795: Predicted interest of errors not showing errors" LastDate="1132619758398" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-03 20:21:05.356 PST" Dirty="false" Elapsed="498822" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-115018" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115018" Kind="" Label="115018: integrate web browser for Bugzilla reports" LastDate="1131079718403" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-19 11:29:52.14 PST" Dirty="false" Elapsed="222633" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121333" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121333" Kind="" Label="121333: Highlighter colour selection dialog doesn't use current value" LastDate="1136564220957" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-05 14:50:07.43 PST" Dirty="false" Elapsed="1514363" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118885" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118885" Kind="" Label="118885: Decouple task list and context reading from Eclipse" LastDate="1134068245580" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-102689" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102689" Kind="" Label="102689: control enablement of Mylar actions" LastDate="1124995008858" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-12 16:28:59.788 PDT" Dirty="false" Elapsed="58190273" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112233" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112233" Kind="normal" Label="112233: [improve interaction for filtered element navigation" LastDate="1140232909145" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-01 08:43:24.188 PST" Dirty="false" Elapsed="5742920" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114562" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114562" Kind="" Label="114562: add basic support for Bugzilla 2.20" LastDate="1131078198688" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-13 14:47:38.282 PDT" Dirty="false" Elapsed="38612266" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112563" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112563" Kind="" Label="112563: create html structure bridge to track URL navigation" LastDate="1129833854989" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-09-11 16:15:06.783 PDT" Dirty="false" Elapsed="373657" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-109261" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109261" Kind="" Label="109261: offline reports pops up repeatedly" LastDate="1126485997969" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="0" EndDate="2005-08-22 18:29:00.0 PDT" Estimated="0" Handle="https://bugs.eclipse.org/bugs-79112" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=79112" Kind="normal" Label="79112: [1.5] [model] accessing annotation on Java elements" LastDate="1140115547292" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-08-25 15:57:14.377 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-108067" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108067" Kind="normal" Label="108067: when activating a new report automatically populate context with stack" LastDate="1139867243367" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-31 11:28:45.241 PST" Dirty="false" Elapsed="30527875" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114401" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114401" Kind="" Label="114401: support creating new web linked tasks via drag-and-drop" LastDate="1137632099839" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-13 12:00:52.496 PDT" Dirty="false" Elapsed="8720224" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-106935" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106935" Kind="enhancement" Label="106935: [discussion] add provider for Visualizer" LastDate="1139867121732" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-10-31 10:32:52.101 PST" Dirty="false" Elapsed="2157889" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-114388" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114388" Kind="" Label="114388: create phoenix based web site" LastDate="1130961223680" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="11007777" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-105516" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=105516" Kind="" Label="105516: package explorer shows nothing upon eclipse startup unless mylar task list is active" LastDate="1134708966282" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-16 09:12:23.347 PST" Dirty="false" Elapsed="4080771" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-121238" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=121238" Kind="" Label="121238: fix overdue filtering and and enable dismissing tasks" LastDate="1134764209963" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-08-25 07:13:33.826 PDT" Dirty="false" Elapsed="7100" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-82730" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=82730" Kind="" Label="82730: investigate incomplete class index when using 1.5" LastDate="1124979213826" Notes="" Priority="P2" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-103237" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103237" Kind="" Label="103237: provide mechanism to back up all task scapes, tasklist etc." LastDate="1124995043027" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-16 11:20:59.780 PST" Dirty="false" Elapsed="6014026" EndDate="2006-02-16 19:14:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-128259" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128259" Kind="enhancement" Label="128259: Mylar Task List should expand tree to show tasks with active contexts" LastDate="1140117766213" Notes="" Priority="P3" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-14 18:07:09.442 PDT" Dirty="false" Elapsed="6755653" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-112721" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112721" Kind="normal" Label="112721: handle interest level for type refactorings and element deletion" LastDate="1139867262204" Notes="" Priority="P4" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="179808" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-105097" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=105097" Kind="" Label="105097: add back/forward buttons to task list" LastDate="1124995040554" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-12-02 10:04:59.635 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118007" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118007" Kind="enhancement" Label="118007: Ability to selectively add resources (files/folders) to context" LastDate="1140232909135" Notes="" Priority="P2" Reminded="true" ReminderDate="" offlineSyncState="INCOMING"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-11-30 11:19:55.331 PST" Dirty="false" Elapsed="1716919" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-118478" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118478" Kind="" Label="118478: editor reopened on &quot;clear task context action&quot;" LastDate="1133556006206" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2005-10-06 10:04:07.728 PDT" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-88293" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=88293" Kind="enhancement" Label="88293: [misc] Extension-Point for HyperlinkDetectors" LastDate="1140115547282" Notes="" Priority="P3" Reminded="false" ReminderDate="2006-02-21 06:00:00.0 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-01-18 10:57:26.241 PST" Dirty="false" Elapsed="9959567" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-124349" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124349" Kind="" Label="124349: package proposals should not be on top of type list" LastDate="1137781958643" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2005-12-07 14:30:27.428 PST" Dirty="false" Elapsed="3736022" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-104691" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=104691" Kind="" Label="104691: make collectors support csv export and user id mapping" LastDate="1121970079747" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/></BugzillaTaskRegistryCategory><JiraTaskRegistryCategory/><TaskCategory Name="Active"><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-12 07:39:24.172 PDT" Elapsed="2487076" EndDate="2005-09-12 08:21:19.529 PDT" Estimated="0" Handle="task-103783" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-21 19:28:38.76 PDT" Elapsed="1471157" EndDate="2005-09-26 13:16:31.189 PDT" Estimated="0" Handle="task-103793" IssueURL="" Kind="" Label="ensure active search re-runs after activation" Notes="" Priority="P2" Reminded="true" ReminderDate="2005-09-27 08:36:01.568 PDT"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-06 16:20:23.964 PDT" Elapsed="172759" EndDate="2005-10-06 17:50:04.861 PDT" Estimated="0" Handle="task-103827" IssueURL="" Kind="" Label="SET REDRAW on active views" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-06 16:38:56.944 PDT" Elapsed="122486" EndDate="2005-10-06 19:54:50.905 PDT" Estimated="0" Handle="task-103828" IssueURL="" Kind="" Label="RAISE children fails to lower" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-06 18:55:44.35 PDT" Elapsed="6105697" EndDate="2005-10-07 17:19:34.503 PDT" Estimated="0" Handle="task-103829" IssueURL="" Kind="" Label="suppress docs from active search" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-07 08:46:33.70 PDT" Elapsed="910131" EndDate="2005-10-07 15:41:38.3 PDT" Estimated="0" Handle="task-103831" IssueURL="" Kind="" Label="long: active search refresh" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-07 09:09:44.174 PDT" Elapsed="0" EndDate="2005-10-07 15:41:36.30 PDT" Estimated="0" Handle="task-103832" IssueURL="" Kind="" Label="problems list refresh fails" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-07 18:04:21.636 PDT" Elapsed="233817" EndDate="2005-10-07 19:41:26.793 PDT" Estimated="0" Handle="task-103834" IssueURL="" Kind="" Label="can't increment landmark interest with keys" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-07 20:36:55.319 PDT" Elapsed="0" EndDate="2005-10-13 04:05:24.368 PDT" Estimated="0" Handle="task-103836" IssueURL="" Kind="" Label="make active search linking stick" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-10-07 16:57:21.956 PDT" Elapsed="0" EndDate="" Estimated="0" Handle="task-103833" IssueURL="" Kind="" Label="content type for Ant nodes is blank" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-02-19 15:06:11.64 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-07 21:32:47.785 PDT" Elapsed="346981" EndDate="2005-10-11 12:56:33.499 PDT" Estimated="0" Handle="task-103837" IssueURL="" Kind="" Label="active search refresh only after click" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-19 06:01:24.114 PDT" Elapsed="0" EndDate="2005-10-20 13:00:24.992 PDT" Estimated="0" Handle="task-103853" IssueURL="" Kind="" Label="refresh whole explorer on task deactivation" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-18 16:50:23.150 PDT" Elapsed="0" EndDate="2005-10-20 12:59:59.185 PDT" Estimated="0" Handle="task-103852" IssueURL="" Kind="" Label="ensure that Ian is on contributors list" Notes="" Priority="P1" Reminded="true" ReminderDate="2005-10-20 16:50:19.595 PDT"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-19 08:36:29.97 PDT" Elapsed="600624" EndDate="2005-12-02 13:30:13.700 PST" Estimated="0" Handle="task-103855" IssueURL="" Kind="" Label="update presentations" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-21 06:02:47.306 PDT" Elapsed="911" EndDate="2005-10-27 17:58:59.995 PDT" Estimated="0" Handle="task-103858" IssueURL="" Kind="" Label="fix refactoring test" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-26 08:42:59.949 PDT" Elapsed="0" EndDate="2005-10-27 17:59:13.444 PDT" Estimated="0" Handle="task-103861" IssueURL="http://" Kind="" Label="fix error interest test" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-26 11:07:46.899 PDT" Elapsed="282566" EndDate="2005-10-26 11:15:36.845 PDT" Estimated="0" Handle="task-103862" IssueURL="http://" Kind="" Label="remove blank elements from active search views" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-25 16:43:17.340 PDT" Elapsed="7155866" EndDate="2005-10-27 19:22:12.224 PDT" Estimated="0" Handle="task-103860" IssueURL="http://" Kind="" Label="fix up planning game wizard" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-26 14:10:42.552 PDT" Elapsed="179598" EndDate="2005-10-27 15:52:13.157 PDT" Estimated="0" Handle="task-103863" IssueURL="http://" Kind="" Label="don't show monitor warning if there isn't an extension" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-28 18:22:46.321 PDT" Elapsed="517857" EndDate="2005-10-31 10:31:06.645 PST" Estimated="0" Handle="task-103864" IssueURL="http://" Kind="" Label="fix minor nits" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-14 19:20:07.734 PST" Elapsed="412679" EndDate="2005-11-14 19:49:57.728 PST" Estimated="0" Handle="task-103882" IssueURL="http://" Kind="" Label="3.1 migration" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-14 21:55:04.502 PST" Elapsed="0" EndDate="2005-11-15 10:09:41.723 PST" Estimated="0" Handle="task-103883" IssueURL="http://" Kind="" Label="update flash videos in docs" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-15 12:49:32.344 PST" Elapsed="0" EndDate="2005-11-15 19:37:17.377 PST" Estimated="0" Handle="task-103884" IssueURL="" Kind="" Label="add FAQ entry about Java 5 failure" Notes="java.lang.NoSuchMethodError:&#13;&#10;org.eclipse.ui.internal.dialogs.FilteredTree.getFilterControl()Lorg/eclipse/swt/widgets/Text;&#13;&#10;at&#13;&#10;org.eclipse.mylyn.tasklist.ui.views.TaskListContentProvider.applyFilter(TaskListContentProvider.java:90)" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-15 14:42:47.886 PST" Elapsed="0" EndDate="2005-11-15 18:44:06.969 PST" Estimated="0" Handle="task-103886" IssueURL="http://" Kind="" Label="ping Make about status" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-15 17:33:00.634 PST" Elapsed="750615" EndDate="2005-11-15 19:37:10.16 PST" Estimated="0" Handle="task-103889" IssueURL="http://" Kind="" Label="add faq entry on bad eclipse version" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-16 19:33:05.434 PST" Elapsed="364774" EndDate="2005-11-20 17:06:55.303 PST" Estimated="0" Handle="task-103891" IssueURL="http://" Kind="" Label="multiple of same change set can appear" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-21 19:37:14.307 PST" Elapsed="12037" EndDate="2005-11-21 20:20:43.869 PST" Estimated="0" Handle="task-103895" IssueURL="http://" Kind="" Label="add preference for number of editors to open" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-25 13:34:26.502 PST" Elapsed="0" EndDate="2005-12-02 11:52:21.218 PST" Estimated="0" Handle="task-103905" IssueURL="http://" Kind="" Label="check on quality of hashcode method on InteractionEvent" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-29 13:18:58.489 PST" Elapsed="0" EndDate="2005-11-29 13:24:12.561 PST" Estimated="0" Handle="task-103906" IssueURL="http://" Kind="" Label="abstract tests should not be part of suite" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-30 13:08:46.963 PST" Elapsed="0" EndDate="2005-12-01 17:59:13.932 PST" Estimated="0" Handle="task-103909" IssueURL="http://" Kind="" Label="fix planner UI" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-01 18:35:25.275 PST" Elapsed="0" EndDate="2005-12-02 11:52:59.403 PST" Estimated="0" Handle="task-103913" IssueURL="http://eclipse.org/mylar/" Kind="" Label="if change set is blank, change goes outside" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-02 13:56:37.558 PST" Elapsed="0" EndDate="2005-12-02 16:38:11.716 PST" Estimated="0" Handle="task-103914" IssueURL="http://" Kind="" Label="after all resources committed failure changes to change set" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-05 17:18:17.847 PST" Elapsed="4115719" EndDate="2005-12-06 19:20:14.253 PST" Estimated="0" Handle="task-103917" IssueURL="http://" Kind="" Label="re-dragging a task to a category should not re-add it" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-08 11:34:55.85 PST" Elapsed="2323815" EndDate="2005-12-08 12:08:41.362 PST" Estimated="0" Handle="task-103923" IssueURL="http://" Kind="" Label="make bugzilla bridge open local report" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-09 14:54:01.417 PST" Elapsed="0" EndDate="2005-12-12 17:20:37.520 PST" Estimated="0" Handle="task-103925" IssueURL="http://eclipse.org/mylar/doc/faq.html#install-failure" Kind="" Label="create docs section on site" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-09 18:31:55.517 PST" Elapsed="4878811" EndDate="2005-12-09 19:43:45.374 PST" Estimated="0" Handle="task-103926" IssueURL="http://" Kind="" Label="fix schitzophrenia between task context paths and contexts" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-14 15:29:05.912 PST" Elapsed="611011" EndDate="2005-12-16 12:09:52.92 PST" Estimated="0" Handle="task-103930" IssueURL="http://" Kind="" Label="active task fails to go bold on startup" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-15 18:27:22.88 PST" Elapsed="7417485" EndDate="2006-01-23 15:04:49.117 PST" Estimated="3" Handle="task-103932" IssueURL="http://" Kind="" Label="long: task list modularity" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-16 10:00:42.536 PST" Elapsed="335243" EndDate="2005-12-16 12:28:41.86 PST" Estimated="0" Handle="task-103934" IssueURL="http://" Kind="" Label="cell editor on planner sets values to -1 when not edited" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-16 19:24:27.697 PST" Elapsed="0" EndDate="2006-02-08 21:30:40.536 PST" Estimated="0" Handle="task-103936" IssueURL="http://" Kind="" Label="fix FAQ rendering in MSIE" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-01-25 15:05:17.648 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-21 17:18:42.705 PST" Elapsed="250309" EndDate="2005-12-26 11:15:03.345 PST" Estimated="0" Handle="task-103940" IssueURL="http://" Kind="" Label="make package go red when overdue task is in it" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-12-26 11:15:56.201 PST" Elapsed="142393111" EndDate="" Estimated="0" Handle="task-103941" IssueURL="" Kind="" Label="long: rcp app packaging" Notes="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/winxpicons.asp" Priority="P5" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-27 11:59:23.585 PST" Elapsed="0" EndDate="2006-02-08 21:30:44.61 PST" Estimated="0" Handle="task-103943" IssueURL="http://" Kind="" Label="adopt new mailing list doc convention" Notes=" This message is to inform all committers of upcoming changes to the newsgroup and mailing list pages on the eclipse.org website. With the move to the new design these pages will become more data driven which will result in a new option for you all.&#13;&#10;&#13;&#10;At this time the descriptions of the various newsgroups and mailing lists are statically set and you must send in a request to us for it to be changed. The update will allow each individual project to change it's description paragraph at will.&#13;&#10;&#13;&#10;What will you need to do in order to use this feature? That's easy, in the new 'project-info' directory that you have created in the top level of your web sites just insert two plain text files named 'newsgroup' and 'maillist'. The format of these files is the same and follows the following format:&#13;&#10;&#13;&#10;::name::description&#13;&#10;::name::description&#13;&#10;&#13;&#10;So and example of a newsgroup entry for say the BPEL newsgroup would be:&#13;&#10;&#13;&#10;::eclipse.technology.bpel-designer::The &lt;a href=&quot;http://www.eclipse.org/bpel&quot;&gt;BPEL Designer Editor project&lt;/a&gt; will add comprehensive support to Eclipse for the definition, editing, deploying, testing, and debugging of WS-BPEL processes (Business Process Execution Language for Web Services) in vendor neutral environments. The implementation will be extensible to third-party vendors so that runtime implementations could integrate seamlessly to the design/build/deploy/test cycle and integrate specific domain WS-BPEL constructs and extension.&#13;&#10;&#13;&#10;You can add as many newsgroups or mailing lists as you like, as long as each entry has the same format.&#13;&#10;&#13;&#10;Each time the newsgroup or mailing list pages are requested the software checks to see if these files exist, and if they do then the contents are loaded into the page. If the files cannot be found then the newsgroups and mailing lists for that project will not be included on the respective web pages.&#13;&#10;&#13;&#10;These changes will go into effect for the news pages on the 30th of December&#13;&#10;&#13;&#10;If you have any questions about these changes contact contact me.&#13;&#10;" Priority="P5" Reminded="true" ReminderDate="2006-01-26 11:59:14.643 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-28 08:07:25.289 PST" Elapsed="1172217" EndDate="2005-12-28 08:37:21.272 PST" Estimated="0" Handle="task-103944" IssueURL="" Kind="" Label="minor tasklit refactoring" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-30 07:55:04.376 PST" Elapsed="745851" EndDate="2006-01-04 18:29:16.497 PST" Estimated="0" Handle="task-103945" IssueURL="" Kind="" Label="does &quot;mark incomplete&quot; fail to color?" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-31 06:55:16.161 PST" Elapsed="790263" EndDate="2005-12-31 07:51:51.604 PST" Estimated="0" Handle="task-103946" IssueURL="http://" Kind="" Label="update j2se-1.5 compliance settings" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-03 13:08:31.670 PST" Elapsed="0" EndDate="" Estimated="0" Handle="task-103947" IssueURL="http://" Kind="" Label="add automatic option configuration for browser mod..." Notes="- turn on automatic workspace refresh&#13;&#10;- perspective bar to top right&#13;&#10;- new (not traditional) tabs&#13;&#10;- " Priority="P5" Reminded="true" ReminderDate="2006-02-19 15:40:23.992 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-05 15:54:23.21 PST" Elapsed="0" EndDate="" Estimated="0" Handle="task-103948" IssueURL="http://" Kind="" Label="interest filter fails on extensions page" Notes="java.lang.RuntimeException: null bridge for object: class org.eclipse.pde.internal.ui.editor.plugin.ExtensionsPage&#13;&#10;&#9;at org.eclipse.mylyn.core.MylarPlugin$1.getHandleIdentifier(ContextCorePlugin.java:83)&#13;&#10;&#9;at org.eclipse.mylyn.ui.InterestFilter.select(InterestFilter.java:62)&#13;&#10;&#9;at org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51)&#13;&#10;&#9;at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:794)&#13;&#10;&#9;at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:905)&#13;&#10;&#9;at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:1720)&#13;&#10;&#9;at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1274)&#13;&#10;&#9;at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1251)&#13;&#10;&#9;at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1207)&#13;&#10;&#9;at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1291)&#13;&#10;&#9;at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1201)&#13;&#10;&#9;at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1289)&#13;&#10;&#9;at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1246)&#13;&#10;&#9;at org.eclipse.mylyn.ui.MylarViewerManager.internalRefresh(MylarViewerManager.java:150)&#13;&#10;&#9;at org.eclipse.mylyn.ui.MylarViewerManager.access$0(MylarViewerManager.java:138" Priority="P5" Reminded="true" ReminderDate="2006-02-11 19:03:57.612 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-05 18:34:13.786 PST" Elapsed="827119" EndDate="" Estimated="0" Handle="task-103949" IssueURL="http://" Kind="" Label="suggest Eclipse API changes" Notes="To do&#13;&#10;- Package Explorer collapse suppression&#13;&#10;- content assist selection listener&#13;&#10;- PDE viewer accessibility&#13;&#10;- type history extensibility&#13;&#10;- decorator job priority: problem is that if a decorator makes elements in explorer bold, and markers change, there is a 1-2 second blink&#13;&#10;&#13;&#10;Done&#13;&#10;- expose resolveMember on MemberProposalInfo&#13;&#10;- strikethru for SWT widgets&#13;&#10;- filtered tree should refresh when filtered&#13;&#10;- folding updater&#13;&#10;&#13;&#10;&#13;&#10;" Priority="P5" Reminded="true" ReminderDate="2006-01-15 18:34:10.642 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-06 14:47:38.551 PST" Elapsed="1282688" EndDate="2006-01-06 14:51:45.626 PST" Estimated="0" Handle="task-103951" IssueURL="http://" Kind="" Label="mark complete fails to filter" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-11 07:53:38.612 PST" Elapsed="278089" EndDate="2006-01-23 12:10:27.854 PST" Estimated="0" Handle="task-103955" IssueURL="http://" Kind="" Label="add rename action to list?" Notes="" Priority="P3" Reminded="true" ReminderDate="2006-01-22 09:33:08.744 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-12 21:29:41.33 PST" Elapsed="0" EndDate="2006-01-13 09:33:00.863 PST" Estimated="0" Handle="task-103957" IssueURL="http://" Kind="" Label="fix bug hit handles" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-13 10:12:13.431 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103958" IssueURL="http://" Kind="" Label="wizard dialogs should have titles" Notes="" Priority="P5" Reminded="false" ReminderDate="2006-02-20 11:00:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-13 11:16:45.146 PST" Elapsed="299502" EndDate="2006-01-13 11:30:48.398 PST" Estimated="0" Handle="local-103959" IssueURL="http://" Kind="" Label="streamline migration" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-13 13:55:16.62 PST" Elapsed="1829370" EndDate="2006-01-13 15:27:32.973 PST" Estimated="0" Handle="local-103961" IssueURL="http://" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-13 14:27:25.406 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103962" IssueURL="http://" Kind="" Label="re-eanble BugzillaSearchPluginTest" Notes="" Priority="P5" Reminded="false" ReminderDate="2006-02-26 14:27:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-13 16:26:41.95 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103963" IssueURL="" Kind="" Label="report won't open if another with same id is open" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-02-19 16:26:38.371 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-13 16:46:44.736 PST" Elapsed="27718" EndDate="2006-01-13 17:41:05.565 PST" Estimated="0" Handle="local-103964" IssueURL="http://" Kind="" Label="active context not cleared on deactivation" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-16 08:06:29.655 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103965" IssueURL="http://eclipse-plugins.2y.net/eclipse/plugin_details.jsp?id=1225" Kind="" Label="check on Eclipse plug-ins listing of Mylar" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-02-27 14:00:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-16 16:50:55.378 PST" Elapsed="17986" EndDate="2006-01-18 17:44:25.36 PST" Estimated="0" Handle="local-103967" IssueURL="http://" Kind="" Label="fix links in release docs" Notes="" Priority="P2" Reminded="true" ReminderDate="2006-01-16 16:50:53.225 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-16 16:57:17.568 PST" Elapsed="14520" EndDate="2006-01-18 17:14:05.837 PST" Estimated="0" Handle="local-103968" IssueURL="http://" Kind="" Label="check in project formatting settings, and format all files" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-17 14:42:34.27 PST" Elapsed="155114" EndDate="2006-01-17 15:13:08.264 PST" Estimated="0" Handle="local-103970" IssueURL="http://" Kind="" Label="ensure that category is not colored red if overdue tasks are completed" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-19 16:15:57.513 PST" Elapsed="1568787" EndDate="2006-01-24 18:07:28.962 PST" Estimated="0" Handle="local-103971" IssueURL="http://" Kind="" Label="update copyrights to 2006" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-01-20 11:00:59.717 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-19 19:02:57.371 PST" Elapsed="967502" EndDate="2006-01-20 11:56:41.584 PST" Estimated="0" Handle="local-103972" IssueURL="http://" Kind="" Label="fix TaskDataExport test" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-20 11:54:27.441 PST" Elapsed="839233" EndDate="2006-01-23 09:21:41.860 PST" Estimated="0" Handle="local-103973" IssueURL="http://" Kind="" Label="review auto content assist activation problem" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-01-22 21:15:54.573 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-23 12:19:29.553 PST" Elapsed="254286" EndDate="2006-01-23 12:24:55.592 PST" Estimated="0" Handle="local-103974" IssueURL="http://" Kind="" Label="support multiple removals" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-22 15:33:56.647 PST" Elapsed="0" EndDate="2006-01-23 14:53:03.342 PST" Estimated="0" Handle="task-103897" IssueURL="http://dev.eclipse.org/mhonarc/lists/platform-ui-dev/msg02693.html" Kind="" Label="long: consider working set overlap" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-26 14:49:21.158 PDT" Elapsed="65054" EndDate="" Estimated="0" Handle="task-103805" IssueURL="" Kind="" Label="long: docs" Notes="" Priority="P5" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-11-09 08:31:36.558 PST" Elapsed="0" EndDate="" Estimated="0" Handle="task-103881" IssueURL="http://blog.enargi.com/programming/eclipse/eclipse-tips-external-plugin-directory/" Kind="" Label="long: eclipse configuration" Notes="extension directory setup:&#13;&#10;&#9;http://blog.enargi.com/programming/eclipse/eclipse-tips-external-plugin-directory/&#13;&#10;&#13;&#10;" Priority="P5" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-27 10:19:07.947 PDT" Elapsed="616527" EndDate="" Estimated="0" Handle="task-103806" IssueURL="" Kind="" Label="long: improve conent assist" Notes="" Priority="P5" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-11-23 20:03:18.841 PST" Elapsed="33790" EndDate="" Estimated="0" Handle="task-103903" IssueURL="http://" Kind="" Label="long: release messages" Notes="0.5.0&#13;&#10;- Tom Eicher and Daniel Megert for extensibility improvements in editor folding support&#13;&#10;&#13;&#10;0.4.8&#13;&#10;- Brock for improving multi-repository wizards&#13;&#10;- Brock and Eugene's ideas on task list architecture&#13;&#10;- Eugene's idea for completion bar on categories&#13;&#10;&#13;&#10;0.4.7&#13;&#10;- upgrade&#13;&#10; - after starting, open repositories view, add repository if not there, ensure correct&#13;&#10; - restart Eclipse, query categories should show up and contexts have been migrated&#13;&#10; - restart again to see tasks in query matches.&#13;&#10;- Eugene had a good idea for avoiding inducing interest on newly checked out projects&#13;&#10;- David Bari and Tomasz Smietanka: set up test bugzilla server for encodings&#13;&#10;- Brock: elegant solution to fix lazy loading of image registry, 3.2M4 detective work and fixes, highlighter fix&#13;&#10;- Rob: drag-and-drop tasks, external browser&#13;&#10;&#13;&#10;0.4.6&#13;&#10;- Brock's XML SAX externalization contribution&#13;&#10;- performance of content assist&#13;&#10;- Alexander Staubo provided useful video&#13;&#10;&#13;&#10;0.4.5&#13;&#10;- back up your task lists (support revamped, now more extensible, etc)&#13;&#10; - restore default directory before upgrading, then can copy back&#13;&#10;- Felix Knecht helped proided instructions for how to patch a bugzilla bug issue&#13;&#10;- Leah &amp; Suzanne's monitor stuff?&#13;&#10;- issue tracker discussion &#13;&#10;- brock for patch of tasklist schema and integration build fix&#13;&#10;&#13;&#10;0.4.4:&#13;&#10;- Igor Fedorenko provide a patch for an NPE in the Java Problem Listener&#13;&#10;- Vote for Mylar talk&#13;&#10;- Ian's bugzilla patch&#13;&#10;- watch for resources added to context in Error Log?&#13;&#10;- Wes added support for in-progress tasks on the planner, hard work on task list backup and improving timing." Priority="P5" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-23 14:23:14.908 PDT" Elapsed="3722185" EndDate="" Estimated="0" Handle="task-103798" IssueURL="" Kind="" Label="long: ui issues" Notes="" Priority="P5" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-15 15:04:04.653 PDT" Elapsed="16549725" EndDate="2005-09-19 16:28:29.52 PDT" Estimated="0" Handle="task-103788" IssueURL="" Kind="" Label="long: usage analysis" Notes="Kevin suggests running both a t-test and a wilcoxon because the wilcoxon makes less assumptions. The T-test should have normal data fed into it. He suggests just eyeballing it and doing the log trick as reasonable ways to meet that criteria.&#13;&#10;&#13;&#10;Problem: people leaving Mylar active and not using it&#13;&#10;&#13;&#10;To do by next meet:&#13;&#10;- JUST JAVA&#13;&#10;- CONSIDER JUST HOURS&#13;&#10;&#13;&#10;- shared vs. unique task content coverage&#13;&#10;- average number of selections before edit, do runs of selections get shorter? average length of a run, baseline vs. active tasks in mylar [do it based on view, not editor selections]&#13;&#10;&#13;&#10;Misc:&#13;&#10;- number of unique elements in each context&#13;&#10;- three kinds of baseline stats?&#13;&#10;- not doing: number of tasks,time mylar active (not determinable, since they could be doing something else, base on selections)&#13;&#10;- filters used in navigator/explorer&#13;&#10;- figure out how many landmarks they have&#13;&#10;- correlate additional information for accepted users (questionnaires, etc, tasks peformed)&#13;&#10;- could discard first n events of usage&#13;&#10;- buckets for individual users" Priority="P5" Reminded="true" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-11-08 13:03:53.156 PST" Elapsed="505994160" EndDate="2006-01-16 11:26:34.181 PST" Estimated="0" Handle="task-103879" IssueURL="http://" Kind="" Label="long: web site update" Notes="&#13;&#10;&#13;&#10;download&#13;&#10;- General Eclipse.org newsgroup information:&#13;&#10;http://www.eclipse.org/newsgroups/index.php&#13;&#10;&#13;&#10;about:&#13;&#10;- Mylar: A Task Focused UI for Eclipse.&#13;&#10;- mention Eclipse's openness and extensibility?&#13;&#10;&#13;&#10;Using Mylar simply requires the user to identify the task-at-hand, Mylar then forms a context for that task by monitoring the user's activity.&#13;&#10;&#13;&#10;dev&#13;&#10;- add note to dev page on connecting to eclispe.org ...&#13;&#10;&#13;&#10;from Gail: i.e., the current focus is on determing which existing features are working well and adding new innovative features ... Just to give the sense that you aren't interested in support 1.4, etc." Priority="P5" Reminded="true" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-12 12:27:21.441 PDT" Elapsed="0" EndDate="" Estimated="0" Handle="task-103784" IssueURL="" Kind="" Label="re-enable ResultUpdaterTest" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-02-12 17:59:16.827 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-16 19:47:54.406 PDT" Elapsed="188381" EndDate="" Estimated="0" Handle="task-103792" IssueURL="" Kind="" Label="re-enable test in BugzillaStackTraceTest" Notes="" Priority="P5" Reminded="false" ReminderDate="2006-02-26 08:36:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2005-09-28 18:27:30.673 PDT" Elapsed="0" EndDate="" Estimated="0" Handle="task-103811" IssueURL="" Kind="" Label="submit bug: generating getters/setters can fail to..." Notes="" Priority="P5" Reminded="false" ReminderDate="2006-02-21 08:36:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-12 19:27:55.902 PST" Elapsed="1751918" EndDate="2006-02-08 21:32:32.848 PST" Estimated="1" Handle="task-103929" IssueURL="http://www.eclipse.org/projects/dev_process/project-status-infrastructure.php" Kind="" Label="update to new project web site format" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-01-25 14:00:49.425 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-23 17:27:07.574 PST" Elapsed="0" EndDate="2006-01-24 17:58:34.683 PST" Estimated="0" Handle="local-103975" IssueURL="http://" Kind="" Label="migrate test naming convention" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-24 11:21:34.338 PST" Elapsed="1300643" EndDate="2006-01-24 17:58:41.73 PST" Estimated="0" Handle="local-103976" IssueURL="http://" Kind="" Label="refactor packages to internal naming convention" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-24 16:00:54.852 PST" Elapsed="247977" EndDate="2006-01-24 16:07:57.630 PST" Estimated="0" Handle="local-103979" IssueURL="http://" Kind="" Label="make folding toggle enable folding" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-01-24 17:58:59.780 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103980" IssueURL="http://" Kind="" Label="fix BugzillaCustomQueryCategory wierdness" Notes="" Priority="P5" Reminded="true" ReminderDate="2006-02-12 21:37:05.189 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-25 10:42:28.455 PST" Elapsed="0" EndDate="2006-02-15 11:03:07.431 PST" Estimated="0" Handle="local-103983" IssueURL="http://" Kind="" Label="make bug reports open with progress" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-09 19:00:33.879 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-02-08 21:19:58.232 PST" Elapsed="2037357" EndDate="2006-02-09 14:38:49.841 PST" Estimated="0" Handle="local-103984" IssueURL="http://" Kind="" Label="fix failing externalization test" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><BugzillaReport Active="false" Bugzilla="true" Complete="true" CreationDate="2006-02-09 14:22:59.134 PST" Dirty="false" Elapsed="1669493" EndDate="2006-02-16 00:43:00.0 PST" Estimated="0" Handle="https://bugs.eclipse.org/bugs-127182" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=127182" Kind="normal" Label="127182: bugzilla outline missing in generic task editor" LastDate="1140068712307" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-10 18:01:36.692 PST" offlineSyncState="SYNCHRONIZED"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-09 11:51:18.388 PST" Dirty="false" Elapsed="18514721" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-126842" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126842" Kind="enhancement" Label="126842: prototype JIRA support" LastDate="1139604349347" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-16 11:00:00.0 PST" offlineSyncState="SYNCHRONIZED"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-02-10 10:09:14.869 PST" Elapsed="424024" EndDate="2006-02-10 13:55:37.400 PST" Estimated="0" Handle="local-103987" IssueURL="http://" Kind="" Label="fix task list refresh" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-13 10:59:33.277 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103991" IssueURL="http://" Kind="" Label="hits need completion state or filter needs fix" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-14 10:22:19.798 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103994" IssueURL="http://" Kind="" Label="investigate M5 migration" Notes=" I am getting tons of NPE's:&#13;&#10;&#13;&#10;java.lang.NullPointerException&#13;&#10; at&#13;&#10;org.eclipse.mylyn.internal.tasks.ui.MylarTaskListPlugin.access$1(MylarTask&#13;&#10;ListPlugin.java:433)&#13;&#10; at&#13;&#10;org.eclipse.mylyn.internal.tasks.ui.MylarTaskListPlugin$2.shellActivated(M&#13;&#10;ylarTaskListPlugin.java:190)&#13;&#10; at&#13;&#10;&#13;&#10; or this:&#13;&#10;&#13;&#10;java.lang.NullPointerException&#13;&#10;at&#13;&#10;org.eclipse.mylyn.internal.monitor.monitors.SelectionMonitor.selectionChan&#13;&#10;ged(SelectionMonitor.java:147)&#13;&#10;at&#13;&#10;org.eclipse.ui.internal.AbstractSelectionService.firePostSelection(Abstrac&#13;&#10;tSelectionService.java:179)&#13;&#10;at&#13;&#10;&#13;&#10; &#13;&#10;&#13;&#10;" Priority="P2" Reminded="true" ReminderDate="2006-02-16 10:22:00.0 PST"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-13 18:17:26.932 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-127609" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=127609" Kind="normal" Label="127609: parametrize task completion status" LastDate="1139883471597" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="INCOMING"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-14 18:40:09.375 PST" Elapsed="6930" EndDate="" Estimated="0" Handle="local-103996" IssueURL="" Kind="" Label="make validate bugzilla server check login " Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-14 18:37:50.816 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 08:05:47.699 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103997" IssueURL="https://bugs.eclipse.org/bugs" Kind="" Label="move new bug actoin and fix icon" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 19:07:51.499 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-104000" IssueURL="http://" Kind="" Label="content assist not ranking locals" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-17 12:00:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-02-17 15:22:01.268 PST" Elapsed="246046" EndDate="2006-02-17 19:10:11.903 PST" Estimated="0" Handle="local-104001" IssueURL="http://" Kind="" Label="startup bug" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-17 18:28:44.376 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-104002" IssueURL="http://" Kind="" Label="task list label length" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-17 18:50:46.216 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-104003" IssueURL="http://" Kind="" Label="bugzilla icon not showing up" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-17 19:42:19.324 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-104004" IssueURL="http://" Kind="" Label="append Mylar version to tasklist.xml" Notes="" Priority="P2" Reminded="false" ReminderDate="2006-02-20 11:00:10.802 PST"/><BugzillaReport Active="false" Bugzilla="true" Complete="false" CreationDate="2006-02-17 19:21:28.956 PST" Dirty="false" Elapsed="0" EndDate="" Estimated="0" Handle="https://bugs.eclipse.org/bugs-128500" IssueURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=128500" Kind="normal" Label="128500: hits should show resolved status" LastDate="1140232940390" Notes="" Priority="P1" Reminded="false" ReminderDate="" offlineSyncState="SYNCHRONIZED"/></TaskCategory><TaskCategory Name="Archive"><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-9" IssueURL="" Kind="" Label="improve task context paths" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="2005-08-12 17:28:43.833 PDT" Estimated="0" Handle="task-103759" IssueURL="" Kind="" Label="rename mylar.bugzilla plug-in" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-68" IssueURL="" Kind="" Label="task context fails to clear" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-30 10:55:09.879 PDT" Elapsed="0" EndDate="2005-09-30 11:08:30.290 PDT" Estimated="0" Handle="task-103820" IssueURL="" Kind="" Label="OPEN LISTENER FAILS IN ACTIVE SEARCH" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-30 10:58:29.76 PDT" Elapsed="963226" EndDate="2005-10-03 14:12:47.608 PDT" Estimated="0" Handle="task-103821" IssueURL="" Kind="" Label="PACKAGE EXPLORER REFRESHES ON EVERY KEYSTROKE" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-14 15:42:25.54 PDT" Elapsed="2100704" EndDate="2005-09-14 16:29:39.49 PDT" Estimated="0" Handle="task-103786" IssueURL="" Kind="" Label="active search blinks on every selection" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-08-29 16:39:41.306 PDT" Elapsed="5612400" EndDate="2005-09-09 15:16:07.680 PDT" Estimated="0" Handle="task-103776" IssueURL="" Kind="" Label="active search view fails to refresh" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-11 14:59:25.754 PDT" Elapsed="585672" EndDate="2005-09-11 16:57:45.322 PDT" Estimated="0" Handle="task-103781" IssueURL="" Kind="" Label="auto folding fails" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-30 07:51:18.677 PDT" Elapsed="32958" EndDate="2005-09-30 13:44:04.32 PDT" Estimated="0" Handle="task-103819" IssueURL="" Kind="" Label="check scopes for XML" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-19 11:23:22.780 PDT" Elapsed="0" EndDate="2005-11-08 13:41:35.809 PST" Estimated="0" Handle="task-103856" IssueURL="" Kind="" Label="consulting: incremental Ant build and view" Notes="Ron: I think the most valuable first thing to do is to create ant support that can provide basic &#13;&#10;incremental compilation and then visualization inside of alien IDE's like Eclipse 2.1, IDEA 5.0, &#13;&#10;or RAD. At this stage, I think core incremental ant support is the right foundation rather than, &#13;&#10;say, Eclipse 3.1+ builders. What do you think?" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-28 18:14:33.716 PDT" Elapsed="0" EndDate="2005-09-29 18:15:05.186 PDT" Estimated="0" Handle="task-103810" IssueURL="" Kind="" Label="create new history icons" Notes="" Priority="P1" Reminded="true" ReminderDate="2005-09-29 18:14:29.770 PDT"/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-26 14:48:24.306 PDT" Elapsed="0" EndDate="2005-09-28 09:06:22.963 PDT" Estimated="0" Handle="task-103804" IssueURL="" Kind="" Label="decorators can fail to indicate landmarks" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-12 13:06:34.591 PST" Elapsed="977453" EndDate="2005-12-12 13:39:01.581 PST" Estimated="0" Handle="task-103928" IssueURL="http://" Kind="" Label="fix failing test" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-08-26 13:24:44.19 PDT" Elapsed="838867" EndDate="2005-08-26 13:35:37.869 PDT" Estimated="0" Handle="task-103774" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-22 16:32:15.431 PDT" Elapsed="9821793" EndDate="2005-09-22 19:41:18.877 PDT" Estimated="0" Handle="task-103795" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-23 12:39:39.388 PDT" Elapsed="1957736" EndDate="2005-09-23 13:12:32.25 PDT" Estimated="0" Handle="task-103797" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-29 16:02:07.303 PDT" Elapsed="9733791" EndDate="2005-09-30 13:32:27.861 PDT" Estimated="0" Handle="task-103818" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-20 10:41:44.571 PDT" Elapsed="4570528" EndDate="2005-10-20 11:57:59.965 PDT" Estimated="0" Handle="task-103857" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-02 14:42:30.292 PST" Elapsed="1527290" EndDate="2005-11-02 15:52:24.512 PST" Estimated="0" Handle="task-103866" IssueURL="http://" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-03 16:33:07.218 PST" Elapsed="1032444" EndDate="2005-11-03 17:17:13.934 PST" Estimated="0" Handle="task-103875" IssueURL="" Kind="" Label="fix failing tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-29 10:59:59.666 PDT" Elapsed="0" EndDate="2005-09-30 11:11:41.966 PDT" Estimated="0" Handle="task-103816" IssueURL="" Kind="" Label="fix link to Ed's blog" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-10-21 06:13:35.107 PDT" Elapsed="753925" EndDate="2005-10-21 13:51:34.417 PDT" Estimated="0" Handle="task-103859" IssueURL="" Kind="" Label="fix tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-14 13:31:40.33 PDT" Elapsed="1186862" EndDate="2005-09-14 18:33:54.693 PDT" Estimated="0" Handle="task-103785" IssueURL="" Kind="" Label="give search providers proper labels" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-08-31 09:10:44.201 PDT" Elapsed="5991798" EndDate="2005-09-09 16:48:51.240 PDT" Estimated="0" Handle="task-103779" IssueURL="" Kind="" Label="make failing tests pass" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-11 16:54:38.924 PDT" Elapsed="2144934" EndDate="2005-09-11 17:37:30.271 PDT" Estimated="0" Handle="task-103782" IssueURL="" Kind="" Label="phase 1 message fails to show" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-08-26 13:35:49.776 PDT" Elapsed="4163179" EndDate="2005-08-30 21:46:15.381 PDT" Estimated="0" Handle="task-103775" IssueURL="" Kind="" Label="re-enable interest filter test" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-23 19:10:40.88 PDT" Elapsed="0" EndDate="2005-09-26 08:35:21.631 PDT" Estimated="0" Handle="task-103800" IssueURL="" Kind="" Label="remove usage view" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-08-26 08:22:04.937 PDT" Elapsed="1903977" EndDate="2005-09-14 19:11:04.880 PDT" Estimated="0" Handle="task-103772" IssueURL="" Kind="" Label="set active search defaults" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-01-06 14:27:46.517 PST" Elapsed="460580" EndDate="2006-01-06 14:40:33.440 PST" Estimated="0" Handle="task-103950" IssueURL="http://" Kind="" Label="set license settings per-project" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-14 16:27:02.624 PDT" Elapsed="4697" EndDate="2005-09-19 13:40:36.549 PDT" Estimated="0" Handle="task-103787" IssueURL="" Kind="" Label="task context activation hang?" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-08-26 08:12:45.833 PDT" Elapsed="509252" EndDate="2005-08-26 12:54:07.608 PDT" Estimated="0" Handle="task-103770" IssueURL="" Kind="" Label="verify problems list behavior" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-30 20:28:04.708 PDT" Elapsed="576459" EndDate="2005-10-03 15:09:58.621 PDT" Estimated="0" Handle="task-103823" IssueURL="" Kind="" Label="verify setting of structured selections of ant outline" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-28 09:27:38.407 PDT" Elapsed="0" EndDate="2005-10-03 15:12:11.963 PDT" Estimated="0" Handle="task-103809" IssueURL="" Kind="" Label="xml edges not reset when dos moved to 0" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-26" IssueURL="" Kind="" Label="SHAWN: fix active search" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-30" IssueURL="" Kind="" Label="add &quot;suppress filter&quot; button to views" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="10175" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-55" IssueURL="" Kind="" Label="ensure only single click is required to add selected elements to views" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="5189271" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-81" IssueURL="" Kind="" Label="error interest nodes fail to disappear" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-44" IssueURL="" Kind="" Label="fix &quot;show filtered&quot; failure to select on first element" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="3947585" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-79" IssueURL="" Kind="" Label="fix alt-click UI" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-21" IssueURL="" Kind="" Label="fix delay in decoration when interest is manipulated" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-66" IssueURL="" Kind="" Label="fix hiding of elements when pkg explorer is unfiltered, due to interest fitler checking globall" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-69" IssueURL="" Kind="" Label="fix package explorer selection and filtering" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-80" IssueURL="" Kind="" Label="fix selection cascade after each save" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-46" IssueURL="" Kind="" Label="hook up folding button" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="179077" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-87" IssueURL="" Kind="" Label="improve preference pages" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-27" IssueURL="" Kind="" Label="make highlighters work" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-25" IssueURL="" Kind="" Label="make sure elements exist if trying to open" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="6086813" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-83" IssueURL="" Kind="" Label="outline view failing" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="2046273" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-84" IssueURL="" Kind="" Label="selection cascade triggered by outline" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-60" IssueURL="" Kind="" Label="verify interest filter is not reinstalled too often" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-3" IssueURL="" Kind="" Label="LONG: monitoring" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-103753" IssueURL="" Kind="" Label="change all project settings to show PDE errors" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-103756" IssueURL="" Kind="" Label="ensure Java project can't be landmark" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-2" IssueURL="" Kind="" Label="ensure that when element is selected parent interest becomes positive" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="4453564" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-103751" IssueURL="" Kind="" Label="figure out listener API" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="14091988" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-103754" IssueURL="" Kind="" Label="fix error interest bug" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="6421495" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-103760" IssueURL="" Kind="" Label="fix failing unit tests" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-6" IssueURL="" Kind="" Label="fix problem with random relationships being added on re-parsing" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="1740733" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-86" IssueURL="" Kind="" Label="improve error logging" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="1226623" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-82" IssueURL="" Kind="" Label="landmark update failing" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-4" IssueURL="" Kind="" Label="make error interest work for non-Java" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="Bugzilla-102249" IssueURL="" Kind="" Label="102249: on shell de-activation Mylar causes noticeable slowdown" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="1493" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="Bugzilla-102675" IssueURL="" Kind="" Label="102675: prune dangling predicted interest nodes" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-8" IssueURL="" Kind="" Label="avoid calling refresh all on package explorer when errors change" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-22" IssueURL="" Kind="" Label="fix editor flicker on taskscape activation" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-35" IssueURL="" Kind="" Label="folding compute additions problem" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-38" IssueURL="" Kind="" Label="folding toggle is broken and requires reset" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-61" IssueURL="" Kind="" Label="hook up new folding toggle button" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-65" IssueURL="" Kind="" Label="improve wizards and popup menus" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-1" IssueURL="" Kind="" Label="make folding trigger when switching modes" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-15" IssueURL="" Kind="" Label="package explorer selections fail" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-53" IssueURL="" Kind="" Label="restore selections of package declarations" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-12" IssueURL="" Kind="" Label="selections not being updated in package explorer" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-12-07 14:30:27.448 PST" Elapsed="0" EndDate="1969-12-31 16:00:00.0 PST" Estimated="0" Handle="task-32" IssueURL="" Kind="" Label="suppress repretition of items in content assist" Notes="" Priority="P1" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-09-27 19:04:23.612 PDT" Elapsed="2014211" EndDate="2006-01-23 14:59:07.325 PST" Estimated="0" Handle="task-103808" IssueURL="" Kind="" Label="long: view refresh" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2005-11-08 09:01:17.569 PST" Elapsed="0" EndDate="2006-01-23 14:59:35.376 PST" Estimated="0" Handle="task-103878" IssueURL="http://appft1.uspto.gov/netahtml/PTO/search-bool.html" Kind="" Label="long: patent and prior art search" Notes="" Priority="P3" Reminded="false" ReminderDate=""/></TaskCategory><TaskCategory Name="Business"><Task Active="false" Bugzilla="false" Complete="true" CreationDate="2006-02-09 11:06:16.603 PST" Elapsed="0" EndDate="2006-02-16 11:12:01.586 PST" Estimated="0" Handle="local-103985" IssueURL="http://" Kind="" Label="update EclipseCon/AOSD bio and picture (due Feb 17)" Notes="" Priority="P3" Reminded="true" ReminderDate="2006-02-12 11:06:11.526 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-09 12:14:45.11 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103986" IssueURL="http://" Kind="" Label="restore ThinkPad from drive failure" Notes="Lenovo: 800-565-3344, 4&#13;&#10;New case: 3780198, hard drive dispatch: 3780478, recovery CDs: 3780482, newest: 3782684&#13;&#10;Business partner: DTM, 2323 Boundary Road&#13;&#10;&#13;&#10;Nexinnovations 985 virtual, vancouver, canada, 604-216-2400, 8:30am-5pm.&#13;&#10; &#13;&#10;Drive Fitness test: Failure code: 0x20 - Device not found (TRC: 2000B51C)&#13;&#10;&#13;&#10;ERROR&#13;&#10;0200: Failure Fixed Disk 0&#13;&#10;&#13;&#10;drive setup: http://www.hitachigst.com/hdd/support/download.htm&#13;&#10;&#13;&#10;http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PEN8X&#13;&#10;&#13;&#10;-------------&#13;&#10;&#13;&#10;DATA RECOVERY&#13;&#10;&#13;&#10;http://www.acsdata.com/hitachi-data-recovery.htm&#13;&#10;&#13;&#10;Clean room: $1400-$1500&#13;&#10;Non clean-room: $600&#13;&#10;&#13;&#10;Sean recommends: http://support.wdc.com/partners/recovery.asp" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-13 10:24:15.792 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103990" IssueURL="http://www.eclipse.org/projects/dev_process/project-log.php " Kind="" Label="create Mylar IP Log" Notes="" Priority="P2" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-13 12:32:53.720 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103992" IssueURL="http://www.phpeclipse.de/tiki-view_forum_thread.php?forumId=5&amp;comments_parentId=2593" Kind="" Label="review PHPEclipse integration discussion" Notes="" Priority="P3" Reminded="true" ReminderDate="2006-02-21 12:32:00.0 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-13 12:34:05.513 PST" Elapsed="437204" EndDate="" Estimated="0" Handle="local-103993" IssueURL="" Kind="" Label="draft EclipseCon slides (due Feb 17)" Notes="" Priority="P1" Reminded="true" ReminderDate="2006-02-14 08:00:52.114 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-14 10:25:12.826 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103995" IssueURL="http://" Kind="" Label="write Jolt Award summaries (due March 3)" Notes="" Priority="P5" Reminded="false" ReminderDate="2006-02-26 10:24:57.144 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 10:08:57.595 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103998" IssueURL="http://" Kind="" Label="write introductory email to Atlassian" Notes="That looks really good. The only contact I have there is Jonathan Nolen mailto:jonathan@atlassian.com (their developer relations guy), but i do not konw him personally. Perhaps you should just send the email to both of them. It can't really hurt.&#13;&#10;&#13;&#10;cheers,&#13;&#10;Brock&#13;&#10;&#13;&#10;Quoting Mik Kersten &lt;beatmik@acm.org&gt;:&#13;&#10;&#13;&#10;&gt; Brock, here's a draft, what do you think? Do you have a contact there &#13;&#10;&gt; that you want to use? If not I have a pretty senior contact there, &#13;&#10;&gt; but don't know him.&#13;&#10;&gt; &#13;&#10;&gt; ------------&#13;&#10;&gt; &#13;&#10;&gt; The Mylar eclipse.org project is growing, and there has been &#13;&#10;&gt; increasing demand for providing issue tracker integration for JIRA. &#13;&#10;&gt; One of the key components of Mylar is a standalone task management UI. &#13;&#10;&gt; The Mylar Bugzilla Client extends that and provides tight integration &#13;&#10;&gt; for working with Bugzilla issues within Eclipse. To see it in action &#13;&#10;&gt; see the 2nd flash video&#13;&#10;&gt; at:&#13;&#10;&gt; http://eclipse.org/mylar/doc.php&#13;&#10;&gt; &#13;&#10;&gt; As Eclipse itself has demonstrated with it's CVS client, the quality &#13;&#10;&gt; and integration of the client UI can be more important to developer &#13;&#10;&gt; productivity than the quality of the underlying repository. Brock &#13;&#10;&gt; Janiczak has made significant progress with his JIRA Dashboard &#13;&#10;&gt; plug-in, and we have generic task/query management support in Mylar's &#13;&#10;&gt; Task List component. To meet our community's needs we would like to &#13;&#10;&gt; take the next step, and build the same level of Eclipse integration &#13;&#10;&gt; with JIRA that we currently have for Bugzilla.&#13;&#10;&gt; &#13;&#10;&gt; &#13;&#10;&gt; I can dedicate some of my Mylar development time to make this happen &#13;&#10;&gt; in order to help make Mylar the standard mechanism for task management &#13;&#10;&gt; in Eclipse. Brock Janiczak is also volunteering some time to help &#13;&#10;&gt; build the community that uses the JIRA Dashboard plug-in. But we &#13;&#10;&gt; would benefit from your support in this effort. Please let us know if &#13;&#10;&gt; this is something that you are interested in helping with.&#13;&#10;&gt; &#13;&#10;&gt; Best regards,&#13;&#10;&gt; &#13;&#10;&gt; Mik Kersten and Brock Janiczak" Priority="P3" Reminded="false" ReminderDate="2006-02-21 10:08:50.665 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 10:29:36.507 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103999" IssueURL="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_2.html" Kind="" Label="read update 3.2 dev plan" Notes="" Priority="P3" Reminded="false" ReminderDate="2006-02-21 10:29:31.349 PST"/></TaskCategory><TaskCategory Name="Personal"><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-13 09:54:07.51 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103988" IssueURL="http://www.fido.ca/portal/home/homepage.jsp?lang=en " Kind="" Label="Pay Fido bill" Notes="" Priority="P3" Reminded="false" ReminderDate="2006-02-20 09:53:46.161 PST"/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-13 10:19:17.413 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-103989" IssueURL="" Kind="" Label="music to get" Notes="Global Underground - Electric Calm v.3&#13;&#10;&#13;&#10;Choice: A Collection of Classics&quot; by Danny Howells&#13;&#10;&#13;&#10;Defected in the house miami" Priority="P4" Reminded="false" ReminderDate="2006-02-21 10:19:00.0 PST"/></TaskCategory><BugzillaQuery MaxHits="-1" Name="Current" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Mylar&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=beatmik&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126842" Name="126842: prototype JIRA support" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-128468" Name="128468: &gt;make priority column and combo editor be icon based" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126775" Name="126775: &gt;fix task archive and category duplication" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111861" Name="111861: open type history might be missing some interesting types" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125555" Name="125555: &gt;interest filter fails on PDE extensions and other pages" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-127609" Name="127609: parametrize task completion status" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113275" Name="113275: improve PDE search and include manifest files" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113399" Name="113399: add recommended preference changes" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-118007" Name="118007: Ability to selectively add resources (files/folders) to context" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-127293" Name="127293: &gt;bugzilla.core should not depend on mylar" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106678" Name="106678: hierarchical layout in package explorer shows uninteresting elements" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112233" Name="112233: [improve interaction for filtered element navigation" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-118542" Name="118542: Open/close Java files leave interest on packages" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-118884" Name="118884: problems with PDE Outline update" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120499" Name="120499: Mylar should make explicitly created resources interesting, and ignore others" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121329" Name="121329: ensure that there are no leaks of Color and Image" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-123649" Name="123649: &gt;new bug wizard doesn't automatically update options" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124259" Name="124259: &gt;Can't cacel a temporarily unfilter a node" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125591" Name="125591: &gt;number of editors bloats due to auto-close suppression" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126237" Name="126237: copying and pasting task contexts" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126257" Name="126257: &gt;package explorer and other views fail to refresh on persp..." Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126882" Name="126882: &gt;Not all file types preserved in Mylar filtered Package Ex..." Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117518" Name="117518: &gt;Show dialog when interest set by user with no active context" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-102663" Name="102663: support multiple workbench windows" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104052" Name="104052: active search of local context" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111107" Name="111107: &gt;improve usability and scope of dynamic working set for se..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-119137" Name="119137: Task does not remember perspective" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124082" Name="124082: &gt;Add progress bar to the category" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125987" Name="125987: &gt;Add a possibility to set more than one &amp;quot;interest filter&amp;quot;" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126863" Name="126863: &gt;Update docs by 0.50 release" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112020" Name="112020: &gt;limit number of visible items in active search view" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121759" Name="121759: &gt;active search tree is automatically expanded on double-click" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125173" Name="125173: &gt;[v0.4.7] Partial functionality failures for Bugzilla 2.21" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117761" Name="117761: &gt;Task context commit not allowed for bug under a query cat..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111258" Name="111258: verify interaction of Java active search with JSP resources" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111290" Name="111290: &gt;Explore option to show in-editor occurences on active search" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114124" Name="114124: set up monitor scripts on eclipse.org" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114684" Name="114684: &gt;active search matches should navigate to referring locati..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117979" Name="117979: new selection should always make parent interest positive" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120502" Name="120502: [performance] pauses during casual editor navigation" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120917" Name="120917: clean up collection of Mylar usage stats" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121309" Name="121309: improve monitor upload facility" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121316" Name="121316: &gt;Preferences: Button for colorpicker rendered half and wit..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121317" Name="121317: &gt;Can't drag tasks into folder in Mylar Tasks view on Mac OS X" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121442" Name="121442: Active Search hogs the CPU" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121923" Name="121923: &gt;Mylar Java Editor doesn't trigger action through shortcut" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-122931" Name="122931: &gt;Mylar Tasks view: Dropdown starts with selected priority ..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-123330" Name="123330: temporarily unfiltered nodes stick if not selected" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124047" Name="124047: &gt;&amp;quot;Synchronize Reports&amp;quot; doesn't update editor" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124887" Name="124887: &gt;browser tab not loading web page for Bugzilla tasks" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125422" Name="125422: &gt;Option to blacklist some file types" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125733" Name="125733: &gt;minimization problem with task list" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125883" Name="125883: &gt;Moving a new class doesn't update the filtered package view" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126263" Name="126263: &gt;junit launch configurations broken in M5" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126862" Name="126862: &gt;failure to bring compare editor into focus" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126865" Name="126865: &gt;When deleting multiple selected tasks confirmation dialog..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-128500" Name="128500: hits should show resolved status" Priority="P1"/></BugzillaQuery><BugzillaQuery MaxHits="100" Name="Products - AspectJ" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=AJDT&amp;product=AspectJ&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=exact&amp;email1=beatmik%40acm.org&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109759" Name="109759: &gt;create pointcut matcher tool" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-42070" Name="42070: &gt;Applying a perthis modifier to an aspect cause the aspect..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-50928" Name="50928: &gt;Provide UI for advice execution ordering at join points" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-50929" Name="50929: &gt;Provide UI for showing call graph affected by flow advice" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-50931" Name="50931: &gt;Augment views that expose inheritance with aspect-declare..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-58688" Name="58688: &gt;ajbrowser filter associations button doesn't work" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-63116" Name="63116: &gt;Aspect oriented pointcuts for debugging" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-75233" Name="75233: &gt;Pointcut &amp;amp; advice definition wizards" Priority="P4"/></BugzillaQuery><BugzillaQuery MaxHits="100" Name="People - Wesley" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=wes.coelho%40gmail.com&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-119554" Name="119554: Generalize monitor uploading" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106935" Name="106935: [discussion] add provider for Visualizer" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113583" Name="113583: improve UI for activating multiple contexts" Priority="P4"/></BugzillaQuery><BugzillaQuery MaxHits="100" Name="People - Gail" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Mylar&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=murphy&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117827" Name="117827: &gt;Allow collectors to output results in a tabular format" Priority="P3"/></BugzillaQuery><BugzillaQuery MaxHits="100" Name="People - Rob" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Mylar&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=P1&amp;priority=P2&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=relves&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109460" Name="109460: wrong incoming status on submitted reports/comments" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125263" Name="125263: &gt;task list view should refresh query hits when a task changes" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126271" Name="126271: support import of task list and contexts" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126866" Name="126866: NPE in new bugzilla report wizard" Priority="P1"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117035" Name="117035: Bugzilla plugin ignores encoding" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-118582" Name="118582: improve bugzilla client support for http auth" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-123980" Name="123980: Deleting an active task should just deactivate it." Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106939" Name="106939: Bugzilla query refresh in a task list should use scheduler" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-115041" Name="115041: Task highlighters look ugly on gtk" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121315" Name="121315: Preferences: Highlighter with label &quot;orange gradient&quot; is rendered Brown" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124321" Name="124321: explore making local tasks be a repository" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124919" Name="124919: planner should only report time Elapsed during plan period" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126444" Name="126444: &gt;doSave(..) called too many times on MylarTaskEditor" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126618" Name="126618: &gt;install buggzilla repositories on virtual server and setu..." Priority="P2"/></BugzillaQuery><BugzillaQuery MaxHits="100" Name="Products - Mozilla" QueryString="https://bugzilla.mozilla.org/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=mik.kersten%40eclipse.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;emailcc1=1&amp;emaillongdesc1=1&amp;emailtype1=substring&amp;email1=mik.kersten&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-224577" Name="224577: Bugzilla could use a web services interface" Priority="P4"/></BugzillaQuery><BugzillaQuery MaxHits="100" Name="Products - Eclipse" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=JDT&amp;product=Platform&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;emailreporter1=1&amp;emailcc1=1&amp;emaillongdesc1=1&amp;emailtype1=substring&amp;email1=beatmik&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110147" Name="110147: &gt;[preferences][content assist] preference page issues" Priority="P2"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-9355" Name="9355: &gt;Collapse function for block of code and comments hiding" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-37974" Name="37974: &gt;[Tasks] Issues with task/problem view split - go back to ..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-52685" Name="52685: &gt;[Plan Item] Evolve the Eclipse user experience *CONTINUED*" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-71901" Name="71901: &gt;Underline and Strikethrough Font styles" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-79056" Name="79056: &gt;[api][navigation]Providing an extension point to enable o..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-84988" Name="84988: &gt;Resource exclusion filters" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-88293" Name="88293: [misc] Extension-Point for HyperlinkDetectors" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-90210" Name="90210: &gt;[misc] Java editor should support guarded regions in source" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-100095" Name="100095: &gt;Consider making URLTransfer public" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106000" Name="106000: &gt;[plan] Need API to allow code assist/completion from outs..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113272" Name="113272: &gt;[Browser] allow url tracking listeners to be added to the..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-122611" Name="122611: &gt;Provide a facility to save and load exclusion filters fro..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126748" Name="126748: &gt;[search] Provide integration with the new TextSearch UI" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126085" Name="126085: &gt;welcome screen broken with MSIE 7 beta 2" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-63692" Name="63692: [projection] Annotations in folded region are not rendered in overview ruler" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112406" Name="112406: misleading exception when web browser is not available" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-116334" Name="116334: &gt;org.eclipse.ui.views.showView bindings don't show up in menu" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-69315" Name="69315: &gt;Deprecated code warnings" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-79112" Name="79112: [1.5] [model] accessing annotation on Java elements" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-84431" Name="84431: &gt;Accessibility issue with new icon for Annotations" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-89843" Name="89843: &gt;[Commands] parameters: Keybinding for a View displayed bu..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-95634" Name="95634: &gt;[Tree] TreeColumn does not show &amp;quot;...&amp;quot; on cut-off Text and..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-99984" Name="99984: &gt;Sync view toolbar buttons are bigger with SWT manifest" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-101205" Name="101205: &gt;[Browser] Keybindings and menus for Copy, Paste, etc. don..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104373" Name="104373: [projection] Entered text gets automatically folded away" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106428" Name="106428: Need support for deploying features depending on other features" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107280" Name="107280: &gt;[Workbench] ShellListener.shellClosed is not called on co..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110913" Name="110913: &gt;[api][content assist] java content assist context" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111025" Name="111025: [Viewers] setting background color on trees with columns" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111155" Name="111155: [Contributions] wrong toolbar height if first button has a pull-down menu" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113392" Name="113392: [rulers]promote annotations for folded regions" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-116084" Name="116084: &gt;Make ChangeSetProvider and friends API" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117223" Name="117223: &gt;trees with columns don't show tooltips" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117319" Name="117319: &gt;&amp;quot;Search for updates..&amp;quot; should allow update sites to be sp..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125372" Name="125372: &gt;make Package Explorer collapse policy optional" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121441" Name="121441: &gt;[LinkedResources] Slow, flashy, then out of memory when c..." Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-122849" Name="122849: [Model Sync] Support for change sets" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124545" Name="124545: [Viewers] FilteredTree refresh when filter is on" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124551" Name="124551: &gt;support for strikethrough fonts" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-124702" Name="124702: [projection] redraw problem with JavaEditor.resetProject()" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125959" Name="125959: [OLE] in-place editor for PDFs" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-126767" Name="126767: &gt;problem starting plugins with I20060207-0930" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-128233" Name="128233: &gt;need to investigate scalability of FilteredTree" Priority="P3"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-19945" Name="19945: &gt;DCR: date/time widget would be useful" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-37997" Name="37997: &gt;[Plan Item] Evolve the Eclipse user experience" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-115152" Name="115152: &gt;[package explorer] Improved for compressed folders in the..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107082" Name="107082: npe in IconAndMessageDialog.getSWTImage(..)" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-37154" Name="37154: &gt;[Team] Support for subversion" Priority="P5"/></BugzillaQuery><BugzillaQuery MaxHits="500" Name="Low Priority" QueryString="https://bugs.eclipse.org/bugs/buglist.cgi?GoAheadAndLogIn=1&amp;Bugzilla_login=beatmik%40acm.org&amp;Bugzilla_password=1umberto&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Mylar&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=P4&amp;priority=P5&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=beatmik%40acm.org&amp;order=Importance" RepositoryUrl="https://bugs.eclipse.org/bugs"><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-58646" Name="58646: &gt;[Coop] pluggable hyperlink policy support" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-102678" Name="102678: improve distinguishing between editor selections and edits" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-102851" Name="102851: &gt;support adding attachments to reports" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-102854" Name="102854: &gt;add bug editor support for voting" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103093" Name="103093: &gt;spell checking of bugzilla comments" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103516" Name="103516: Should be able to map highlighters to priority" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103736" Name="103736: add interest sorter to problems list" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103932" Name="103932: &gt;drag-and-drop patching" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104062" Name="104062: in &quot;new bug report&quot;, put the previously-submitted to components on top" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104247" Name="104247: support decorators in task list" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104287" Name="104287: Alt+Click does not work in the Java Browsing Perspective" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104341" Name="104341: add interest scaling factor control" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104485" Name="104485: &gt;broaden composite contexts" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104497" Name="104497: &gt;[discussion] automatic task activation" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104601" Name="104601: &gt;support mylar running on JDK 1.4" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104783" Name="104783: landmarks blink on save" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106976" Name="106976: &gt;[discussion] property-based interest filtering" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107259" Name="107259: &gt;[discussion] provide preview of task context" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107264" Name="107264: &gt;make active hierarchy update lazily" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107596" Name="107596: &gt;[discussion] XP / Agile support features" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109552" Name="109552: &gt;add workflow to task completion" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109559" Name="109559: add &quot;dependant project&quot; degree of separation" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109905" Name="109905: [discussion] plan JIRA support" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110547" Name="110547: &gt;Active Search view could show additional relevant info" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111218" Name="111218: &gt;[discussion] sharing and awareness of task context" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111362" Name="111362: manage resource history" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111540" Name="111540: add overlay to indicate task completion" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111698" Name="111698: &gt;provide spring framework specific active search features" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111700" Name="111700: &gt;provide wtp xml editor integration" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111713" Name="111713: &gt;add mylar filter to debug view" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111864" Name="111864: make open type history sorting be based on interest" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111865" Name="111865: create welcome page" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112235" Name="112235: &gt;[discussion] expose interest threshold filter" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112669" Name="112669: add optional categories for completed today, completed this week" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113470" Name="113470: apply mylar to task list" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113848" Name="113848: support attaching context to bug report" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114040" Name="114040: imporove web docs integration" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114047" Name="114047: allow junit test suite of current context to run with low process priority" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-115200" Name="115200: &gt;Drag-n-drop of java file nodes to active search view" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-115941" Name="115941: &gt;provide web forum based issue provider" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120469" Name="120469: Decouple bugzilla task reading" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120504" Name="120504: &gt;Read task contexts independently of the workspace" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-122469" Name="122469: [performance] create structure bridge cache" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-123120" Name="123120: create full-screen screenshots of Mylar usage" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-123527" Name="123527: support mutliple status values" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-123699" Name="123699: &gt;Breakpoints retined by task context" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106990" Name="106990: Add support for Bugzilla integrated into Collabnet" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107348" Name="107348: Mylar should not increase interest when scrolling trough search results" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112424" Name="112424: test for failure of non-filtered mode refresh" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113024" Name="113024: &gt;Reminder date chooser forces date selection" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120189" Name="120189: &gt;add version field to InteractionEvent" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-101724" Name="101724: &gt;differentiating between xml edits and selections" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-102853" Name="102853: &gt;bug search dialog is clunky" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103283" Name="103283: make predicted interest errors work for plugin.xml and other resources" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103365" Name="103365: monitor scrolling activity" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103566" Name="103566: &gt;create UI for removing all offline reports" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104340" Name="104340: multiple tasks active not working correctly" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104362" Name="104362: &gt;doc comments of fields are not folded" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104782" Name="104782: ensure that mylar viewer management removes facilities on view close" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-104799" Name="104799: show filtered fails to clear root nodes in navigator view" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106921" Name="106921: &gt;allow columns to be configured in task list" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106922" Name="106922: &gt;Submitting Data from bug report is blocking UI" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106940" Name="106940: &gt;[discussion] support for QA tools" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-106943" Name="106943: &gt;Add dropdown for filters previously used on the tasklist" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107091" Name="107091: &gt;Add preview of the task context highlighters to the prefs..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107169" Name="107169: consider making ITaskListElement(s) adapt to tasks" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107174" Name="107174: &gt;localize messages to a single class and bundle" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107491" Name="107491: &gt;add disabled icons" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107949" Name="107949: active hierarchy should update based on model changes" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-107991" Name="107991: make one level of subtypes show in Active Hierarchy" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-108021" Name="108021: make monitor listen to all preference changes" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-108063" Name="108063: create policy for re-running active searches" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-108067" Name="108067: when activating a new report automatically populate context with stack" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-108441" Name="108441: make relation providers extension point based" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109214" Name="109214: create active serach UI test harness" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109259" Name="109259: working set filter interacts badly with mylar filter" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109314" Name="109314: auto folding hides annotation matches" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109454" Name="109454: make online access mode to report trigger offline mode" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109643" Name="109643: improve active search invalidation for calls" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109678" Name="109678: create mylar perspectives" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-109928" Name="109928: make documentation available online" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110037" Name="110037: find referencing contexts" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110042" Name="110042: consider limiting size of active search matches" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110281" Name="110281: move commons dependancies to be on SDK" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110471" Name="110471: &gt;propagate highlighting to files when declarations filtere..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-110892" Name="110892: repeated searches should not induce landmark interest" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111165" Name="111165: &gt;[discussion] can files be landmarks?" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111266" Name="111266: make Active Search work for Ant references" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-111716" Name="111716: &gt;[discussion] explore exposing context model scaling factors" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112016" Name="112016: text selections in xml files will get recorded twice" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-112721" Name="112721: handle interest level for type refactorings and element deletion" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-113187" Name="113187: make content type an extension, not API" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114050" Name="114050: support plans in task list" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114561" Name="114561: restructure and fix up documentation" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114832" Name="114832: &gt;[discussion] figure out overlap between Mylar Tasks and B..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114966" Name="114966: fix web docs support" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-115498" Name="115498: [discussion] rewind and replay of context capture" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-116487" Name="116487: &gt;add performance tests" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-116514" Name="116514: support building against IBM JDK" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117233" Name="117233: xml and bugzilla bridges should implement retrieving children" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117517" Name="117517: add support for commit comment templates" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-117587" Name="117587: clean up 3.1 build process" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-119307" Name="119307: resources and other moved elements should maintain interest" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-120952" Name="120952: [discussion] provide task/issue repository view and extension points" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-121000" Name="121000: make monitor interaction event externalization consistent with core" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-122927" Name="122927: &gt;[mac] Mylar Editor: missing rectangle around Documentatio..." Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-122928" Name="122928: &gt;[mac] task editor triangle looks ugly when it has focus" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-125936" Name="125936: add option to activate tasks on open" Priority="P4"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-103728" Name="103728: consider changing active search quick view to JavaOutlineInformationControl subclass" Priority="P5"/><BugzillaQueryHit Handle="https://bugs.eclipse.org/bugs-114254" Name="114254: create new landmark manipulation icons and fix names" Priority="P5"/></BugzillaQuery></TaskList> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/performance/tasklist-4000.xml.zip b/org.eclipse.mylyn.tasks.tests/testdata/performance/tasklist-4000.xml.zip
deleted file mode 100644
index eb1a6e4a5..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/performance/tasklist-4000.xml.zip
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdata-1.0-bug-219897.zip b/org.eclipse.mylyn.tasks.tests/testdata/taskdata-1.0-bug-219897.zip
deleted file mode 100644
index 8242f5819..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdata-1.0-bug-219897.zip
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/context-history.xml b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/context-history.xml
deleted file mode 100644
index dd16c2676..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/context-history.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><InteractionHistory Id="context-history" Version="1"><InteractionEvent Delta="deactivated" EndDate="2006-02-16 16:49:47.477 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:49:47.477 PST" StructureHandle="attention" StructureKind="context"/><InteractionEvent Delta="activated" EndDate="2006-02-16 16:49:52.917 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:49:52.917 PST" StructureHandle="attention" StructureKind="context"/><InteractionEvent Delta="activated" EndDate="2006-02-16 16:50:13.483 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:50:13.483 PST" StructureHandle="local-69" StructureKind="context"/><InteractionEvent Delta="deactivated" EndDate="2006-02-16 16:51:07.858 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:51:07.858 PST" StructureHandle="local-69" StructureKind="context"/><InteractionEvent Delta="activated" EndDate="2006-02-16 16:51:11.575 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:51:11.575 PST" StructureHandle="local-69" StructureKind="context"/><InteractionEvent Delta="deactivated" EndDate="2006-02-16 16:51:17.455 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:51:17.455 PST" StructureHandle="local-69" StructureKind="context"/><InteractionEvent Delta="deactivated" EndDate="2006-02-16 16:53:18.688 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:53:18.688 PST" StructureHandle="attention" StructureKind="context"/><InteractionEvent Delta="activated" EndDate="2006-02-16 16:55:28.476 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:55:28.476 PST" StructureHandle="local-70" StructureKind="context"/><InteractionEvent Delta="deactivated" EndDate="2006-02-16 16:55:31.451 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 16:55:31.451 PST" StructureHandle="local-70" StructureKind="context"/><InteractionEvent Delta="activated" EndDate="2006-02-16 17:02:58.887 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 17:02:58.887 PST" StructureHandle="local-70" StructureKind="context"/><InteractionEvent Delta="deactivated" EndDate="2006-02-16 17:03:28.429 PST" Interest="1.0" Kind="command" Navigation="" OriginId="org.eclipse.mylyn.core" StartDate="2006-02-16 17:03:28.429 PST" StructureHandle="local-70" StructureKind="context"/></InteractionHistory> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-69.xml b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-69.xml
deleted file mode 100644
index eb65a146b..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-69.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><InteractionHistory Id="local-69" Version="1"><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.136" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject/&amp;lt;" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.34000003" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject/&amp;lt;" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="19.294" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 16:50:16.718 PST" StructureHandle="=TestProject/&amp;lt;" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.136" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.34000003" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="19.294" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 16:50:16.718 PST" StructureHandle="=TestProject" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.136" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.22100002" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:50:29.701 PST" Interest="1.0" Kind="selection" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 16:50:29.701 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:50:37.435 PST" Interest="2.0" Kind="edit" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 16:50:31.184 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="7.3639994" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 16:50:40.260 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.102000006" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject/" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.34000003" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject/" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="19.294" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 16:50:16.718 PST" StructureHandle="=TestProject/" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.102000006" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.323" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:00.525 PST" Interest="5.0" Kind="selection" Navigation="null" OriginId="org.eclipse.jdt.ui.PackageExplorer" StartDate="2006-02-16 16:50:23.49 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="9.73" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 16:50:29.701 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.08500001" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject/&amp;lt;{TestClass1.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.34000003" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject/&amp;lt;{TestClass1.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:04.1 PST" Interest="4.0" Kind="selection" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 16:50:16.718 PST" StructureHandle="=TestProject/&amp;lt;{TestClass1.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:50:27.457 PST" Interest="1.0" Kind="edit" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 16:50:27.457 PST" StructureHandle="=TestProject/&amp;lt;{TestClass1.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.08500001" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.34000003" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="19.294" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 16:50:16.718 PST" StructureHandle="" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:17.4 PST" Interest="-0.051000003" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:17.4 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2~sayHello" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:07.437 PST" Interest="-0.17000002" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 16:51:07.437 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2~sayHello" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:51:13.658 PST" Interest="4.0" Kind="selection" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 16:50:40.260 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2~sayHello" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 16:50:58.452 PST" Interest="5.0" Kind="edit" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 16:50:41.271 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java[TestClass2~sayHello" StructureKind="java"/></InteractionHistory> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-70.xml b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-70.xml
deleted file mode 100644
index 00be69490..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/local-70.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><InteractionHistory Id="local-70" Version="1"><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:27.538 PST" Interest="-0.068" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 17:03:27.538 PST" StructureHandle="=TestProject" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:23.491 PST" Interest="4.649" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 17:03:04.507 PST" StructureHandle="=TestProject" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:27.538 PST" Interest="-0.068" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 17:03:27.538 PST" StructureHandle="=TestProject/&amp;lt;" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:23.481 PST" Interest="4.6489997" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 17:03:04.497 PST" StructureHandle="=TestProject/&amp;lt;" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:27.538 PST" Interest="-0.068" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 17:03:27.538 PST" StructureHandle="=TestProject/" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:23.491 PST" Interest="4.649" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 17:03:04.497 PST" StructureHandle="=TestProject/" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:27.538 PST" Interest="-0.068" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 17:03:27.538 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:21.898 PST" Interest="2.0" Kind="selection" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 17:03:04.497 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:15.807 PST" Interest="1.0" Kind="edit" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 17:03:15.807 PST" StructureHandle="=TestProject/&amp;lt;{TestClass2.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:27.538 PST" Interest="-0.068" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 17:03:27.538 PST" StructureHandle="" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:23.491 PST" Interest="4.649" Kind="propagation" Navigation="org.eclipse.mylyn.core.model.edges.containment" OriginId="org.eclipse.mylyn.core.model.interest.propagation" StartDate="2006-02-16 17:03:04.507 PST" StructureHandle="" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:27.538 PST" Interest="-0.034" Kind="manipulation" Navigation="null" OriginId="org.eclipse.mylyn.core.model.interest.decay" StartDate="2006-02-16 17:03:27.538 PST" StructureHandle="=TestProject/&amp;lt;{TestClass1.java" StructureKind="java"/><InteractionEvent Delta="null" EndDate="2006-02-16 17:03:23.481 PST" Interest="2.0" Kind="selection" Navigation="null" OriginId="org.eclipse.jdt.ui.CompilationUnitEditor" StartDate="2006-02-16 17:03:20.696 PST" StructureHandle="=TestProject/&amp;lt;{TestClass1.java" StructureKind="java"/></InteractionHistory> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip
deleted file mode 100644
index 326674958..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2007-01-19.zip b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2007-01-19.zip
deleted file mode 100644
index 83a6ff796..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2007-01-19.zip
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml
deleted file mode 100644
index bb0067736..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<TaskRepositories OutputVersion="1">
-<TaskRepository encoding="UTF-8" kind="bugzilla" timezone="Canada/Pacific" url="https://bugzilla.mozilla.org/" lastsynctimestamp="2006-06-26 01:14:10 PDT" version="2.22"/>
-<TaskRepository encoding="UTF-8" kind="bugzilla" timezone="Canada/Eastern" url="https://bugs.eclipse.org/bugs" lastsynctimestamp="2006-06-26 13:30:14" version="2.20" /></TaskRepositories> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/tasklist.xml b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/tasklist.xml
deleted file mode 100644
index c5848ef42..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/tasklist.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><TaskList Version="1.0.1"><BugzillaTaskRegistryCategory/><TaskCategory Name="Catagory 1"><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 16:49:20.249 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-73" IssueURL="http://" Kind="" Label="Category 1 - Task 1" Notes="" Priority="P3" Reminded="false" ReminderDate=""/></TaskCategory><TaskCategory Name="Category 2"><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 16:49:09.540 PST" Elapsed="0" EndDate="" Estimated="0" Handle="local-72" IssueURL="http://" Kind="" Label="Category 2 - Task 1" Notes="" Priority="P3" Reminded="false" ReminderDate=""/></TaskCategory><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 16:48:09.355 PST" Elapsed="55777" EndDate="" Estimated="0" Handle="local-69" IssueURL="http://" Kind="" Label="Root Task 1" Notes="" Priority="P3" Reminded="false" ReminderDate=""/><Task Active="false" Bugzilla="false" Complete="false" CreationDate="2006-02-16 16:48:22.478 PST" Elapsed="31626" EndDate="" Estimated="0" Handle="local-70" IssueURL="http://" Kind="" Label="Root Task 2" Notes="" Priority="P3" Reminded="false" ReminderDate=""/></TaskList> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.tests/testdata/tasklistdatamigrationtest/empty.txt b/org.eclipse.mylyn.tasks.tests/testdata/tasklistdatamigrationtest/empty.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/org.eclipse.mylyn.tasks.tests/testdata/tasklistdatamigrationtest/empty.txt
+++ /dev/null
diff --git a/org.eclipse.mylyn.tasks.ui/.classpath b/org.eclipse.mylyn.tasks.ui/.classpath
deleted file mode 100644
index 59d3d34a5..000000000
--- a/org.eclipse.mylyn.tasks.ui/.classpath
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/provisional/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/search/internal/ui/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/ui/search/internal/*"/>
- <accessrule kind="accessible" pattern="org/eclipse/ui/internal/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <accessrules>
- <accessrule kind="nonaccessible" pattern="com/sun/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.tasks.ui/.cvsignore b/org.eclipse.mylyn.tasks.ui/.cvsignore
deleted file mode 100644
index 4a98758e6..000000000
--- a/org.eclipse.mylyn.tasks.ui/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-.fbwarnings
diff --git a/org.eclipse.mylyn.tasks.ui/.options b/org.eclipse.mylyn.tasks.ui/.options
deleted file mode 100644
index 54de56bb0..000000000
--- a/org.eclipse.mylyn.tasks.ui/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.mylyn.tasks.ui/debug/httpclient=true \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/.project b/org.eclipse.mylyn.tasks.ui/.project
deleted file mode 100644
index 4e9857c70..000000000
--- a/org.eclipse.mylyn.tasks.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.tasks.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.ui/.settings/.api_filters b/org.eclipse.mylyn.tasks.ui/.settings/.api_filters
deleted file mode 100644
index c9239bd2a..000000000
--- a/org.eclipse.mylyn.tasks.ui/.settings/.api_filters
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.mylyn.tasks.ui" version="2">
- <resource path="src/org/eclipse/mylyn/internal/tasks/ui/TaskJobFactory.java" type="org.eclipse.mylyn.internal.tasks.ui.TaskJobFactory">
- <filter id="571519004">
- <message_arguments>
- <message_argument value="org.eclipse.mylyn.internal.tasks.ui.TaskJobFactory.createUpdateRepositoryConfigurationJob(AbstractRepositoryConnector, TaskRepository)"/>
- <message_argument value="TaskJob"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/mylyn/internal/tasks/ui/dialogs/AbstractWorkingSetDialogCOPY.java" type="org.eclipse.mylyn.internal.tasks.ui.dialogs.AbstractWorkingSetDialogCOPY">
- <filter id="574619656">
- <message_arguments>
- <message_argument value="IWorkingSetSelectionDialog"/>
- <message_argument value="AbstractWorkingSetDialogCOPY"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index fbac23913..000000000
--- a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:44 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26af..000000000
--- a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.tasks.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index ec1fda39c..000000000
--- a/org.eclipse.mylyn.tasks.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,50 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.tasks.ui;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.compare,
- org.eclipse.core.runtime,
- org.eclipse.core.expressions,
- org.eclipse.core.net,
- org.eclipse.core.resources,
- org.eclipse.jface.text,
- org.eclipse.search,
- org.eclipse.ui.browser,
- org.eclipse.ui.editors,
- org.eclipse.ui.forms,
- org.eclipse.ui.ide,
- org.eclipse.ui.views,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
- org.apache.commons.logging;bundle-version="1.0.4"
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.mylyn.internal.provisional.tasks.ui.wizards;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.actions;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.commands;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.dialogs;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.editors;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.notifications;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.preferences;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.properties;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.search;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.util;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.views;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.wizards;x-internal:=true,
- org.eclipse.mylyn.internal.tasks.ui.workingsets;x-internal:=true,
- org.eclipse.mylyn.tasks.ui,
- org.eclipse.mylyn.tasks.ui.editors,
- org.eclipse.mylyn.tasks.ui.wizards
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
-Import-Package: com.ibm.icu.text
diff --git a/org.eclipse.mylyn.tasks.ui/about.html b/org.eclipse.mylyn.tasks.ui/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.tasks.ui/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/build.properties b/org.eclipse.mylyn.tasks.ui/build.properties
deleted file mode 100644
index fe213a87a..000000000
--- a/org.eclipse.mylyn.tasks.ui/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 Mylyn project committers 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
-###############################################################################
-bin.includes = about.html,\
- .,\
- plugin.xml,\
- icons/,\
- doc/,\
- META-INF/,\
- plugin.properties
-src.includes = about.html,\
- schema/
-jre.compilation.profile = J2SE-1.5
-source.. = src/
diff --git a/org.eclipse.mylyn.tasks.ui/doc/book.css b/org.eclipse.mylyn.tasks.ui/doc/book.css
deleted file mode 100644
index faa4199fe..000000000
--- a/org.eclipse.mylyn.tasks.ui/doc/book.css
+++ /dev/null
@@ -1 +0,0 @@
-@import "../../PRODUCT_PLUGIN/book.css";
diff --git a/org.eclipse.mylyn.tasks.ui/doc/bugzilla.html b/org.eclipse.mylyn.tasks.ui/doc/bugzilla.html
deleted file mode 100644
index a4b06ddc8..000000000
--- a/org.eclipse.mylyn.tasks.ui/doc/bugzilla.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
- <link rel="stylesheet" href="book.css" charset="ISO-8859-1" type="text/css">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Style-Type" content="text/css">
- <title>
- Preparing Eclipse
- </title>
- </head>
- <body>
- <h2>
- Bugzilla Client Integration</h2>
- Bug reports can be opened with either the Bug Editor or the Internal
- Web Browser.&nbsp; This can be set as a Task List preferences.&nbsp;
- When the Bug Editor is open you can click the hyperlink to show the
- report in the browser (e.g. to use a feature not yet available in
- the editor, such as voting).&nbsp; <p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/bugzilla-internal-browser.gif" width="344" height="157"></p>All bug reports are archived
- in a special category that is invisible by default.&nbsp; But if a
- you do a search, and the matches don't show in another category
- (e.g. because no query matches that report), the archive category,
- highlighted in blue below, gives access to that report.<p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/tasks-archive.gif" width="331" height="187"><p>If a bug report has information on it that has not been viewed, such
- as new comments, the blue &quot;incoming&quot; overlay is displayed.&nbsp; If
- a bug has changes on it that have been saved but have not been
- committed to Bugzilla, the gray &quot;outgoing&quot; overlay is displayed.&nbsp;
- A red overlay appears if there is a conflict.</p>
- <p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/bugzilla-synch.gif" width="323" height="186"></p>To create a custom Bugzilla query paste the query URL into the New
- Bugzilla Query dialog. This enables support of queries that can not
- be configured via the dialog, and as such some query hits may not
- open or format properly.<p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/bugzilla-query-custom.gif" width="483" height="106"></p>
-
- You can explicitly state
- whether you want to work with cached copies of Bugzilla reports and
- avoid refresh with the server.&nbsp; In offline mode the cached bug
- copy is always used.&nbsp; In online mode the Bugzilla server is
- always checked for the latest report.<p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/tasks-offline.gif" width="326" height="207">
-
- </body>
-</html>
-
diff --git a/org.eclipse.mylyn.tasks.ui/doc/images/tasklist-overview.gif b/org.eclipse.mylyn.tasks.ui/doc/images/tasklist-overview.gif
deleted file mode 100644
index 6cd496038..000000000
--- a/org.eclipse.mylyn.tasks.ui/doc/images/tasklist-overview.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/doc/planning.html b/org.eclipse.mylyn.tasks.ui/doc/planning.html
deleted file mode 100644
index 134f9ec66..000000000
--- a/org.eclipse.mylyn.tasks.ui/doc/planning.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
- <link rel="stylesheet" href="book.css" charset="ISO-8859-1" type="text/css">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Style-Type" content="text/css">
- <title>
- Preparing Eclipse
- </title>
- </head>
- <body>
- <h2>
- Task Planning</h2>Set a reminder for a task when creating it, or by selecting the
- &quot;Summary&quot; tab of the Task Editor.&nbsp; When you start using Eclipse
- on the given day the reminders will come up.<p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/tasks-reminders.gif" width="452" height="154">
-
- </body>
-</html>
-
diff --git a/org.eclipse.mylyn.tasks.ui/doc/tasklist.html b/org.eclipse.mylyn.tasks.ui/doc/tasklist.html
deleted file mode 100644
index 97eabee3a..000000000
--- a/org.eclipse.mylyn.tasks.ui/doc/tasklist.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
- <link rel="stylesheet" href="book.css" charset="ISO-8859-1" type="text/css">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Style-Type" content="text/css">
- <title>
- Preparing Eclipse
- </title>
- </head>
- <body>
- <h1>
- Mylar Task List</h1>
- <br>&nbsp;
- <table border="0" cellpadding="0" style="border-collapse: collapse"id="table1">
- <tr>
- <td valign="top">
- The Mylar Task List provides methods for creating and maintaining tasks
- and bug reports.&nbsp; In the order that they appear on the toolbar, the
- Task List provides the following features work managing task and bug
- reports:<ul>
- <li>Create task - add new task to Task List</li>
- <li>Create category - organize tasks and bug reports into groups</li>
- <li>Add or create new bugzilla report - add a bug report into Task List</li>
- <li>Add bugzilla query - creates a category that contains all bugzilla
- <br>
- reports that match the query</li>
- <li>Refresh - refresh all bug reports and bugzilla queries</li>
- <li>Filter tasks - set filters for Task List</li>
- </ul>
- <p>&nbsp;&nbsp;</td>
- <td valign="top">
- <img border="0" src="images/tasklist-overview.gif" width="378" height="287"></td>
- </tr>
- </table>
- <h3>Tasks</h3>
- <p>A task can be created with a description and a priority level. The
- priority level can be varied from P1 through P5 which is used for sorting
- and filtering the Task List. A task can be set to complete by right clicking
- and selecting &quot;Mark Complete&quot;. The completed tasks appear in the
- Task List
- with light gray font to distinguish it from incomplete tasks. More detailed
- information such as notes and related links can be added to the task by
- double clicking on the task, which will open an editor. A task can be
- activated by selecting the glasses icon in the first column, which will
- initiate the monitoring feature of mylar to store the task context. The
- active task and its category will appear in bold on the task list. The
- context stored for each task can be cleared by right clicking the task and
- selecting &quot;Clear Task Context&quot;.</p>
- <h3>Categories</h3>
- <p>A category can be created to organize the Task List. If a category is
- selected during task creation, the task will be added to that category. The
- drag and drop feature of the Task List allows tasks and bug reports to be
- moved from one category to another.</p>
- <h3>Bugzilla Reports</h3>
- <p>Bugzilla reports can be added to the Task List via two methods. An
- existing bug report can be downloaded from a bugzilla server or a new bug
- report can be created on a bugzilla server. The Task List shows the same
- details for the bug report as it does with tasks, but the icons are
- different. When the bug report is double clicked, the bug report will be
- opened by a bugzilla editor or an internal browser, which can be toggled in
- the preferences. A bugzilla report can be activated in the same manner as
- tasks.</p>
- <h3>Bugzilla Query</h3>
- <p>A bugzilla query is a category that is made up of all bug reports that
- match a specified query. When it is created, the user is presented with a
- dialog that presents query options similar to the search page on the
- bugzilla server. All hits form the query are added to the query and can be
- used like standard bug reports.</p>
- <h3>Filters</h3>
- <p>Filters are available to manage the Task List. There are two filters, one
- for filtering completed tasks, and one for filtering based on priorities.</p>
-
-<table cellpadding="10" cellspacing="0" width="600" id="table3">
- <tr>
- <td width="30%" valign="top" align="left">
- <p align="right"><b>Focus on a single task category</b></p>
- </td>
- <td width="70%" valign="top">
- <span style="background-color: #FFFFFF">To see only the tasks for a single category
- select the &quot;Go Into Category&quot; action from the context menu.&nbsp; To
- go back to viewing all tasks and categories under the root use the
- &quot;Go Up To Root&quot; action in the Task List's toolbar pull down menu
- (visible above).</span><p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/tasks-go-navigation.gif" width="284" height="74"></p>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" width="600" id="table5">
- <tr>
- <td>
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" width="600" id="table4">
- <tr>
- <td width="30%" valign="top" align="left">
- <p align="right"><b>Task history navigation</b></p>
- </td>
- <td width="70%" valign="top">
- Navigate between previously
- activate tasks using the Task List view's pull down menu (upper
- right-hand corner of the toolbar).<p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/tasks-history.gif"></p>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
-<table cellpadding="10" cellspacing="0" width="600" id="table6">
- <tr>
- <td width="30%" valign="top" align="left">
- <p align="right"><b>Quick filter</b></p>
- </td>
- <td width="70%" valign="top">
- To filter task by name or
- regexp type the filter text into the field and all matched tasks
- will display.&nbsp; Note that this will temporarily suppress all
- other filters.&nbsp; To clear the query press the &quot;x&quot; button to the
- right of the text field.<p>
- <img border="0" src="../../org.eclipse.mylar.doc/doc/images/0.3/tasks-quick-filter.gif" width="315" height="173"></p>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
-</table>
-
- </body>
-</html>
-
diff --git a/org.eclipse.mylyn.tasks.ui/doc/toc.xml b/org.eclipse.mylyn.tasks.ui/doc/toc.xml
deleted file mode 100644
index 6e92f0f3b..000000000
--- a/org.eclipse.mylyn.tasks.ui/doc/toc.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc link_to="../org.eclipse.mylyn.doc/doc/toc.xml#tasklist" label="Task List">
- <topic label="Task List" href="doc/tasklist.html">
- <!--
- <topic label="Task Planning" href="doc/planning.html"/>
- <topic label="Bugzilla Integration" href="doc/bugzilla.html"/>
- -->
- </topic>
-</toc>
-
-
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/bug-search.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/bug-search.gif
deleted file mode 100644
index b70606376..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/bug-search.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/filter-archive.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/filter-archive.gif
deleted file mode 100644
index 8a1fd4734..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/filter-archive.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/find.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/find.gif
deleted file mode 100644
index 2b645a88f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/find.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-due.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-due.gif
deleted file mode 100644
index 8ec39c96f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-due.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-offline.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-offline.gif
deleted file mode 100644
index 877069064..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-offline.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository-context.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository-context.gif
deleted file mode 100644
index 9e878c2dc..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository-context.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository.gif
deleted file mode 100644
index 1db6015cc..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-repository.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-web.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-web.gif
deleted file mode 100644
index b168c1c0e..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/overlay-web.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/task-activity.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/task-activity.gif
deleted file mode 100644
index 44ed28d04..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/task-activity.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/task-bug.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/task-bug.gif
deleted file mode 100644
index 99e9e98f2..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/task-bug.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/task-items.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/task-items.gif
deleted file mode 100644
index 946c6e694..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/task-items.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-completed.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-completed.gif
deleted file mode 100644
index c67f34739..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-completed.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-notes.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-notes.gif
deleted file mode 100644
index 77b112185..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/task-repository-notes.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/archive/task-server.gif b/org.eclipse.mylyn.tasks.ui/icons/archive/task-server.gif
deleted file mode 100644
index 71b1baba1..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/archive/task-server.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/elcl16/bug-search.gif b/org.eclipse.mylyn.tasks.ui/icons/elcl16/bug-search.gif
deleted file mode 100644
index b70606376..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/elcl16/bug-search.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool12/reply.gif b/org.eclipse.mylyn.tasks.ui/icons/etool12/reply.gif
deleted file mode 100644
index 4f8d77d64..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool12/reply.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool12/repository-synchronize-small.png b/org.eclipse.mylyn.tasks.ui/icons/etool12/repository-synchronize-small.png
deleted file mode 100644
index 358a47202..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool12/repository-synchronize-small.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool12/task-narrow.gif b/org.eclipse.mylyn.tasks.ui/icons/etool12/task-narrow.gif
deleted file mode 100644
index 03b9e2897..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool12/task-narrow.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/bug-report.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/bug-report.gif
deleted file mode 100644
index 54525a775..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/bug-report.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/calendar.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/calendar.gif
deleted file mode 100644
index 4126b3c27..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/calendar.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/capture-pause.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/capture-pause.gif
deleted file mode 100644
index 98e774380..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/capture-pause.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/category-archive.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/category-archive.gif
deleted file mode 100644
index 36c1f658f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/category-archive.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/category-new.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/category-new.gif
deleted file mode 100644
index d3f43d977..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/category-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/category.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/category.gif
deleted file mode 100644
index 7efb86ec1..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/category.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/comment.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/comment.gif
deleted file mode 100644
index fc30ce1d7..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/comment.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/compare.png b/org.eclipse.mylyn.tasks.ui/icons/etool16/compare.png
deleted file mode 100644
index 0cc6d5fb1..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/compare.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-add.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/context-add.gif
deleted file mode 100644
index 030eade39..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-add.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-attach.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/context-attach.gif
deleted file mode 100644
index bee8fc55f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-attach.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-clear.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/context-clear.gif
deleted file mode 100644
index cbb71bedc..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-clear.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-retrieve.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/context-retrieve.gif
deleted file mode 100644
index 02a46c82e..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-retrieve.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-transfer.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/context-transfer.gif
deleted file mode 100644
index 0a97a2d56..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/context-transfer.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/export.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/export.gif
deleted file mode 100644
index b22923179..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/export.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/icons-legend.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/icons-legend.gif
deleted file mode 100644
index f40ce6b17..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/icons-legend.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/import.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/import.gif
deleted file mode 100644
index 652ca6e76..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/import.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-next.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-next.gif
deleted file mode 100644
index 8933a21a7..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-next.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-active.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-active.gif
deleted file mode 100644
index 21f4ef5c3..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-active.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-pause.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-pause.gif
deleted file mode 100644
index a8259c40b..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous-pause.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous.gif
deleted file mode 100644
index cf81b050f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/navigate-previous.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/open-repository-task.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/open-repository-task.gif
deleted file mode 100644
index 79b22b7f9..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/open-repository-task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/open-task.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/open-task.gif
deleted file mode 100644
index 29d488858..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/open-task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/person.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/person.gif
deleted file mode 100644
index dc5a1af8f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/person.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/query-new.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/query-new.gif
deleted file mode 100644
index 09fcacad3..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/query-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/query-unmatched.png b/org.eclipse.mylyn.tasks.ui/icons/etool16/query-unmatched.png
deleted file mode 100644
index 941bd3fbe..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/query-unmatched.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/query.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/query.gif
deleted file mode 100644
index 94e7d5d1c..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/query.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/reply.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/reply.gif
deleted file mode 100644
index 4d1ec94d9..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/reply.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-new.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-new.gif
deleted file mode 100644
index b4832fc94..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-submit.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-submit.gif
deleted file mode 100644
index 2d2e4447d..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-submit.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-synchronize.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-synchronize.gif
deleted file mode 100644
index bb8538b39..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/repository-synchronize.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/sub-task-new.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/sub-task-new.gif
deleted file mode 100644
index ec27050fe..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/sub-task-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-active-centered.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-active-centered.gif
deleted file mode 100644
index eb74b26f2..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-active-centered.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-active.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-active.gif
deleted file mode 100644
index ca4bf9d0a..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-active.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-complete.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-complete.gif
deleted file mode 100644
index 9cacb96dc..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-complete.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-completed.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-completed.gif
deleted file mode 100644
index ec07a104e..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-completed.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-context.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-context.gif
deleted file mode 100644
index 407dc5495..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-context.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive-centered.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive-centered.gif
deleted file mode 100644
index 979ec18d4..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive-centered.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive.gif
deleted file mode 100644
index b55c1f528..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-inactive.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-incomplete.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-incomplete.gif
deleted file mode 100644
index f6b9f8a59..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-incomplete.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-new.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-new.gif
deleted file mode 100644
index e2cde50c2..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-notes.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-notes.gif
deleted file mode 100644
index fd01f49e0..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-notes.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-remote.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-remote.gif
deleted file mode 100644
index b06d68694..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-remote.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-history.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-history.gif
deleted file mode 100644
index 829d0797d..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-history.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-new.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-new.gif
deleted file mode 100644
index 5f3396137..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository-new.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository.gif
deleted file mode 100644
index 1dcbaaff9..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-repository.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-retrieve.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task-retrieve.gif
deleted file mode 100644
index ddfa476ab..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task-retrieve.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/task.gif b/org.eclipse.mylyn.tasks.ui/icons/etool16/task.gif
deleted file mode 100644
index a36803a98..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/task.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-export.png b/org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-export.png
deleted file mode 100644
index 21094d9f2..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-export.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-import.png b/org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-import.png
deleted file mode 100644
index 3a7ad363c..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/etool16/tasklist-import.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/focus.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/focus.gif
deleted file mode 100644
index bf8439c52..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/focus.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-due.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-due.gif
deleted file mode 100644
index 8ec39c96f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/overlay-due.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/perspective-planning.png b/org.eclipse.mylyn.tasks.ui/icons/eview16/perspective-planning.png
deleted file mode 100644
index e868d6a0f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/perspective-planning.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories-blue.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories-blue.gif
deleted file mode 100644
index 4ecfd3853..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories-blue.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories.gif
deleted file mode 100644
index a07632446..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/repository-middle.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/repository-middle.gif
deleted file mode 100644
index ae982990d..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/repository-middle.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/repository.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/repository.gif
deleted file mode 100644
index 81a3e0340..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/repository.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif
deleted file mode 100644
index 6ab2668f7..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/eview16/task-search.gif b/org.eclipse.mylyn.tasks.ui/icons/eview16/task-search.gif
deleted file mode 100644
index caa4b8510..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/eview16/task-search.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/obj16/attachment-patch.gif b/org.eclipse.mylyn.tasks.ui/icons/obj16/attachment-patch.gif
deleted file mode 100644
index c0e069d0d..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/obj16/attachment-patch.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/obj16/repository-small.gif b/org.eclipse.mylyn.tasks.ui/icons/obj16/repository-small.gif
deleted file mode 100644
index ceb1f9811..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/obj16/repository-small.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/obj16/resource_obj.gif b/org.eclipse.mylyn.tasks.ui/icons/obj16/resource_obj.gif
deleted file mode 100644
index 442d6d10f..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/obj16/resource_obj.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/obj16/workingSet.gif b/org.eclipse.mylyn.tasks.ui/icons/obj16/workingSet.gif
deleted file mode 100644
index 19f04861d..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/obj16/workingSet.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/ovr16/overlay-local.gif b/org.eclipse.mylyn.tasks.ui/icons/ovr16/overlay-local.gif
deleted file mode 100644
index 5494ff788..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/ovr16/overlay-local.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-context.gif b/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-context.gif
deleted file mode 100644
index f916a95d3..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-context.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-settings.gif b/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-settings.gif
deleted file mode 100644
index 5b43097f9..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository-settings.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository.gif b/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository.gif
deleted file mode 100644
index 08e472ad6..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/wizban/banner-repository.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/wizban/secur_role_wiz.gif b/org.eclipse.mylyn.tasks.ui/icons/wizban/secur_role_wiz.gif
deleted file mode 100644
index e05db64d3..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/wizban/secur_role_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/icons/wizban/workset_wiz.png b/org.eclipse.mylyn.tasks.ui/icons/wizban/workset_wiz.png
deleted file mode 100644
index b72021483..000000000
--- a/org.eclipse.mylyn.tasks.ui/icons/wizban/workset_wiz.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.tasks.ui/plugin.properties b/org.eclipse.mylyn.tasks.ui/plugin.properties
deleted file mode 100644
index 4c4a57574..000000000
--- a/org.eclipse.mylyn.tasks.ui/plugin.properties
+++ /dev/null
@@ -1,194 +0,0 @@
-#Properties file for org.eclipse.mylyn.tasks.ui
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Tasks UI
-
-duplicateDetectors.name = Stack Trace
-repositorySearchPage.name = Task Search Page
-ProjectPropertiesLinkProvider.name = Default Repository Link
-
-local.repository.name = Local Task Repository
-LocalRepositoryConnector.name = Local Repository Connector
-LocalRepositoryConnectorUi.name = Local Repository Ui
-
-CategorizedPresentation.name = Categorized
-ScheduledPresentation.name = Scheduled
-
-views.category.name = Tasks
-TaskListView.name = Task List
-TaskRepositoriesView.name = Task Repositories
-
-newWizards.category.name = Tasks
-NewLocalCategoryWizard.name = Category
-NewTaskWizard.name = Task
-NewQueryWizard.name = Query
-
-import.category.name = Tasks
-TaskDataImportWizard.name = Task List and Contexts
-TaskDataImportWizard.description = Import Task List data, useful for migrating workspaces.
-
-export.category.name = Tasks
-TaskDataExportWizard.name = Task List and Contexts
-TaskDataExportWizard.description = Export all Task List data, useful for migrating workspaces.
-
-TaskLabelDecorator.label = Task Decorator
-TaskLabelDecorator.description = Overlays information such as due date notifications
-
-TaskEditor.name = Task Editor
-CategoryEditor.name = Category Editor
-
-SynchronizeAllAction.label = Synchronize Changed
-SynchronizeAllAction.tooltip = Synchronize Changed
-RestoreTaskListAction.label = Restore Tasks from History...
-ShowTaskRepositoriesViewAction.label = Show Task Repositories View
-ShowTaskRepositoriesViewAction.tooltip = Show Task Repositories View
-OpenTaskSearchAction.label = Search Repository...
-NewTaskAction.label = New Task
-NewTaskAction.tooltip = New Task
-ShowTasksUiLegendAction.label = Show UI Legend
-ShowTasksUiLegendAction.tooltip = Show Tasks UI Legend
-SynchronizeSelectedAction.label = Synchronize
-SynchronizeSelectedAction.tooltip = Synchronize with Repository
-QueryCloneAction.label = Clone Query...
-QueryCloneAction.tooltip = Clone Repository Query
-CloneTaskAction.label = Clone Task...
-CloneTaskAction.tooltip = Clone Task
-RestoreTaskListAction.label = Restore Tasks from History...
-ExportAction.label = Export...
-ExportAction.tooltip = Export Tasks and Queries
-ImportAction.label = Import...
-ImportAction.tooltip = Import Tasks and Queries
-NewTaskAction.local.label = Local Task
-NewTaskAction.local.tooltip = New Task
-NewTaskAction.label = Task...
-NewTaskAction.tooltip = New Task
-NewQueryAction.label = Query...
-NewQueryAction.tooltip = New Query
-NewSubTaskAction.label = Subtask
-NewSubTaskAction.tooltip = New Subtask
-
-menu.new.label = New
-menu.operations.label = Import and Export
-
-NewCategoryAction.label = Category
-NewCategoryAction.tooltip = New Category
-RefreshRepositoryTasksAction.label = Synchronize All Tasks
-RefreshRepositoryTasksAction.tooltip = Synchronize All Tasks
-OpenRepositoryTask.label = Open &Repository Task...
-OpenRepositoryTask.tooltip = Open Repository Task
-NewQueryAction.skipFirstPage.label = New Query...
-NewQueryAction.skipFirstPage.tooltip = New Query
-NewTaskAction.skipFirstPage.label = New Task...
-NewTaskAction.skipFirstPage.tooltip = New Task
-CompareAttachmentsAction.label = Compare
-CompareAttachmentsAction.tooltip = Compare attachments
-
-keywords.label = mylyn tasks
-preferencePages.name = Tasks
-themeElementCategory.label = Tasks
-
-colors.foreground.today.scheduled.label = Tasks - Scheduled for Today
-colors.foreground.today.scheduled.description = Text color for tasks scheduled for today.
-colors.foreground.past.scheduled.label = Tasks - Past Scheduled Date
-colors.foreground.past.scheduled.description = Text color for tasks past their scheduled date.
-colors.foreground.past.due.label = Tasks - Past Due Date
-colors.foreground.past.due.description = Text color tasks past their due date.
-colors.foreground.thisweek.scheduled.label = Tasks - Scheduled for This Week
-colors.foreground.thisweek.scheduled.description = Text color for tasks scheduled for this week
-colors.foreground.today.completed.label = Tasks - Completed Today
-colors.foreground.today.completed.description = Text color for tasks completed today.
-colors.foreground.completed.label = Tasks - Completed
-colors.foreground.completed.description = Text color for completed tasks.
-colors.incoming.background.label = Task Editor - Incoming Changes
-colors.incoming.background.description = Background color of attributes with incoming changes.
-colors.category.gradient.start.label = Task List - Category Gradient Top
-colors.category.gradient.start.description = Background start color for Task List category gradients.
-colors.category.gradient.end.label = Task List - Category Gradient Bottom
-colors.category.gradient.end.description = Background end color for Task List category gradients.
-
-fonts.task.editor.comment.label = Task Editor - Notes and Comments
-fonts.task.editor.comment.description = Text font used for task editor text areas.
-
-PlanningPerspectiveFactory.name = Planning
-actionSet.navigation.label = Task Navigation
-
-DeactivateAllTasksAction.label = &Deactivate Task
-ActivateTaskDialogAction.label = &Activate Task...
-OpenTaskAction.label = Open Tas&k...
-OpenTaskAction.tooltip = Open Task
-SearchForRepositoryTask.label = Search for Repository Task...
-SearchForRepositoryTask.tooltip = Search for Repository Task
-command.previousTask.name = Previous Task Command
-
-actionSet.navigation.additions.label = Task Navigation Extras
-ActivateTaskHistoryDropDownAction.label = Activate Previous Task
-ActivateTaskHistoryDropDownAction.tooltip = Activate Previous Task
-OpenRepositoryTask.label = Open &Repository Task...
-OpenRepositoryTask.tooltip = Open Repository Task
-
-ommand.openTask.name = Open Task
-command.searchForTask.name = Search Repository for Task
-command.openRemoteTask.name = Open Remote Task
-command.activateTask.name = Activate Task
-command.deactivateAllTasks.name = Deactivate Task
-
-TaskSearchPage.label = Task Search
-ProjectTaskRepositoryPage.name = Task Repository
-
-commands.category.repositories.name = Task Repositories
-command.addTaskRepository.name = Add Task Repository...
-command.addTaskRepository.commandParameter.name = Repository Type
-
-TaskHyperlinkDetector.name = Tasks
-TaskUrlHyperlinkDetector.name = Task URLs
-TaskUrlHyperlinkDetector.description = Task URL hyperlink detector
-
-TaskWorkingSetElementAdapter.name = Tasks and Resources
-
-hyperlinkDetectorTargets.name = Task Editor
-
-command.goToPreviousUnread.name = Go To Previous Unread Task
-command.goToNextUnread.name = Go To Next Unread Task
-command.showToolTip.name = Show Tooltip Description
-command.markTaskRead.name = Mark Task Read
-command.markTaskUnread.name = Mark Task Unread
-command.markTaskReadGoToNextUnread.name = Mark Task Read and Go To Next Unread Task
-command.markTaskReadGoToPreviousUnread.name = Mark Task Read and Go To Previous Unread Task
-command.markTaskComplete.name = Mark Task Complete
-command.markTaskIncomplete.name = Mark Task Incomplete
-command.task.clearOutgoing.name = Clear Outgoing Changes
-command.new.subtask.name = New Subtask
-command.new.local.task.name = New Local Task
-
-commands.category.name = Task
-command.openSelectedTask.name = Open Selected Task
-command.attachment.openInBrowser.name = Open Attachment in Browser
-
-commands.category.editor.name = Task Editor
-command.attachment.openInDefaultEditor.name = Open Attachment in Default Editor
-command.submitTask.name = Submit Task
-command.submitTask.description = Submits the currently open task
-
-context.views.tasks.name = In Tasks View
-filters.tasks.name = Task List Elements (Recommended)
-filters.tasks.description = Hides Task List Elements from Common Navigators
-
-command.attachment.openInBrowser.label = Open With Browser
-command.attachment.openInDefaultEditor.menu.label = Open With
-command.attachment.openInDefaultEditor.label = Default Editor
-
-menu.task.mark.label = &Mark as
-command.markTaskRead.label = Read
-command.markTaskUnread.label = Unread
-command.task.clearOutgoing.label = Clear Outgoing
-command.markTaskComplete.label = Complete
-command.markTaskIncomplete.label = Incomplete
-command.goToPreviousUnread.label = Previous Unread Task
-command.goToNextUnread.label = Next Unread Task
-
-tasks.bugs.errorReporter.label = Report Error as Bug
-
-command.maximizePart.name = Maximize Part
-command.maximizePart.description = Maximize Part
-commands.ViewSourceHandler.name = View Unformatted Text
-
-context.editors.task.name = In Tasks Editor
diff --git a/org.eclipse.mylyn.tasks.ui/plugin.xml b/org.eclipse.mylyn.tasks.ui/plugin.xml
deleted file mode 100644
index 4f3e94999..000000000
--- a/org.eclipse.mylyn.tasks.ui/plugin.xml
+++ /dev/null
@@ -1,1846 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension-point id="actions" name="Tasklist Actions" schema="schema/actions.exsd"/>
- <extension-point id="repositories" name="Task Repositories" schema="schema/repositories.exsd"/>
- <extension-point id="editors" name="Task Editors" schema="schema/editors.exsd"/>
- <extension-point id="projectLinkProviders" name="Linking Provider from Project to the Task Repository" schema="schema/projectLinkProviders.exsd"/>
- <extension-point id="duplicateDetectors" name="duplicateDetectors" schema="schema/duplicateDetectors.exsd"/>
- <extension-point id="presentations" name="presentations" schema="schema/presentations.exsd"/>
- <extension-point id="taskEditorExtensions" name="Task Editor Extension" schema="schema/taskEditorExtensions.exsd"/>
- <extension-point id="taskRepositoryPageContribution" name="Task Repository Page Contribution" schema="schema/taskRepositoryPageContribution.exsd"/>
-
- <extension
- point="org.eclipse.mylyn.context.core.bridges">
- <!--
- <contextStore
- class="org.eclipse.mylyn.internal.tasks.ui.LocalContextStore">
- </contextStore>
- -->
- </extension>
- <extension
- point="org.eclipse.mylyn.tasks.ui.duplicateDetectors">
- <detector
- class="org.eclipse.mylyn.internal.tasks.ui.search.StackTraceDuplicateDetector"
- name="%duplicateDetectors.name">
- </detector>
- </extension>
-
- <extension point="org.eclipse.ui.views">
- <category name="%views.category.name" id="org.eclipse.mylyn.ui"/>
- <view
- allowMultiple="true"
- category="org.eclipse.mylyn.ui"
- class="org.eclipse.mylyn.internal.tasks.ui.views.TaskListView"
- icon="icons/eview16/task-list.gif"
- id="org.eclipse.mylyn.tasks.ui.views.tasks"
- name="%TaskListView.name"/>
- <view
- id="org.eclipse.mylyn.tasks.ui.views.repositories"
- allowMultiple="false"
- category="org.eclipse.mylyn.ui"
- class="org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesView"
- icon="icons/eview16/repositories.gif"
- name="%TaskRepositoriesView.name">
- </view>
- </extension>
-
- <extension point="org.eclipse.ui.newWizards">
- <category name="%newWizards.category.name" id="org.eclipse.mylyn.ui.wizards.new"/>
- </extension>
-
- <extension
- name="Task List Startup (required)"
- point="org.eclipse.ui.startup">
- <startup
- class="org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin$TasksUiStartup">
- </startup>
- </extension>
-
- <!--
- <extension
- id="org.eclipse.mylyn.helpDocs"
- name="Mylyn Help"
- point="org.eclipse.help.toc">
- <toc
- file="doc/toc.xml"
- primary="false">
- </toc>
- </extension>
- -->
- <extension
- point="org.eclipse.ui.elementFactories">
- <factory
- class="org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorInputFactory"
- id="org.eclipse.mylyn.tasks.ui.elementFactories.task.editor">
- </factory>
- </extension>
- <extension point="org.eclipse.ui.newWizards">
- <!--<wizard
- canFinishEarly="true"
- category="org.eclipse.mylyn.wizards"
- class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard"
- hasPages="false"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.wizards.new.task"
- name="Task"/> -->
- <wizard
- canFinishEarly="true"
- category="org.eclipse.mylyn.ui.wizards.new"
- class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalCategoryWizard"
- hasPages="false"
- icon="icons/etool16/category-new.gif"
- id="org.eclipse.mylyn.tasks.ui.wizards.new.category"
- name="%NewLocalCategoryWizard.name">
- </wizard>
- <wizard
- category="org.eclipse.mylyn.ui.wizards.new"
- class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewTaskWizardInternal"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task"
- name="%NewTaskWizard.name"/>
- <wizard
- category="org.eclipse.mylyn.ui.wizards.new"
- class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewQueryWizard"
- icon="icons/etool16/query-new.gif"
- id="org.eclipse.mylyn.tasks.ui.wizards.new.query"
- name="%NewQueryWizard.name"/>
- </extension>
-
- <extension
- point="org.eclipse.ui.importWizards">
- <wizard
- category="org.eclipse.mylyn.tasks.ui.wizards.import.category"
- class="org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataImportWizard"
- icon="icons/etool16/tasklist-import.png"
- id="org.eclipse.mylyn.tasks.ui.wizards.import"
- name="%TaskDataImportWizard.name">
- <description>
- %TaskDataImportWizard.description
- </description>
- </wizard>
- <category
- id="org.eclipse.mylyn.tasks.ui.wizards.import.category"
- name="%import.category.name"/>
- </extension>
-
- <extension point="org.eclipse.ui.exportWizards">
- <wizard
- category="org.eclipse.mylyn.tasks.ui.wizards.export.category"
- class="org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataExportWizard"
- icon="icons/etool16/tasklist-export.png"
- id="org.eclipse.mylyn.tasks.ui.wizards.export"
- name="%TaskDataExportWizard.name">
- <description>
- %TaskDataExportWizard.description
- </description>
- </wizard>
- <category
- id="org.eclipse.mylyn.tasks.ui.wizards.export.category"
- name="%export.category.name"/>
- </extension>
-
- <extension point="org.eclipse.ui.decorators">
- <decorator
- class="org.eclipse.mylyn.internal.tasks.ui.TaskLabelDecorator"
- id="org.eclipse.mylyn.tasks.ui.decorators.task"
- label="%TaskLabelDecorator.label"
- lightweight="true"
- state="true">
- <description>
- %TaskLabelDecorator.description
- </description>
- <enablement>
- <or>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer">
- </objectClass>
- <objectClass
- name="org.eclipse.mylyn.tasks.core.TaskRepository">
- </objectClass>
- </or>
- </enablement>
- </decorator>
- </extension>
-
- <extension
- point="org.eclipse.ui.editors">
- <editor
- class="org.eclipse.mylyn.tasks.ui.editors.TaskEditor"
- contributorClass="org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorActionContributor"
- icon="icons/etool16/task.gif"
- id="org.eclipse.mylyn.tasks.ui.editors.task"
- name="%TaskEditor.name"/>
- <editor
- icon="icons/etool16/task.gif"
- class="org.eclipse.mylyn.internal.tasks.ui.editors.CategoryEditor"
- name="%CategoryEditor.name"
- id="org.eclipse.mylyn.tasks.ui.editors.category"/>
- </extension>
-
- <extension point="org.eclipse.ui.perspectiveExtensions">
- <perspectiveExtension targetID="org.eclipse.jdt.ui.JavaPerspective">
- <viewShortcut id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
- <view
- closeable="true"
- id="org.eclipse.mylyn.tasks.ui.views.tasks"
- minimized="false"
- moveable="true"
- ratio="0.5"
- relationship="top"
- relative="org.eclipse.ui.views.ContentOutline"
- visible="true"/>
- <newWizardShortcut
- id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task">
- </newWizardShortcut>
- </perspectiveExtension>
- <perspectiveExtension targetID="org.eclipse.jdt.ui.JavaBrowsingPerspective">
- <viewShortcut id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
- </perspectiveExtension>
- <perspectiveExtension
- targetID="org.eclipse.ui.resourcePerspective">
- <viewShortcut id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
- <view
- closeable="true"
- id="org.eclipse.mylyn.tasks.ui.views.tasks"
- minimized="false"
- relationship="stack"
- relative="org.eclipse.ui.views.ContentOutline">
- </view>
- <newWizardShortcut
- id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task">
- </newWizardShortcut>
- </perspectiveExtension>
- <perspectiveExtension
- targetID="org.eclipse.mylyn.tasks.ui.perspectives.planning">
- <newWizardShortcut
- id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task">
- </newWizardShortcut>
- <viewShortcut
- id="org.eclipse.mylyn.tasks.ui.views.repositories">
- </viewShortcut>
- </perspectiveExtension>
-
- <perspectiveExtension targetID="org.eclipse.team.cvs.ui.cvsPerspective">
- <view
- id="org.eclipse.mylyn.tasks.ui.views.repositories"
- minimized="false"
- ratio="0.7"
- relationship="bottom"
- relative="org.eclipse.team.ccvs.ui.RepositoriesView"
- visible="true"/>
- <viewShortcut id="org.eclipse.mylyn.tasks.ui.views.repositories"/>
- </perspectiveExtension>
-
- <perspectiveExtension targetID="org.eclipse.team.ui.TeamSynchronizingPerspective">
- <view
- id="org.eclipse.mylyn.tasks.ui.views.repositories"
- minimized="false"
- ratio="0.7"
- relationship="bottom"
- relative="org.eclipse.team.sync.views.SynchronizeView"
- visible="true"/>
- <viewShortcut id="org.eclipse.mylyn.tasks.ui.views.repositories"/>
- </perspectiveExtension>
- </extension>
-
- <extension point="org.eclipse.ui.viewActions">
- <viewContribution
- id="org.eclipse.mylyn.tasks.ui.actions.view"
- targetID="org.eclipse.mylyn.tasks.ui.views.tasks">
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeAllAction"
- enablesFor="*"
- icon="icons/etool16/repository-synchronize.gif"
- id="org.eclipse.mylyn.tasks.ui.synchronize.changed"
- label="%SynchronizeAllAction.label"
- menubarPath="tasks"
- toolbarPath="new"
- tooltip="%SynchronizeAllAction.tooltip">
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.RestoreTaskListAction"
- icon="icons/etool16/import.gif"
- id="org.eclipse.mylyn.tasks.ui.tasks.restore"
- label="%RestoreTaskListAction.label"
- menubarPath="tasks"
- style="push">
- </action>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.ShowTaskRepositoriesViewAction"
- enablesFor="*"
- icon="icons/eview16/repositories.gif"
- id="org.eclipse.mylyn.tasks.ui.open.repositories.view"
- label="%ShowTaskRepositoriesViewAction.label"
- menubarPath="tasks"
- tooltip="%ShowTaskRepositoriesViewAction.tooltip">
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskSearchAction"
- icon="icons/eview16/task-search.gif"
- id="org.eclipse.mylyn.tasks.ui.search.open"
- label="%OpenTaskSearchAction.label"
- menubarPath="tasks">
- </action>
-
- <!-- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction"
- enablesFor="*"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.new.repository.task"
- label="%NewTaskAction.label"
- style="push"
- toolbarPath="new"
- tooltip="%NewTaskAction.tooltip">
- </action>-->
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.ShowTasksUiLegendAction"
- icon="icons/etool16/icons-legend.gif"
- id="org.eclipse.mylyn.doc.legend.show.action"
- label="%ShowTasksUiLegendAction.label"
- menubarPath="additions"
- style="push"
- tooltip="%ShowTasksUiLegendAction.tooltip">
- </action>
- <!--<action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.new.task"
- label="Task"
- style="push"
- toolbarPath="new"
- tooltip="New Task">
- </action> -->
- <!--
- <action
- class="org.eclipse.mylyn.internal.tasklist.ui.actions.CopyDetailsAction"
- id="org.eclipse.mylyn.tasklist.copy.details"
- label="Copy Details"
- style="push"/>
- -->
- </viewContribution>
- </extension>
-
- <extension point="org.eclipse.ui.popupMenus">
-
- <viewerContribution
- id="org.eclipse.mylyn.tasklist.ui.viewerContribution"
- targetID="org.eclipse.mylyn.tasks.ui.views.tasks">
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeSelectedAction"
- definitionId="org.eclipse.ui.file.refresh"
- enablesFor="*"
- icon="icons/etool16/repository-synchronize.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.synchronize.selected"
- label="%SynchronizeSelectedAction.label"
- menubarPath="repository"
- tooltip="%SynchronizeSelectedAction.tooltip">
- <enablement>
- <and>
- <not>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.LocalTask">
- </objectClass>
- </not>
- <or>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.RepositoryQuery">
- </objectClass>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </objectClass>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer">
- </objectClass>
- </or>
- </and>
- </enablement>
- </action>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.QueryCloneAction"
- enablesFor="org.eclipse.mylyn.internal.tasks.core.RepositoryQuery"
- icon="icons/etool16/query-new.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.clone.query"
- label="%QueryCloneAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/clone"
- tooltip="%QueryCloneAction.tooltip">
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.CloneTaskAction"
- enablesFor="1"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.task.query"
- label="%CloneTaskAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/clone"
- tooltip="%CloneTaskAction.tooltip">
- <enablement>
-<!-- <and> -->
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </objectClass>
-<!--
- <not>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.LocalTask">
- </objectClass>
- </not>
- </and>
--->
- </enablement>
- </action>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.RestoreTaskListAction"
- icon="icons/etool16/import.gif"
- id="org.eclipse.mylyn.tasks.ui.tasks.restore"
- label="%RestoreTaskListAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.operations/restore"
- style="push">
- </action>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.ExportAction"
- enablesFor="+"
- icon="icons/etool16/export.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.export"
- label="%ExportAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.operations/importexport"
- tooltip="%ExportAction.tooltip">
- </action>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.ImportAction"
- enablesFor="*"
- icon="icons/etool16/import.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.import"
- label="%ImportAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.operations/importexport"
- tooltip="%ImportAction.tooltip">
- </action>
-
-
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction:local"
- enablesFor="*"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.new.local.task"
- definitionId="org.eclipse.mylyn.tasks.ui.command.new.local.task"
- label="%NewTaskAction.local.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/local"
- tooltip="%NewTaskAction.local.tooltip"/>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction"
- enablesFor="*"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.new.repository.task"
- label="%NewTaskAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/repository"
- tooltip="%NewTaskAction.tooltip"/>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewQueryAction"
- enablesFor="*"
- icon="icons/etool16/query-new.gif"
- id="org.eclipse.mylyn.tasks.ui.new.query"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/repository"
- label="%NewQueryAction.label"
- style="push"
- tooltip="%NewQueryAction.tooltip">
- </action>
-
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewSubTaskAction"
- definitionId="org.eclipse.mylyn.tasks.ui.command.new.subtask"
- enablesFor="1"
- icon="icons/etool16/sub-task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.new.subtask"
- label="%NewSubTaskAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/afterRepository"
- tooltip="%NewSubTaskAction.tooltip">
- <enablement>
- <objectClass
- name="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </objectClass>
- </enablement>
- </action>
-
- <menu
- id="org.eclipse.mylyn.tasks.ui.menu.new"
- label="%menu.new.label"
- path="new">
- <separator
- name="repository">
- </separator>
- <groupMarker
- name="afterRepository">
- </groupMarker>
- <separator
- name="clone">
- </separator>
- <separator
- name="local">
- </separator>
-
- </menu>
-
- <menu
- id="org.eclipse.mylyn.tasks.ui.menu.operations"
- label="%menu.operations.label"
- path="operations">
- <separator
- name="clone">
- </separator>
- <separator
- name="import">
- </separator>
- <separator
- name="export">
- </separator>
- </menu>
-
-
- <!--<action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.new.task"
- label="Task"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/local"
- style="push"
- tooltip="New Task">
- </action>-->
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewCategoryAction"
- icon="icons/etool16/category-new.gif"
- id="org.eclipse.mylyn.tasks.ui.actions.new.category"
- label="%NewCategoryAction.label"
- menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/local"
- tooltip="%NewCategoryAction.tooltip">
- </action>
- </viewerContribution>
- <viewerContribution
- id="org.eclipse.mylyn.tasks.ui.viewerContribution"
- targetID="org.eclipse.mylyn.tasks.ui.views.repositories">
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.RefreshRepositoryTasksAction"
- icon="icons/etool16/repository-synchronize.gif"
- id="org.eclipse.mylyn.tasks.ui.open.task.remote"
- label="%RefreshRepositoryTasksAction.label"
- menubarPath="repository"
- style="push"
- tooltip="%RefreshRepositoryTasksAction.tooltip">
- <enablement>
- <and>
- <objectState name="offline" value="false"/>
- <objectState name="hasRepository" value="true"/>
- </and>
- </enablement>
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.OpenRepositoryTaskAction"
- definitionId="org.eclipse.mylyn.tasks.ui.command.openRemoteTask"
- icon="icons/etool16/open-repository-task.gif"
- id="org.eclipse.mylyn.tasks.ui.open.task.remote"
- label="%OpenRepositoryTask.label"
- menubarPath="repository"
- style="push"
- tooltip="%OpenRepositoryTask.tooltip">
- <enablement>
- <and>
- <objectState name="offline" value="false"/>
- <objectState name="hasRepository" value="true"/>
- </and>
- </enablement>
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewQueryAction:skipFirstPage"
- enablesFor="*"
- icon="icons/etool16/query-new.gif"
- id="org.eclipse.mylyn.tasks.ui.new.query"
- label="%NewQueryAction.skipFirstPage.label"
- menubarPath="repository"
- style="push"
- tooltip="%NewQueryAction.skipFirstPage.tooltip">
- <enablement>
- <and>
- <objectState name="offline" value="false"/>
- <objectState name="supportQuery" value="true"/>
- </and>
- </enablement>
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction:skipFirstPage"
- enablesFor="*"
- icon="icons/etool16/task-new.gif"
- id="org.eclipse.mylyn.tasks.ui.new.repository.task"
- label="%NewTaskAction.skipFirstPage.label"
- menubarPath="repository"
- tooltip="%NewTaskAction.skipFirstPage.tooltip">
- <enablement>
- <and>
- <objectState name="offline" value="false"/>
- <objectState name="supportNewTask" value="true"/>
- </and>
- </enablement>
- </action>
- </viewerContribution>
-
- <objectContribution
- adaptable="false"
- id="org.eclipse.mylyn.tasks.ui.contribution.attachment.compare"
- objectClass="org.eclipse.mylyn.tasks.core.ITaskAttachment">
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.CompareAttachmentsAction"
- enablesFor="2"
- icon="icons/etool16/compare.png"
- id="org.eclipse.mylyn.tasks.ui.action.attachment.compare"
- label="%CompareAttachmentsAction.label"
- menubarPath="actions"
- tooltip="%CompareAttachmentsAction.tooltip"/>
- </objectContribution>
-
- </extension>
-
- <extension
- point="org.eclipse.ui.keywords">
- <keyword
- label="%keywords.label"
- id="org.eclipse.mylyn.tasks.ui.keywords"/>
- </extension>
-
- <extension point="org.eclipse.ui.preferencePages">
- <page
- name="%preferencePages.name"
- class="org.eclipse.mylyn.internal.tasks.ui.preferences.TasksUiPreferencePage"
- id="org.eclipse.mylyn.tasks.ui.preferences">
- <keywordReference
- id="org.eclipse.mylyn.tasks.ui.keywords"/>
- </page>
- </extension>
-
- <extension point="org.eclipse.ui.bindings">
- <key
- sequence="M2+M3+Q K"
- commandId="org.eclipse.ui.views.showView"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
- <parameter
- id="org.eclipse.ui.views.showView.viewId"
- value="org.eclipse.mylyn.tasks.ui.views.tasks"/>
- </key>
- <key
- platform="carbon"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+Q K">
- </key>
- <key
- commandId="org.eclipse.ui.views.showView"
- platform="carbon"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="COMMAND+ALT+Q K">
- <parameter
- id="org.eclipse.ui.views.showView.viewId"
- value="org.eclipse.mylyn.tasks.ui.views.tasks">
- </parameter>
- </key>
- <key
- platform="cocoa"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+Q K">
- </key>
- <key
- commandId="org.eclipse.ui.views.showView"
- platform="cocoa"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="COMMAND+ALT+Q K">
- <parameter
- id="org.eclipse.ui.views.showView.viewId"
- value="org.eclipse.mylyn.tasks.ui.views.tasks">
- </parameter>
- </key>
- </extension>
-
- <extension
- point="org.eclipse.ui.themes">
- <themeElementCategory
- id="org.eclipse.mylyn.tasks.ui.presentation"
- label="%themeElementCategory.label"/>
-
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.foreground.today.scheduled"
- isEditable="true"
- label="%colors.foreground.today.scheduled.label"
- value="32,21,223">
- <description>
- %colors.foreground.today.scheduled.description
- </description>
- </colorDefinition>
-
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.foreground.past.scheduled"
- isEditable="true"
- label="%colors.foreground.past.scheduled.label"
- value="32,21,223">
- <description>
- %colors.foreground.past.scheduled.description
- </description>
- </colorDefinition>
-
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.foreground.past.due"
- isEditable="true"
- label="%colors.foreground.past.due.label"
- value="198,4,38">
- <description>
- %colors.foreground.past.due.description
- </description>
- </colorDefinition>
-
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.foreground.thisweek.scheduled"
- isEditable="true"
- label="%colors.foreground.thisweek.scheduled.label"
- value="0,0,0">
- <description>
- %colors.foreground.thisweek.scheduled.description
- </description>
- </colorDefinition>
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.foreground.today.completed"
- isEditable="true"
- label="%colors.foreground.today.completed.label"
- value="107,169,128">
- <description>
- %colors.foreground.today.completed.description
- </description>
- </colorDefinition>
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.foreground.completed"
- isEditable="true"
- label="%colors.foreground.completed.label"
- value="128,128,128">
- <description>
- %colors.foreground.completed.description
- </description>
- </colorDefinition>
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.incoming.background"
- isEditable="true"
- label="%colors.incoming.background.label"
- value="225,236,255">
- <description>
- %colors.incoming.background.description
- </description>
- </colorDefinition>
-
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.category.gradient.start"
- isEditable="true"
- label="%colors.category.gradient.start.label"
- value="240,240,240">
- <description>
- %colors.category.gradient.start.description
- </description>
- </colorDefinition>
-
- <colorDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.colors.category.gradient.end"
- isEditable="true"
- label="%colors.category.gradient.end.label"
- value="220,220,220"> <!-- was all 220, 234,233,237 -->
- <description>
- %colors.category.gradient.end.description
- </description>
- </colorDefinition>
-
- <fontDefinition
- categoryId="org.eclipse.mylyn.tasks.ui.presentation"
- id="org.eclipse.mylyn.tasks.ui.fonts.task.editor.comment"
- isEditable="true"
- label="%fonts.task.editor.comment.label"
- value="org.eclipse.jface.dialogfont">
- <fontValue
- ws="win32"
- value="Tahoma-regular-10">
- </fontValue>
- <description>
- %fonts.task.editor.comment.description
- </description>
- </fontDefinition>
- </extension>
- <!-- defaultsTo="org.eclipse.jface.dialogfont"-->
-
- <extension
- point="org.eclipse.ui.perspectives">
- <perspective
- class="org.eclipse.mylyn.internal.tasks.ui.PlanningPerspectiveFactory"
- fixed="false"
- icon="icons/eview16/perspective-planning.png"
- id="org.eclipse.mylyn.tasks.ui.perspectives.planning"
- name="%PlanningPerspectiveFactory.name"/>
- </extension>
-
-
- <extension point="org.eclipse.mylyn.tasks.ui.actions">
- <dynamicPopupMenu
- class="org.eclipse.mylyn.internal.tasks.ui.ScheduleTaskMenuContributor"
- menuPath="tasks"/>
- <dynamicPopupMenu
- class="org.eclipse.mylyn.internal.tasks.ui.MoveToCategoryMenuContributor"
- menuPath="tasks"/>
- </extension>
-
- <extension
- point="org.eclipse.mylyn.tasks.ui.editors">
- <pageFactory
- class="org.eclipse.mylyn.internal.tasks.ui.editors.PlanningPageFactory"
- id="org.eclipse.mylyn.tasks.ui.pageFactory.Planning">
- </pageFactory>
- </extension>
-
- <extension
- point="org.eclipse.ui.actionSets">
- <actionSet
- id="org.eclipse.mylyn.tasks.ui.navigation"
- label="%actionSet.navigation.label"
- visible="true">
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.DeactivateAllTasksAction"
- definitionId="org.eclipse.mylyn.tasks.ui.command.deactivateAllTasks"
- icon="icons/etool16/task-inactive-centered.gif"
- id="org.eclipse.mylyn.tasks.ui.deactivateAllTasks"
- label="%DeactivateAllTasksAction.label"
- menubarPath="navigate/open.ext3"
- style="push"/>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.ActivateTaskDialogAction"
- definitionId="org.eclipse.mylyn.tasks.ui.command.activateTask"
- icon="icons/etool16/task-active-centered.gif"
- id="org.eclipse.mylyn.tasks.ui.switchTask"
- label="%ActivateTaskDialogAction.label"
- menubarPath="navigate/open.ext3"
- style="push"/>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskAction"
- definitionId="org.eclipse.mylyn.tasks.ui.command.openTask"
- icon="icons/etool16/open-task.gif"
- id="org.eclipse.mylyn.tasks.ui.openTask"
- label="%OpenTaskAction.label"
- menubarPath="navigate/open.ext3"
- style="push"
- toolbarPath="org.eclipse.search.searchActionSet/Search"
- tooltip="%OpenTaskAction.tooltip"/>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.SearchForRepositoryTask"
- definitionId="org.eclipse.mylyn.tasks.ui.command.searchForTask"
- icon="icons/etool16/open-repository-task.gif"
- id="org.eclipse.mylyn.tasks.ui.open.task.remote"
- label="%SearchForRepositoryTask.label"
- style="push"
- tooltip="%SearchForRepositoryTask.tooltip"/>
- </actionSet>
- </extension>
-
- <extension point="org.eclipse.ui.commands">
- <command id="org.eclipse.mylyn.tasks.ui.command.previousTask"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.TaskHistoryHandler"
- name="%command.previousTask.name"/>
- </extension>
-
- <!-- command-based implementation of the previousTask/history dropdown,
- the problem is that it doesn't work well with the actionSet
- <extension point="org.eclipse.ui.menus">
- <menuContribution locationURI="menu:org.eclipse.mylyn.tasks.ui.previous.task">
- <dynamic
- class="org.eclipse.mylyn.internal.tasks.ui.TaskHistoryDropDown"
- id="org.eclipse.mylyn.tasks.ui.previous.task.dropdown"/>
- </menuContribution>
- </extension>
-
- <extension point="org.eclipse.ui.menus">
- <menuContribution locationURI="toolbar:org.eclipse.ui.workbench.navigate">
- <command id="org.eclipse.mylyn.tasks.ui.previous.task"
- commandId="org.eclipse.mylyn.tasks.ui.command.previousTask"
- icon="icons/etool16/navigate-previous.gif"
- label="Activate Previous Task"
- tooltip="Activate Previous Task"
- style="pulldown">
- <visibleWhen>
- <with variable="activeContexts">
- <iterate operator="or">
- <equals value="org.eclipse.mylyn.tasks.ui.navigation.additions"/>
- </iterate>
- </with>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- -->
-
- <extension point="org.eclipse.ui.actionSets">
- <actionSet
- id="org.eclipse.mylyn.tasks.ui.navigation.additions"
- label="%actionSet.navigation.additions.label"
- visible="false">
- <action
- allowLabelUpdate="true"
- class="org.eclipse.mylyn.internal.tasks.ui.actions.ActivateTaskHistoryDropDownAction"
- icon="icons/etool16/navigate-previous.gif"
- id="org.eclipse.mylyn.tasks.ui.navigate.task.history"
- label="%ActivateTaskHistoryDropDownAction.label"
- style="pulldown"
- toolbarPath="org.eclipse.ui.workbench.navigate/Tasks"
- tooltip="%ActivateTaskHistoryDropDownAction.tooltip">
- </action>
- <action
- class="org.eclipse.mylyn.internal.tasks.ui.actions.OpenRepositoryTaskAction"
- definitionId="org.eclipse.mylyn.tasks.ui.command.openRemoteTask"
- icon="icons/etool16/open-repository-task.gif"
- id="org.eclipse.mylyn.tasks.ui.open.task.remote"
- label="%OpenRepositoryTask.label"
- menubarPath="navigate/open.ext3"
- style="push"
- tooltip="%OpenRepositoryTask.tooltip"/>
- </actionSet>
- </extension>
-
- <extension
- point="org.eclipse.ui.commands">
- <command
- categoryId="org.eclipse.ui.category.navigate"
- id="org.eclipse.mylyn.tasks.ui.command.openTask"
- name="%ommand.openTask.name"/>
- <command
- categoryId="org.eclipse.ui.category.navigate"
- id="org.eclipse.mylyn.tasks.ui.command.searchForTask"
- name="%command.searchForTask.name"/>
- <command
- categoryId="org.eclipse.ui.category.navigate"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.OpenRepositoryTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.openRemoteTask"
- name="%command.openRemoteTask.name"/>
- <command
- categoryId="org.eclipse.ui.category.navigate"
- id="org.eclipse.mylyn.tasks.ui.command.activateTask"
- name="%command.activateTask.name"/>
- <command
- categoryId="org.eclipse.ui.category.navigate"
- id="org.eclipse.mylyn.tasks.ui.command.deactivateAllTasks"
- name="%command.deactivateAllTasks.name"/>
- </extension>
- <extension
- point="org.eclipse.ui.bindings">
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.openTask"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+F12"/>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.openTask"
- platform="carbon"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+M3+F12">
- </key>
- <key
- platform="carbon"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+F12">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.openTask"
- platform="cocoa"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+M3+F12">
- </key>
- <key
- platform="cocoa"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+F12">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.searchForTask"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+M2+F12"/>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.openRemoteTask"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+M2+M3+F12"/>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.activateTask"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+F9"/>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.deactivateAllTasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+M2+F9"/>
- </extension>
-
- <extension
- id="org.eclipse.mylyn.tasks.ui.search.results"
- point="org.eclipse.search.searchResultViewPages">
- <viewPage
- class="org.eclipse.mylyn.internal.tasks.ui.search.RepositorySearchResultView"
- searchResultClass="org.eclipse.mylyn.internal.tasks.ui.search.RepositorySearchResult"
- id="org.eclipse.mylyn.internal.tasks.ui.search.RepositorySearchResultView"/>
-<!-- id="org.eclipse.mylyn.bugzilla.BugzillaSearchResultPage"/>-->
- </extension>
- <extension
- id="org.eclipse.mylyn.tasks.ui.repositorySearchPage"
- name="%repositorySearchPage.name"
- point="org.eclipse.search.searchPages">
- <page
- class="org.eclipse.mylyn.internal.tasks.ui.TaskSearchPage"
- enabled="true"
- icon="icons/eview16/task-search.gif"
- id="org.eclipse.mylyn.tasks.ui.search.page"
- label="%TaskSearchPage.label"
- tabPosition="999"/>
- </extension>
- <extension
- point="org.eclipse.ui.propertyPages">
- <page
- class="org.eclipse.mylyn.internal.tasks.ui.properties.ProjectTaskRepositoryPage"
- id="org.eclipse.mylyn.tasks.ui.properties.pages.project.repository"
- name="%ProjectTaskRepositoryPage.name">
- <enabledWhen>
- <adapt
- type="org.eclipse.core.resources.IProject">
- </adapt>
- </enabledWhen>
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <category
- id="org.eclipse.mylyn.tasks.ui.commands"
- name="%commands.category.repositories.name">
- </category>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.AddTaskRepositoryHandler"
- id="org.eclipse.mylyn.tasks.ui.command.addTaskRepository"
- name="%command.addTaskRepository.name">
- <commandParameter
- id="connectorKind"
- name="%command.addTaskRepository.commandParameter.name"
- optional="true"
- values="org.eclipse.mylyn.internal.tasks.ui.commands.TaskRepositoryParameterValues">
- </commandParameter>
- </command>
- </extension>
- <extension
- point="org.eclipse.mylyn.tasks.ui.projectLinkProviders">
- <linkProvider
- class="org.eclipse.mylyn.internal.tasks.ui.properties.ProjectPropertiesLinkProvider"
- name="%ProjectPropertiesLinkProvider.name"
- order="1000"
- id="org.eclipse.mylyn.tasks.ui.defaultRepositoryLinkProvider">
- </linkProvider>
- </extension>
- <extension
- point="org.eclipse.core.runtime.adapters">
- <factory
- adaptableType="org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer"
- class="org.eclipse.mylyn.internal.tasks.ui.search.SearchScoreComputerAdapterFactory">
- <adapter
- type="org.eclipse.search.ui.ISearchPageScoreComputer">
- </adapter>
- </factory>
- </extension>
-
- <extension
- point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
- <hyperlinkDetector
- class="org.eclipse.mylyn.internal.tasks.ui.editors.TaskHyperlinkDetector"
- id="org.eclipse.mylyn.tasks.ui.hyperlinks.detectors.task"
- name="%TaskHyperlinkDetector.name"
- targetId="org.eclipse.ui.DefaultTextEditor">
- </hyperlinkDetector>
- <hyperlinkDetector
- class="org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlinkDetector"
- description="%TaskUrlHyperlinkDetector.description"
- id="org.eclipse.mylyn.tasks.ui.hyperlinks.detectors.url"
- name="%TaskUrlHyperlinkDetector.name"
- targetId="org.eclipse.ui.DefaultTextEditor">
- </hyperlinkDetector>
- </extension>
-
- <extension
- point="org.eclipse.ui.workingSets">
- <workingSet
- elementAdapterClass="org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetElementAdapter"
- icon="icons/obj16/workingSet.gif"
- id="org.eclipse.mylyn.tasks.ui.workingSet"
- name="%TaskWorkingSetElementAdapter.name"
- pageClass="org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetPage"
- updaterClass="org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater"/>
- </extension>
-
- <extension point="org.eclipse.core.runtime.adapters">
- <factory
- adaptableType="org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer"
- class="org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetAdapterFactory">
- <adapter type="org.eclipse.ui.IPersistableElement"/>
- </factory>
- <factory
- adaptableType="org.eclipse.mylyn.tasks.core.TaskRepository"
- class="org.eclipse.mylyn.internal.tasks.ui.TaskRepositoryAdapterFactory">
- <adapter type="org.eclipse.ui.IActionFilter"/>
- </factory>
- <factory
- adaptableType="org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput"
- class="org.eclipse.mylyn.internal.tasks.ui.TasksAdapterFactory">
- <adapter
- type="org.eclipse.mylyn.tasks.core.ITask">
- </adapter>
- <adapter
- type="org.eclipse.mylyn.tasks.core.TaskRepository">
- </adapter>
- </factory>
- <factory
- adaptableType="org.eclipse.mylyn.tasks.core.ITaskAttachment"
- class="org.eclipse.mylyn.internal.tasks.ui.TasksAdapterFactory">
- <adapter
- type="org.eclipse.mylyn.tasks.core.ITask">
- </adapter>
- <adapter
- type="org.eclipse.mylyn.tasks.core.TaskRepository">
- </adapter>
- </factory>
- </extension>
-
- <extension
- point="org.eclipse.ui.elementFactories">
- <factory
- class="org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetElementFactory"
- id="org.eclipse.mylyn.tasks.ui.workingSets.elementFactory">
- </factory>
-</extension>
- <extension
- id="org.eclipse.mylyn.tasks.local.repository"
- name="%local.repository.name"
- point="org.eclipse.mylyn.tasks.ui.repositories">
- <connectorCore
- class="org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector"
- id="org.eclipse.mylyn.tasks.connector.local"
- name="%LocalRepositoryConnector.name"/>
- <connectorUi
- brandingIcon="icons/etool16/person.gif"
- class="org.eclipse.mylyn.internal.tasks.ui.LocalRepositoryConnectorUi"
- name="%LocalRepositoryConnectorUi.name"
- overlayIcon="icons/ovr16/overlay-local.gif"/>
- </extension>
-
- <extension point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectorTargets">
- <target id="org.eclipse.mylyn.tasks.ui.TaskEditor" name="%hyperlinkDetectorTargets.name"/>
- </extension>
-
- <extension point="org.eclipse.mylyn.tasks.ui.presentations">
- <presentation
- class="org.eclipse.mylyn.internal.tasks.ui.CategorizedPresentation"
- icon="icons/etool16/category.gif"
- id="org.eclipse.mylyn.tasks.ui.categorized"
- name="%CategorizedPresentation.name"
- primary="true"/>
- <presentation
- class="org.eclipse.mylyn.internal.tasks.ui.ScheduledPresentation"
- icon="icons/etool16/calendar.gif"
- id="org.eclipse.mylyn.tasks.ui.scheduled"
- name="%ScheduledPresentation.name"
- primary="true"/>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <command
- categoryId="org.eclipse.ui.category.navigate"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.GoToUnreadTaskHandler$GoToPreviousUnreadTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.goToPreviousUnread"
- name="%command.goToPreviousUnread.name">
- </command>
- <command
- categoryId="org.eclipse.ui.category.navigate"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.GoToUnreadTaskHandler$GoToNextUnreadTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.goToNextUnread"
- name="%command.goToNextUnread.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.TaskListToolTipHandler"
- id="org.eclipse.mylyn.tasks.ui.command.showToolTip"
- name="%command.showToolTip.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$MarkTaskReadHandler"
- id="org.eclipse.mylyn.tasks.ui.command.markTaskRead"
- name="%command.markTaskRead.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$MarkTaskUnreadHandler"
- id="org.eclipse.mylyn.tasks.ui.command.markTaskUnread"
- name="%command.markTaskUnread.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$MarkTaskReadGoToNextUnreadTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.markTaskReadGoToNextUnread"
- name="%command.markTaskReadGoToNextUnread.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$MarkTaskReadGoToPreviousUnreadTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.markTaskReadGoToPreviousUnread"
- name="%command.markTaskReadGoToPreviousUnread.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- id="org.eclipse.mylyn.tasks.ui.command.markTaskComplete"
- name="%command.markTaskComplete.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- id="org.eclipse.mylyn.tasks.ui.command.markTaskIncomplete"
- name="%command.markTaskIncomplete.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- id="org.eclipse.mylyn.tasks.ui.command.task.clearOutgoing"
- name="%command.task.clearOutgoing.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.NewSubTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.new.subtask"
- name="%command.new.subtask.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.NewLocalTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.new.local.task"
- name="%command.new.local.task.name">
- </command>
-
- <category
- id="org.eclipse.mylyn.tasks.ui.commands"
- name="%commands.category.name">
- </category>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.OpenSelectedTaskHandler"
- id="org.eclipse.mylyn.tasks.ui.command.openSelectedTask"
- name="%command.openSelectedTask.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.category.editor"
- id="org.eclipse.mylyn.tasks.ui.command.attachment.openInBrowser"
- name="%command.attachment.openInBrowser.name">
- </command>
- <category
- id="org.eclipse.mylyn.tasks.ui.category.editor"
- name="%commands.category.editor.name">
- </category>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.category.editor"
- id="org.eclipse.mylyn.tasks.ui.command.attachment.openInDefaultEditor"
- name="%command.attachment.openInDefaultEditor.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.category.editor"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.SubmitTaskHandler"
- description="%command.submitTask.description"
- id="org.eclipse.mylyn.tasks.ui.command.submitTask"
- name="%command.submitTask.name">
- </command>
- </extension>
- <extension
- point="org.eclipse.ui.bindings">
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.goToPreviousUnread"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M3+ARROW_UP">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.goToNextUnread"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M3+ARROW_DOWN">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.showToolTip"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="F4">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskRead"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+R">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskUnread"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+U">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskReadGoToNextUnread"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+ARROW_DOWN">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskReadGoToPreviousUnread"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+ARROW_UP">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.new.subtask"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+INSERT">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.new.local.task"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="INSERT">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.openSelectedTask"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+ENTER">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskComplete"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+C">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskIncomplete"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+I">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.submitTask"
- contextId="org.eclipse.mylyn.tasks.ui.editors.task"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+S">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.new.subtask"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- platform="carbon"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+N">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.new.local.task"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- platform="carbon"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M3+N">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.new.subtask"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- platform="cocoa"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M2+M3+N">
- </key>
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.new.local.task"
- contextId="org.eclipse.mylyn.tasks.ui.views.tasks"
- platform="cocoa"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M3+N">
- </key>
- </extension>
- <extension
- point="org.eclipse.ui.contexts">
- <context
- id="org.eclipse.mylyn.tasks.ui.views.tasks"
- name="%context.views.tasks.name"
- parentId="org.eclipse.ui.contexts.window">
- </context>
- </extension>
-
-
- <extension point="org.eclipse.ui.navigator.navigatorContent">
- <commonFilter
- id="org.eclipse.mylyn.tasks.ui.navigator.filters.tasks"
- name="%filters.tasks.name"
- description="%filters.tasks.description"
- activeByDefault="true">
- <filterExpression>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer" />
- </filterExpression>
- </commonFilter>
- </extension>
- <extension point="org.eclipse.ui.navigator.viewer">
- <viewerContentBinding
- viewerId="org.eclipse.ui.navigator.ProjectExplorer">
- <includes>
- <contentExtension
- pattern="org.eclipse.mylyn.tasks.ui.navigator.filters.tasks" />
- </includes>
- </viewerContentBinding>
- </extension>
-
- <extension
- point="org.eclipse.ui.handlers">
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.OpenTaskListElementPropertiesHandler"
- commandId="org.eclipse.ui.file.properties">
- <activeWhen>
- <with variable="activePartId">
- <equals value="org.eclipse.mylyn.tasks.ui.views.tasks"/>
- </with>
- </activeWhen>
- <enabledWhen>
- <and>
- <count
- value="1">
- </count>
- <iterate>
- <or>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.RepositoryQuery">
- </instanceof>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.TaskCategory">
- </instanceof>
- </or>
- </iterate>
- </and>
- </enabledWhen>
- </handler>
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.OpenTaskRepositoryPropertiesHandler"
- commandId="org.eclipse.ui.file.properties">
- <activeWhen>
- <with variable="activePartId">
- <equals value="org.eclipse.mylyn.tasks.ui.views.repositories"/>
- </with>
- </activeWhen>
- <enabledWhen>
- <and>
- <count
- value="1">
- </count>
- <iterate>
- <and>
- <instanceof
- value="org.eclipse.mylyn.tasks.core.TaskRepository">
- </instanceof>
- <test
- forcePluginActivation="true"
- property="org.eclipse.mylyn.taskRepository.userManaged"
- value="true">
- </test>
- <not>
- <test
- forcePluginActivation="true"
- property="org.eclipse.mylyn.taskRepository.connectorKind"
- value="local">
- </test>
- </not>
- </and>
- </iterate>
- </and>
- </enabledWhen>
- </handler>
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.OpenTaskAttachmentInBrowserHandler"
- commandId="org.eclipse.mylyn.tasks.ui.command.attachment.openInBrowser">
- </handler>
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.OpenTaskAttachmentInDefaultEditorHandler"
- commandId="org.eclipse.mylyn.tasks.ui.command.attachment.openInDefaultEditor">
- </handler>
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$MarkTaskCompleteHandler"
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskComplete">
- <enabledWhen>
- <iterate
- operator="or">
- <and>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </instanceof>
- <test
- property="org.eclipse.mylyn.task.hasLocalCompletionState"
- value="true">
- </test>
- <test
- property="org.eclipse.mylyn.task.isCompleted"
- value="false">
- </test>
- </and>
- </iterate>
- </enabledWhen>
- </handler>
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$MarkTaskIncompleteHandler"
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskIncomplete">
- <enabledWhen>
- <iterate
- operator="or">
- <and>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </instanceof>
- <test
- property="org.eclipse.mylyn.task.hasLocalCompletionState"
- value="true">
- </test>
- <test
- property="org.eclipse.mylyn.task.isCompleted"
- value="true">
- </test>
- </and>
- </iterate>
- </enabledWhen>
- </handler>
- <handler
- class="org.eclipse.mylyn.internal.tasks.ui.commands.MarkTaskHandler$ClearOutgoingHandler"
- commandId="org.eclipse.mylyn.tasks.ui.command.task.clearOutgoing">
- <enabledWhen>
- <iterate
- operator="or">
- <and>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </instanceof>
- <test
- property="org.eclipse.mylyn.task.hasEdits"
- value="true">
- </test>
- </and>
- </iterate>
- </enabledWhen>
- </handler>
- </extension>
- <extension
- point="org.eclipse.ui.menus">
- <menuContribution
- locationURI="popup:org.eclipse.mylyn.tasks.ui.editors.task?after=additions">
- <command
- commandId="org.eclipse.mylyn.tasks.ui.viewSource.command"
- id="org.eclipse.mylyn.sandbox.ui.viewSource"
- label="View Unformatted Text"
- style="toggle">
- <visibleWhen
- checkEnabled="true">
- </visibleWhen>
- </command>
- </menuContribution>
-
- <menuContribution
- locationURI="popup:org.eclipse.mylyn.tasks.ui.views.tasks?after=properties">
- <command
- commandId="org.eclipse.ui.file.properties"
- style="push">
- <visibleWhen
- checkEnabled="true">
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution
- locationURI="popup:org.eclipse.mylyn.tasks.ui.views.repositories?after=properties">
- <command
- commandId="org.eclipse.ui.file.properties"
- style="push">
- <visibleWhen
- checkEnabled="true">
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution
- locationURI="popup:org.eclipse.mylyn.tasks.ui.editor.menu.attachments?after=group.open">
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.attachment.openInBrowser"
- label="%command.attachment.openInBrowser.label"
- mnemonic="O"
- style="push">
- </command>
- <menu
- label="%command.attachment.openInDefaultEditor.menu.label"
- mnemonic="H">
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.attachment.openInDefaultEditor"
- label="%command.attachment.openInDefaultEditor.label"
- mnemonic="D"
- style="push">
- </command>
- </menu>
- </menuContribution>
- <menuContribution
- locationURI="popup:org.eclipse.ui.popup.any?before=navigate">
- <menu
- id="org.eclipse.mylyn.tasks.ui.menu.task.mark"
- label="%menu.task.mark.label">
- <visibleWhen
- checkEnabled="false">
- <iterate>
- <or>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer">
- </instanceof>
- </or>
- </iterate>
- </visibleWhen>
- <separator
- name="group.taskStatus"
- visible="true">
- </separator>
- <separator
- name="group.synchronizationStatus"
- visible="true">
- </separator>
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskRead"
- label="%command.markTaskRead.label"
- mnemonic="R"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <iterate>
- <not>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.LocalTask">
- </instanceof>
- </not>
- </iterate>
- </visibleWhen>
- </command>
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskUnread"
- label="%command.markTaskUnread.label"
- mnemonic="U"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <iterate>
- <not>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.LocalTask">
- </instanceof>
- </not>
- </iterate>
- </visibleWhen>
- </command>
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.task.clearOutgoing"
- label="%command.task.clearOutgoing.label"
- mnemonic="C"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <iterate>
- <and>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </instanceof>
- <not>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.LocalTask">
- </instanceof>
- </not>
- </and>
- </iterate>
- </visibleWhen>
- </command>
- <separator
- name="additions">
- </separator>
- </menu>
- </menuContribution>
- <menuContribution
- locationURI="popup:org.eclipse.mylyn.tasks.ui.menu.task.mark?after=group.taskStatus">
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskComplete"
- icon="icons/etool16/task-complete.gif"
- label="%command.markTaskComplete.label"
- mnemonic="C"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <iterate
- operator="or">
- <and>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </instanceof>
- <test
- property="org.eclipse.mylyn.task.hasLocalCompletionState"
- value="true">
- </test>
- </and>
- </iterate>
- </visibleWhen>
- </command>
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.markTaskIncomplete"
- icon="icons/etool16/task-incomplete.gif"
- label="%command.markTaskIncomplete.label"
- mnemonic="I"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <iterate
- operator="or">
- <and>
- <instanceof
- value="org.eclipse.mylyn.internal.tasks.core.AbstractTask">
- </instanceof>
- <test
- property="org.eclipse.mylyn.task.hasLocalCompletionState"
- value="true">
- </test>
- </and>
- </iterate>
- </visibleWhen>
- </command>
- </menuContribution>
- <menuContribution
- locationURI="menu:goTo">
- <separator
- name="group.taskList"
- visible="true">
- </separator>
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.goToPreviousUnread"
- label="%command.goToPreviousUnread.label"
- mnemonic="P"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <with
- variable="activeContexts">
- <iterate
- operator="or">
- <equals
- value="org.eclipse.mylyn.tasks.ui.views.tasks">
- </equals>
- </iterate>
- </with>
- </visibleWhen>
- </command>
- <command
- commandId="org.eclipse.mylyn.tasks.ui.command.goToNextUnread"
- label="%command.goToNextUnread.label"
- mnemonic="N"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <with
- variable="activeContexts">
- <iterate
- operator="or">
- <equals
- value="org.eclipse.mylyn.tasks.ui.views.tasks">
- </equals>
- </iterate>
- </with>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension
- point="org.eclipse.core.expressions.propertyTesters">
- <propertyTester
- class="org.eclipse.mylyn.internal.tasks.ui.util.TaskPropertyTester"
- id="org.eclipse.mylyn.tasks.ui.propertyTester.task"
- namespace="org.eclipse.mylyn.task"
- properties="canGetAttachment,canPostAttachment,connectorKind,hasEdits,hasLocalContext,hasLocalCompletionState,hasRepositoryContext,isCompleted,isLocal,"
- type="org.eclipse.mylyn.tasks.core.ITask">
- </propertyTester>
- <propertyTester
- class="org.eclipse.mylyn.internal.tasks.ui.util.TaskAttachmentPropertyTester"
- id="org.eclipse.mylyn.tasks.ui.propertyTester.task.attachment"
- namespace="org.eclipse.mylyn.task.attachment"
- properties="isContext,hasUrl"
- type="org.eclipse.mylyn.tasks.core.ITaskAttachment">
- </propertyTester>
- </extension>
-
- <extension
- point="org.eclipse.mylyn.commons.core.errorReporters">
- <errorReporter
- class="org.eclipse.mylyn.internal.tasks.ui.DialogErrorReporter"
- id="org.eclipse.mylyn.tasks.bugs.errorReporter"
- label="%tasks.bugs.errorReporter.label">
- </errorReporter>
- </extension>
-
- <extension
- point="org.eclipse.ui.commands">
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.category.editor"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.MaximizePartHandler"
- description="%command.maximizePart.description"
- id="org.eclipse.mylyn.tasks.ui.command.maximizePart"
- name="%command.maximizePart.name">
- </command>
- <command
- categoryId="org.eclipse.mylyn.tasks.ui.commands"
- defaultHandler="org.eclipse.mylyn.internal.tasks.ui.commands.ViewSourceHandler"
- id="org.eclipse.mylyn.tasks.ui.viewSource.command"
- name="%commands.ViewSourceHandler.name">
- </command>
- </extension>
- <extension
- point="org.eclipse.ui.bindings">
- <key
- commandId="org.eclipse.mylyn.tasks.ui.command.maximizePart"
- contextId="org.eclipse.mylyn.tasks.ui.editors.task"
- schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
- sequence="M1+M2+M">
- </key>
- </extension>
- <extension
- point="org.eclipse.ui.contexts">
- <context
- id="org.eclipse.mylyn.tasks.ui.editors.task"
- name="%context.editors.task.name"
- parentId="org.eclipse.ui.textEditorScope">
- </context>
- </extension>
- <extension
- point="org.eclipse.core.expressions.propertyTesters">
- <propertyTester
- class="org.eclipse.mylyn.internal.tasks.ui.util.TaskRepositoryPropertyTester"
- id="org.eclipse.mylyn.tasks.ui.propertyTester.taskRepository"
- namespace="org.eclipse.mylyn.taskRepository"
- properties="connectorKind,userManaged"
- type="org.eclipse.mylyn.tasks.core.TaskRepository">
- </propertyTester>
- </extension>
- <extension
- point="org.eclipse.mylyn.tasks.ui.taskRepositoryPageContribution">
- <taskRepositoryPageContribution
- id="org.eclipse.mylyn.tasks.ui.taskEditorExtensionSettings"
- class="org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensionSettingsContribution">
- </taskRepositoryPageContribution>
- </extension>
-</plugin>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/actions.exsd b/org.eclipse.mylyn.tasks.ui/schema/actions.exsd
deleted file mode 100644
index 78891c7eb..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/actions.exsd
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="providers" name="Task UI Providers"/>
- </appInfo>
- <documentation>
- Currently only a work-around for creating a dynamic popupo menu.
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appInfo>
- <meta.element internal="true" />
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="dynamicPopupMenu" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="dynamicPopupMenu">
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn=":org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="menuPath" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
-
-
-
-
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/duplicateDetectors.exsd b/org.eclipse.mylyn.tasks.ui/schema/duplicateDetectors.exsd
deleted file mode 100644
index 61acc182e..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/duplicateDetectors.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="duplicateDetectors" name="duplicateDetectors"/>
- </appInfo>
- <documentation>
- [Enter description of this extension point.]
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="detector"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="detector">
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.ui.AbstractDuplicateDetector:"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="kind" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/editors.exsd b/org.eclipse.mylyn.tasks.ui/schema/editors.exsd
deleted file mode 100644
index 2a5d9a4b8..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/editors.exsd
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="editors" name="Task Editors"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appInfo>
- <meta.element />
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="pageFactory" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="pageFactory">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory:"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/presentations.exsd b/org.eclipse.mylyn.tasks.ui/schema/presentations.exsd
deleted file mode 100644
index 931c7da3e..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/presentations.exsd
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="presentations" name="presentations"/>
- </appInfo>
- <documentation>
- [Enter description of this extension point.]
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appInfo>
- <meta.element internal="true" />
- </appInfo>
- </annotation>
- <complexType>
- <sequence minOccurs="1" maxOccurs="unbounded">
- <element ref="presentation"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="presentation">
- <complexType>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListPresentation:"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="icon" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="resource"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="primary" type="boolean">
- <annotation>
- <documentation>
- True for presentations that are intended to be primary and required for typical usage, false for additional presentations that are secondary. Reflected in the UI, e.g. by ordering secondary presentations below primary ones.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/projectLinkProviders.exsd b/org.eclipse.mylyn.tasks.ui/schema/projectLinkProviders.exsd
deleted file mode 100644
index 1b5f7a13a..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/projectLinkProviders.exsd
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="projectLinkProviders" name="Task Repository Link Provider"/>
- </appInfo>
- <documentation>
- Providers responsible for linking Workspace resources/projects to the Task Repositories.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="linkProvider"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="linkProvider">
- <complexType>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="order" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- See org.eclipse.mylyn.tasks.ui.TasksUiPlugin.getRepositoryForResource(IResource resource, boolean silent)
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/repositories.exsd b/org.eclipse.mylyn.tasks.ui/schema/repositories.exsd
deleted file mode 100644
index 8eb680dec..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/repositories.exsd
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="repositories" name="Repositories"/>
- </appInfo>
- <documentation>
- [Enter description of this extension point.]
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appInfo>
- <meta.element />
- </appInfo>
- <documentation>
- (no description available)
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element ref="connectorCore"/>
- <element ref="connectorUi" minOccurs="0" maxOccurs="1"/>
- <element ref="taskListMigrator" minOccurs="0" maxOccurs="1"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="taskListMigrator">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="name"/>
- </appInfo>
- <documentation>
- (no description available)
- </documentation>
- </annotation>
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.core.AbstractTaskListMigrator:"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="connectorCore">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- </annotation>
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="connectorUi">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- </annotation>
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- </annotation>
- </attribute>
- <attribute name="brandingIcon" type="string">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- <appInfo>
- <meta.attribute kind="resource"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- </annotation>
- </attribute>
- <attribute name="overlayIcon" type="string">
- <annotation>
- <documentation>
- (no description available)
- </documentation>
- <appInfo>
- <meta.attribute kind="resource"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/taskEditorExtensions.exsd b/org.eclipse.mylyn.tasks.ui/schema/taskEditorExtensions.exsd
deleted file mode 100644
index c4f2a06e9..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/taskEditorExtensions.exsd
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appinfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="taskEditorExtensions" name="Task Editor Extensions"/>
- </appinfo>
- <documentation>
- An extension to the Mylyn task editor that can provide viewing and editing controls that are markup-aware.
-This extension provides a means to register such extensions, and to associate those extensions with a specific connector kind.
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appinfo>
- <meta.element />
- </appinfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="taskEditorExtension" minOccurs="0" maxOccurs="unbounded"/>
- <element ref="repositoryAssociation" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appinfo>
- <meta.attribute translatable="true"/>
- </appinfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="taskEditorExtension">
- <annotation>
- <documentation>
- Declare an extension to the Mylyn task editor. Extensions are typically capable of providing improved editing capabilities, such as markup-aware.
- </documentation>
- </annotation>
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- the fully qualified class name of the class that extends org.eclipse.mylyn.internal.sandbox.ui.editors.AbstractTaskEditorExtension
- </documentation>
- <appinfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.internal.sandbox.ui.editors.AbstractTaskEditorExtension:"/>
- </appinfo>
- </annotation>
- </attribute>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- a unique identifier identifying the extension
- </documentation>
- <appinfo>
- <meta.attribute kind="identifier"/>
- </appinfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
- A human-readable name for the extension that is presented to the Eclipse user in the UI. Should be translated. Used in the UI to identify the type of extension, so the name should indicate what the extension is for, and it should be short so that it can be displayed on one line (for example as an option in a combo box.) Example: &quot;TracWiki&quot;, or &quot;Textile&quot;.
- </documentation>
- <appinfo>
- <meta.attribute translatable="true"/>
- </appinfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="repositoryAssociation">
- <annotation>
- <documentation>
- Associate the task editor extension with a kind of repository. Making such an association causes the taskEditorExtension to become the default or preferred setting for a kind of repository.
- </documentation>
- </annotation>
- <complexType>
- <attribute name="connectorKind" type="string" use="required">
- <annotation>
- <documentation>
- the kind of connector for that this task editor extension should be associated with.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="taskEditorExtension" type="string" use="required">
- <annotation>
- <documentation>
- the id of the taskEditorExtension to associate
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appinfo>
- <meta.section type="since"/>
- </appinfo>
- <documentation>
- 3.1
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="examples"/>
- </appinfo>
- <documentation>
- To register a task editor extension:
-
- &lt;extension
- point=&quot;org.eclipse.mylyn.tasks.ui.taskEditorExtensions&quot;&gt;
- &lt;taskEditorExtension
- class=&quot;org.eclipse.mylyn.internal.wikitext.textile.ui.editors.TextileTaskEditorExtension&quot;
- id=&quot;org.eclipse.mylyn.wikitext.textile.core.ui.taskEditorExtension&quot;
- name=&quot;%taskEditorExtension.name.0&quot;&gt;
- &lt;/taskEditorExtension&gt;
- &lt;/extension&gt;
-
-To make a task editor extension the default for a specific connector kind:
-
- &lt;extension
- point=&quot;org.eclipse.mylyn.tasks.ui.taskEditorExtensions&quot;&gt;
- &lt;repositoryAssociation
- connectorKind=&quot;local&quot;
- taskEditorExtension=&quot;org.eclipse.mylyn.wikitext.textile.core.ui.taskEditorExtension&quot;&gt;
- &lt;/repositoryAssociation&gt;
- &lt;/extension&gt;
-
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="apiinfo"/>
- </appinfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="implementation"/>
- </appinfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/schema/taskRepositoryPageContribution.exsd b/org.eclipse.mylyn.tasks.ui/schema/taskRepositoryPageContribution.exsd
deleted file mode 100644
index 96c9afcce..000000000
--- a/org.eclipse.mylyn.tasks.ui/schema/taskRepositoryPageContribution.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.tasks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appinfo>
- <meta.schema plugin="org.eclipse.mylyn.tasks.ui" id="taskRepositoryPageContribution" name="Task Repository Page Contribution"/>
- </appinfo>
- <documentation>
- This extension point enables plug-ins to contribute user interface to the task repository settings dialog.
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appinfo>
- <meta.element />
- </appinfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="taskRepositoryPageContribution" minOccurs="1" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appinfo>
- <meta.attribute translatable="true"/>
- </appinfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="taskRepositoryPageContribution">
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appinfo>
- <meta.attribute kind="java" basedOn="org.eclipse.mylyn.tasks.ui.wizards.AbstractTaskRepositoryPageContribution:"/>
- </appinfo>
- </annotation>
- </attribute>
- <attribute name="connectorKind" type="string">
- <annotation>
- <documentation>
- the kind of repository connector for which this contributor should be used, or &quot;&quot; (the empty string) if it applies to all connectors
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- a unique identifier that identifies the contribution
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appinfo>
- <meta.section type="since"/>
- </appinfo>
- <documentation>
- 3.1
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="examples"/>
- </appinfo>
- <documentation>
- &lt;extension
- point=&quot;org.eclipse.mylyn.tasks.ui.taskRepositoryPageContribution&quot;&gt;
- &lt;taskRepositoryPageContribution class=&quot;org.eclipse.mylyn.internal.tasks.ui.wizards.TaskEditorExtensionSettingsContribution&quot;/&gt;
- &lt;/extension&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="apiinfo"/>
- </appinfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="implementation"/>
- </appinfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java
deleted file mode 100644
index 8cbcc4fb9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/AbstractRepositoryQueryPage2.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * @author Steffen Pingel
- * @since 3.1
- */
-public abstract class AbstractRepositoryQueryPage2 extends AbstractRepositoryQueryPage {
-
- private Text titleText;
-
- private Button updateButton;
-
- private boolean firstTime = true;
-
- private final AbstractRepositoryConnector connector;
-
- private boolean needsRepositoryConfiguration = true;
-
- public AbstractRepositoryQueryPage2(String pageName, TaskRepository repository, IRepositoryQuery query) {
- super(pageName, repository, query);
- this.connector = TasksUi.getRepositoryConnector(getTaskRepository().getConnectorKind());
- setTitle(Messages.AbstractRepositoryQueryPage2_Enter_query_parameters);
- setDescription(Messages.AbstractRepositoryQueryPage2_If_attributes_are_blank_or_stale_press_the_Update_button);
- }
-
- public void setNeedsRepositoryConfiguration(boolean needsRepositoryConfiguration) {
- this.needsRepositoryConfiguration = needsRepositoryConfiguration;
- }
-
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(composite);
- GridLayout layout = new GridLayout(2, false);
- if (inSearchContainer()) {
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- }
- composite.setLayout(layout);
-
- createTitleGroup(composite);
-
- Composite innerComposite = new Composite(composite, SWT.NONE);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).span(2, 1).applyTo(innerComposite);
- innerComposite.setLayout(new FillLayout());
- createPageContent(innerComposite);
-
- if (needsRepositoryConfiguration) {
- createUpdateButton(composite);
- }
-
- if (getQuery() != null) {
- titleText.setText(getQuery().getSummary());
- restoreState(getQuery());
- }
-
- Dialog.applyDialogFont(composite);
- setControl(composite);
- }
-
- protected abstract void createPageContent(Composite parent);
-
- private void createTitleGroup(Composite control) {
- if (inSearchContainer()) {
- return;
- }
-
- Label titleLabel = new Label(control, SWT.NONE);
- titleLabel.setText(Messages.AbstractRepositoryQueryPage2__Title_);
-
- titleText = new Text(control, SWT.BORDER);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).applyTo(titleText);
- titleText.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent e) {
- // ignore
- }
-
- public void keyReleased(KeyEvent e) {
- getContainer().updateButtons();
- }
- });
- }
-
- private Control createUpdateButton(final Composite control) {
- Composite composite = new Composite(control, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- composite.setLayout(layout);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).span(2, 1).applyTo(composite);
-
- updateButton = new Button(composite, SWT.PUSH);
- updateButton.setText(Messages.AbstractRepositoryQueryPage2__Refresh_From_Repository);
- updateButton.setLayoutData(new GridData());
- updateButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (getTaskRepository() != null) {
- updateAttributesFromRepository(true);
- } else {
- MessageDialog.openInformation(
- Display.getCurrent().getActiveShell(),
- Messages.AbstractRepositoryQueryPage2_Update_Attributes_Failed,
- Messages.AbstractRepositoryQueryPage2_No_repository_available_please_add_one_using_the_Task_Repositories_view);
- }
- }
- });
-
- return composite;
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
-
- if (getSearchContainer() != null) {
- getSearchContainer().setPerformActionEnabled(true);
- }
-
- if (visible && firstTime) {
- firstTime = false;
- if (!hasRepositoryConfiguration() && needsRepositoryConfiguration) {
- // delay the execution so the dialog's progress bar is visible
- // when the attributes are updated
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (getControl() != null && !getControl().isDisposed()) {
- initializePage();
- }
- }
-
- });
- } else {
- // no remote connection is needed to get attributes therefore do
- // not use delayed execution to avoid flickering
- initializePage();
- }
- }
- }
-
- private void initializePage() {
- if (needsRepositoryConfiguration) {
- updateAttributesFromRepository(false);
- }
- boolean restored = (getQuery() != null);
- if (inSearchContainer()) {
- restored |= restoreState(null);
- }
- if (!restored) {
- // initialize with default values
- }
- }
-
- protected abstract boolean hasRepositoryConfiguration();
-
- protected AbstractRepositoryConnector getConnector() {
- return connector;
- }
-
- private void updateAttributesFromRepository(final boolean force) {
- if (!hasRepositoryConfiguration() || force) {
- setErrorMessage(null);
- try {
- IRunnableWithProgress runnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- connector.updateRepositoryConfiguration(getTaskRepository(), monitor);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } catch (OperationCanceledException e) {
- throw new InterruptedException();
- }
- }
- };
-
- if (getContainer() != null) {
- getContainer().run(true, true, runnable);
- } else if (getSearchContainer() != null) {
- getSearchContainer().getRunnableContext().run(true, true, runnable);
- } else {
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- service.busyCursorWhile(runnable);
- }
- } catch (InvocationTargetException e) {
- if (e.getCause() instanceof CoreException) {
- setErrorMessage(((CoreException) e.getCause()).getStatus().getMessage());
- } else {
- setErrorMessage(e.getCause().getMessage());
- }
- return;
- } catch (InterruptedException e) {
- return;
- }
- }
-
- doRefresh();
- }
-
- protected abstract void doRefresh();
-
- @Override
- public boolean isPageComplete() {
- if (titleText != null && titleText.getText().length() > 0) {
- return true;
- }
- setMessage(Messages.AbstractRepositoryQueryPage2_Enter_a_title);
- return false;
- }
-
- @Override
- public boolean performSearch() {
- if (inSearchContainer()) {
- saveState();
- }
- return super.performSearch();
- }
-
- protected abstract boolean restoreState(IRepositoryQuery query);
-
- @Override
- public String getQueryTitle() {
- return (titleText != null) ? titleText.getText() : null;
- }
-
- public void setQueryTitle(String text) {
- if (titleText != null) {
- titleText.setText(text);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/Messages.java
deleted file mode 100644
index daba1feea..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.tasks.ui.wizards;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.provisional.tasks.ui.wizards.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String AbstractRepositoryQueryPage2__Refresh_From_Repository;
-
- public static String AbstractRepositoryQueryPage2__Title_;
-
- public static String AbstractRepositoryQueryPage2_Enter_a_title;
-
- public static String AbstractRepositoryQueryPage2_Enter_query_parameters;
-
- public static String AbstractRepositoryQueryPage2_If_attributes_are_blank_or_stale_press_the_Update_button;
-
- public static String AbstractRepositoryQueryPage2_No_repository_available_please_add_one_using_the_Task_Repositories_view;
-
- public static String AbstractRepositoryQueryPage2_Update_Attributes_Failed;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/messages.properties
deleted file mode 100644
index b896314c3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/provisional/tasks/ui/wizards/messages.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-AbstractRepositoryQueryPage2__Refresh_From_Repository=&Refresh From Repository
-AbstractRepositoryQueryPage2__Title_=&Title:
-AbstractRepositoryQueryPage2_Enter_a_title=Enter a title
-AbstractRepositoryQueryPage2_Enter_query_parameters=Enter query parameters
-AbstractRepositoryQueryPage2_If_attributes_are_blank_or_stale_press_the_Update_button=If attributes are blank or stale press the Update button.
-AbstractRepositoryQueryPage2_No_repository_available_please_add_one_using_the_Task_Repositories_view=No repository available, please add one using the Task Repositories view.
-AbstractRepositoryQueryPage2_Update_Attributes_Failed=Update Attributes Failed
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java
deleted file mode 100644
index d84c53219..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Collection;
-
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-
-/**
- * Custom filters are used so that the "Find:" filter can 'see through' any filters that may have been applied.
- *
- * @author Mik Kersten
- */
-// XXX duplicate implementation in hasDescendantIncoming/hasIncompleteDescendant: consider replacing this by a visitor
-public abstract class AbstractTaskListFilter {
-
- public abstract boolean select(Object parent, Object element);
-
- /**
- * @return true if this filter should be applied even with filter text is present
- */
- public boolean applyToFilteredText() {
- return false;
- }
-
- /**
- * NOTE: performance implication of looking down children
- *
- * TODO: Move to an internal utility class
- */
- public static boolean hasDescendantIncoming(ITaskContainer container) {
- return hasDescendantIncoming(container, ITasksCoreConstants.MAX_SUBTASK_DEPTH);
- }
-
- public static boolean hasIncompleteDescendant(ITaskContainer container) {
- return hasIncompleteDescendant(container, ITasksCoreConstants.MAX_SUBTASK_DEPTH);
- }
-
- private static boolean hasDescendantIncoming(ITaskContainer container, int depth) {
- Collection<ITask> children = container.getChildren();
- if (children == null || depth <= 0) {
- return false;
- }
-
- for (ITask task : children) {
- if (task != null) {
- ITask containedRepositoryTask = task;
- if (containedRepositoryTask.getSynchronizationState().isIncoming()) {
- return true;
- } else if (TasksUiPlugin.getDefault().groupSubtasks(container) && task instanceof ITaskContainer
- && hasDescendantIncoming((ITaskContainer) task, depth - 1)) {
- return true;
- }
- }
- }
- return false;
- }
-
- private static boolean hasIncompleteDescendant(ITaskContainer container, int depth) {
- Collection<ITask> children = container.getChildren();
- if (children == null || depth <= 0) {
- return false;
- }
-
- for (ITask task : children) {
- if (task != null) {
- ITask containedRepositoryTask = task;
- if (!containedRepositoryTask.isCompleted()) {
- return true;
- } else if (task instanceof ITaskContainer && hasIncompleteDescendant((ITaskContainer) task, depth - 1)) {
- return true;
- }
- }
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java
deleted file mode 100644
index f424ca7a1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.externalization.AbstractExternalizationParticipant;
-import org.eclipse.mylyn.internal.tasks.core.externalization.ExternalizationManager;
-import org.eclipse.mylyn.internal.tasks.core.externalization.IExternalizationContext;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivityListener;
-
-/**
- * @author Rob Elves
- */
-@SuppressWarnings("restriction")
-public class ActivityExternalizationParticipant extends AbstractExternalizationParticipant implements
- ITaskActivityListener {
-
- private boolean isDirty = false;
-
- private final ExternalizationManager manager;
-
- private long lastUpdate;
-
- public ActivityExternalizationParticipant(ExternalizationManager manager) {
- this.manager = manager;
- }
-
- @Override
- public void execute(IExternalizationContext context, IProgressMonitor monitor) throws CoreException {
- Assert.isNotNull(context);
- switch (context.getKind()) {
- case SAVE:
- if (ContextCorePlugin.getDefault() != null && ContextCorePlugin.getContextManager() != null) {
- setDirty(false);
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- }
- break;
- case LOAD:
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
- break;
- case SNAPSHOT:
- break;
- }
- }
-
- @Override
- public String getDescription() {
- return Messages.ActivityExternalizationParticipant_Activity_Context;
- }
-
- @Override
- public ISchedulingRule getSchedulingRule() {
- return ITasksCoreConstants.ACTIVITY_SCHEDULING_RULE;
- }
-
- @Override
- public boolean isDirty() {
- synchronized (this) {
- return isDirty;
- }
- }
-
- public void setDirty(boolean dirty) {
- synchronized (this) {
- isDirty = dirty;
- }
- }
-
- @Override
- public String getFileName() {
- // ignore
- return null;
- }
-
- @Override
- public void load(File sourceFile, IProgressMonitor monitor) throws CoreException {
- // ignore see execute method
- }
-
- @Override
- public void save(File targetFile, IProgressMonitor monitor) throws CoreException {
- // ignore see execute method
- }
-
- public void activityReset() {
- // ignore see execute method
- }
-
- public void elapsedTimeUpdated(ITask task, long newElapsedTime) {
- if (System.currentTimeMillis() - lastUpdate > 1000 * 60) {
- setDirty(true);
- manager.requestSave();
- lastUpdate = System.currentTimeMillis();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AddExistingTaskJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AddExistingTaskJob.java
deleted file mode 100644
index 1a79add72..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AddExistingTaskJob.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Retrieves an existing repository task and adds it to the tasklist
- *
- * @author Willian Mitsuda
- */
-// TODO merge with OpenRepositoryTaskJob
-public class AddExistingTaskJob extends Job {
-
- /**
- * Task repository whose task will be added
- */
- private final TaskRepository repository;
-
- /**
- * Identifies a existing task on the repository
- */
- private final String taskId;
-
- /**
- * Optional; informs the task container the task initialy belongs to; if null, it will be added to the current
- * selected task's category in task list
- */
- private final AbstractTaskCategory taskContainer;
-
- public AddExistingTaskJob(TaskRepository repository, String taskId) {
- this(repository, taskId, null);
- }
-
- public AddExistingTaskJob(TaskRepository repository, String taskId, AbstractTaskCategory taskContainer) {
- super(MessageFormat.format(Messages.AddExistingTaskJob_Adding_task_X_, taskId));
- this.repository = repository;
- this.taskId = taskId;
- this.taskContainer = taskContainer;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- OpenRepositoryTaskJob job = new OpenRepositoryTaskJob(repository.getConnectorKind(),
- repository.getRepositoryUrl(), taskId, null, null);
- IStatus result = job.run(monitor);
- final ITask newTask = job.getTask();
- if (newTask != null) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- AbstractTaskCategory category = taskContainer;
- TaskListView taskListView = TaskListView.getFromActivePerspective();
- if (category == null) {
- Object selectedObject = ((IStructuredSelection) taskListView.getViewer().getSelection()).getFirstElement();
- if (selectedObject instanceof TaskCategory) {
- category = (TaskCategory) selectedObject;
- }
- }
- TasksUiInternal.getTaskList().addTask(newTask, category);
- taskListView.getViewer().setSelection(new StructuredSelection(newTask));
- }
- });
- }
- return result;
-// try {
-// TasksUiUtil.openTask(repository, taskId);
-// final AbstractTask newTask = (AbstractTask) TasksUiInternal.createTask(repository, taskId, monitor);
-// if (newTask != null) {
-// TasksUiPlugin.getTaskActivityManager().setScheduledFor(newTask, TaskActivityUtil.getCurrentWeek());
-//
-// TasksUiInternal.refreshAndOpenTaskListElement(newTask);
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-//
-// public void run() {
-// AbstractTaskCategory category = taskContainer;
-// TaskListView taskListView = TaskListView.getFromActivePerspective();
-// if (category == null) {
-// Object selectedObject = ((IStructuredSelection) taskListView.getViewer().getSelection()).getFirstElement();
-// if (selectedObject instanceof TaskCategory) {
-// category = (TaskCategory) selectedObject;
-// }
-// }
-// TasksUiInternal.getTaskList().addTask(newTask, category);
-// taskListView.getViewer().setSelection(new StructuredSelection(newTask));
-// }
-// });
-// } else {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-// if (window != null) {
-// MessageDialog.openWarning(window.getShell(), "Add Existing Task Failed",
-// MessageFormat.format("Unable to retrieve task \"{0}\" from repository.", taskId));
-// }
-// }
-// });
-// }
-// } catch (final CoreException e) {
-// TasksUiInternal.asyncDisplayStatus("Unable to open task", e.getStatus());
-// } finally {
-// monitor.done();
-// }
-// return Status.OK_STATUS;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CategorizedPresentation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CategorizedPresentation.java
deleted file mode 100644
index 78e153b0f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/CategorizedPresentation.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListContentProvider;
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListContentProvider;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-
-/**
- * @author Mik Kersten
- */
-public class CategorizedPresentation extends AbstractTaskListPresentation {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.categorized"; //$NON-NLS-1$
-
- public CategorizedPresentation() {
- super(ID);
- }
-
- @Override
- protected AbstractTaskListContentProvider createContentProvider(TaskListView taskListView) {
- return new TaskListContentProvider(taskListView);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ChangeActivityHandleOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ChangeActivityHandleOperation.java
deleted file mode 100644
index 35a8785b1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ChangeActivityHandleOperation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
-import org.eclipse.mylyn.monitor.core.InteractionEvent;
-
-/**
- * Changes handle from oldHandle to newHandle in Activity Meta Context
- *
- * @author Rob Elves
- */
-public class ChangeActivityHandleOperation extends TaskListModifyOperation {
-
- private final String oldHandle;
-
- private final String newHandle;
-
- public ChangeActivityHandleOperation(String oldHandle, String newHandle) {
- this.oldHandle = oldHandle;
- this.newHandle = newHandle;
- }
-
- @Override
- protected void operations(IProgressMonitor monitor) throws CoreException, InvocationTargetException,
- InterruptedException {
- if (oldHandle == null || newHandle == null || oldHandle.equals(newHandle)) {
- return;
- }
- try {
- monitor.beginTask(Messages.ChangeActivityHandleOperation_Activity_migration, IProgressMonitor.UNKNOWN);
- refactorMetaContextHandles(oldHandle, newHandle);
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
- } finally {
- monitor.done();
- }
- }
-
- @SuppressWarnings("restriction")
- private void refactorMetaContextHandles(String oldHandle, String newHandle) {
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- ContextCorePlugin.getContextManager().resetActivityMetaContext();
- InteractionContext newMetaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- for (InteractionEvent event : metaContext.getInteractionHistory()) {
- if (event.getStructureHandle() != null) {
- if (event.getStructureHandle().equals(oldHandle)) {
- event = new InteractionEvent(event.getKind(), event.getStructureKind(), newHandle,
- event.getOriginId(), event.getNavigation(), event.getDelta(),
- event.getInterestContribution(), event.getDate(), event.getEndDate());
- }
- }
- newMetaContext.parseEvent(event);
- }
- ContextCorePlugin.getContextManager().saveActivityMetaContext();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ComboSelectionDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ComboSelectionDialog.java
deleted file mode 100644
index 39075b230..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ComboSelectionDialog.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * General purpose dialog for selecting an item from a combo box.
- *
- * @author This was (essentially) copied from Eclipse's internal implementation by Wesley Coelho
- */
-public class ComboSelectionDialog extends Dialog {
-
- private String fSelection = null;
-
- private final String fShellTitle;
-
- private final String fLabelText;
-
- private final String[] fAllowedStrings;
-
- private final int fInitialSelectionIndex;
-
- private int fSelectedIndex = -1;
-
- public ComboSelectionDialog(Shell parentShell, String shellTitle, String labelText, String[] comboStrings,
- int initialSelectionIndex) {
- super(parentShell);
- fShellTitle = shellTitle;
- fLabelText = labelText;
- fAllowedStrings = comboStrings;
- fInitialSelectionIndex = initialSelectionIndex;
- }
-
- public String getSelectedString() {
- return fSelection;
- }
-
- /*
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- getShell().setText(fShellTitle);
-
- Composite composite = (Composite) super.createDialogArea(parent);
- Composite innerComposite = new Composite(composite, SWT.NONE);
- innerComposite.setLayoutData(new GridData());
- GridLayout gl = new GridLayout();
- gl.numColumns = 2;
- innerComposite.setLayout(gl);
-
- Label label = new Label(innerComposite, SWT.NONE);
- label.setText(fLabelText);
- label.setLayoutData(new GridData());
-
- final Combo combo = new Combo(innerComposite, SWT.READ_ONLY);
- for (String allowedString : fAllowedStrings) {
- combo.add(allowedString);
- }
- combo.select(fInitialSelectionIndex);
- fSelection = combo.getItem(combo.getSelectionIndex());
- GridData gd = new GridData();
- gd.widthHint = convertWidthInCharsToPixels(getMaxStringLength());
- combo.setLayoutData(gd);
- combo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- fSelection = combo.getItem(combo.getSelectionIndex());
- fSelectedIndex = combo.getSelectionIndex();
- }
- });
- applyDialogFont(composite);
- return composite;
- }
-
- /**
- * Returns the array index of the selected string or -1 if no string was selected.
- */
- public int getSelectedIndex() {
- return fSelectedIndex;
- }
-
- private int getMaxStringLength() {
- int max = 0;
- for (String allowedString : fAllowedStrings) {
- max = Math.max(max, allowedString.length());
- }
- return max;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java
deleted file mode 100644
index 5678368be..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.mylyn.commons.core.AbstractErrorReporter;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class DialogErrorReporter extends AbstractErrorReporter {
-
- private boolean errorDialogOpen;
-
- @Override
- public int getPriority(IStatus status) {
- return AbstractErrorReporter.PRIORITY_LOW;
- }
-
- @Override
- public void handle(final IStatus status) {
- if (Platform.isRunning()) {
- final IWorkbench workbench = PlatformUI.getWorkbench();
- if (workbench != null) {
- Display display = workbench.getDisplay();
- if (display != null && !display.isDisposed()) {
- display.asyncExec(new Runnable() {
- public void run() {
- try {
- if (!errorDialogOpen) {
- errorDialogOpen = true;
- Shell shell = Display.getDefault().getActiveShell();
- ErrorDialog.openError(shell, Messages.DialogErrorReporter_Mylyn_Error, Messages.DialogErrorReporter_Please_report_the_following_error_at, status);
- }
- } finally {
- errorDialogOpen = false;
- }
- }
- });
- }
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/IDynamicSubMenuContributor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/IDynamicSubMenuContributor.java
deleted file mode 100644
index 530495ec7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/IDynamicSubMenuContributor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.List;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-
-/**
- * @author Mik Kersten
- */
-// TODO 4.0 replace by platform contribution mechanism
-public interface IDynamicSubMenuContributor {
-
- public abstract MenuManager getSubMenuManager(List<IRepositoryElement> selectedElements);
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskCommandIds.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskCommandIds.java
deleted file mode 100644
index 9f525f635..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskCommandIds.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-/**
- * @author Willian Mitsuda
- * @author Mik Kersten
- */
-public interface ITaskCommandIds {
-
- public static final String OPEN_TASK = "org.eclipse.mylyn.tasks.ui.command.openTask"; //$NON-NLS-1$
-
- public static final String OPEN_TASK_REMOTE = "org.eclipse.mylyn.tasks.ui.command.openRemoteTask"; //$NON-NLS-1$
-
- public static final String ACTIVATE_TASK = "org.eclipse.mylyn.tasks.ui.command.activateTask"; //$NON-NLS-1$
-
- public static final String DEACTIVATE_TASK = "org.eclipse.mylyn.tasks.ui.command.deactivateAllTasks"; //$NON-NLS-1$
-
- public static final String ADD_TASK_REPOSITORY = "org.eclipse.mylyn.tasks.ui.command.addTaskRepository"; //$NON-NLS-1$
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskHighlighter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskHighlighter.java
deleted file mode 100644
index a0c72da90..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskHighlighter.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * @author Mik Kersten
- */
-public interface ITaskHighlighter {
-
- public Color getHighlightColor(ITask task);
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskListNotificationProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskListNotificationProvider.java
deleted file mode 100644
index 78e7b42a8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITaskListNotificationProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Set;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-
-/**
- * @author Rob Elves
- */
-public interface ITaskListNotificationProvider {
-
- public Set<AbstractNotification> getNotifications();
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java
deleted file mode 100644
index dc0c40cc7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-/**
- * @author Mik Kersten
- */
-public interface ITasksUiPreferenceConstants {
-
- public static final String ACTIVATE_MULTIPLE = "org.eclipse.mylyn.tasks.ui.activation.multipe"; //$NON-NLS-1$
-
- public static final String ACTIVATE_WHEN_OPENED = "org.eclipse.mylyn.tasks.ui.activate.when.opened"; //$NON-NLS-1$
-
- public static final String SHOW_TRIM = "org.eclipse.mylyn.tasks.ui.show.trim"; //$NON-NLS-1$
-
- /**
- * @deprecated not used anymore, see {@link TaskListBackupManager}
- */
- @Deprecated
- public static final String BACKUP_LAST = "org.eclipse.mylyn.tasks.ui.backup.last"; //$NON-NLS-1$
-
- /**
- * @deprecated not used anymore, see {@link TaskListBackupManager}
- */
- @Deprecated
- public static final String BACKUP_MAXFILES = "org.eclipse.mylyn.tasks.ui.backup.maxfiles"; //$NON-NLS-1$
-
- /**
- * @deprecated not used anymore, see {@link TaskListBackupManager}
- */
- @Deprecated
- public static final String BACKUP_SCHEDULE = "org.eclipse.mylyn.tasks.ui.backup.schedule"; //$NON-NLS-1$
-
- public static final String FILTER_ARCHIVE_MODE = "org.eclipse.mylyn.tasks.ui.filters.archive"; //$NON-NLS-1$
-
- public static final String FILTER_COMPLETE_MODE = "org.eclipse.mylyn.tasks.ui.filters.complete"; //$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$
-
- public static final String OVERLAYS_INCOMING_TIGHT = "org.eclipse.mylyn.tasks.ui.overlays.incoming.tight"; //$NON-NLS-1$
-
- public static final String NOTIFICATIONS_ENABLED = "org.eclipse.mylyn.tasks.ui.notifications.enabled"; //$NON-NLS-1$
-
- public static final String WEEK_START_DAY = "org.eclipse.mylyn.tasks.ui.planning.week.start.day"; //$NON-NLS-1$
-
- public static final String PLANNING_ENDHOUR = "org.eclipse.mylyn.tasks.ui.planning.end.hour"; //$NON-NLS-1$
-
- public static final String EDITOR_TASKS_RICH = "org.eclipse.mylyn.tasks.ui.reporting.open.editor"; //$NON-NLS-1$
-
- public static final String USE_STRIKETHROUGH_FOR_COMPLETED = "org.eclipse.mylyn.tasks.ui.strikethrough.for.completed"; //$NON-NLS-1$
-
- public static final String REPOSITORY_SYNCH_SCHEDULE_ENABLED = "org.eclipse.mylyn.tasks.ui.repositories.synch.schedule"; //$NON-NLS-1$
-
- public static final String REPOSITORY_SYNCH_SCHEDULE_MILISECONDS = "org.eclipse.mylyn.tasks.ui.repositories.synch.schedule.miliseconds"; //$NON-NLS-1$
-
- public static final String TEMPLATES_DELETED = "org.eclipse.mylyn.tasks.ui.templates.deleted"; //$NON-NLS-1$
-
- public static final String TEMPLATES_DELETED_DELIM = "|"; //$NON-NLS-1$
-
- public static final String AUTO_EXPAND_TASK_LIST = "org.eclipse.mylyn.tasks.ui.auto.expand"; //$NON-NLS-1$
-
- /**
- * Local subtasks are now enabled by default.
- *
- * @deprecated not used anymore
- */
- // TODO 4.0 remove
- @Deprecated
- public static final String LOCAL_SUB_TASKS_ENABLED = "org.eclipse.mylyn.tasks.ui.subtasks.local"; //$NON-NLS-1$
-
- // NOTE: legacy name, do not change
- public static final String PREF_DATA_DIR = "org.eclipse.mylyn.data.dir"; //$NON-NLS-1$
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryConnectorUi.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryConnectorUi.java
deleted file mode 100644
index 126a58dae..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryConnectorUi.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.LocalRepositorySettingsPage;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class LocalRepositoryConnectorUi extends AbstractRepositoryConnectorUi {
-
- @Override
- public ImageDescriptor getTaskKindOverlay(ITask task) {
- return super.getTaskKindOverlay(task);
- }
-
- @Override
- public IWizard getNewTaskWizard(TaskRepository taskRepository, ITaskMapping selection) {
- return new NewLocalTaskWizard(selection);
- }
-
- @Override
- public IWizard getQueryWizard(TaskRepository repository, IRepositoryQuery queryToEdit) {
- return null;
- }
-
- @Override
- public String getConnectorKind() {
- return LocalRepositoryConnector.CONNECTOR_KIND;
- }
-
- @Override
- public ITaskRepositoryPage getSettingsPage(TaskRepository taskRepository) {
- return new LocalRepositorySettingsPage(taskRepository);
- }
-
- @Override
- public boolean hasSearchPage() {
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/Messages.java
deleted file mode 100644
index b53269fdd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/Messages.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String ActivityExternalizationParticipant_Activity_Context;
-
- public static String AddExistingTaskJob_Adding_task_X_;
-
- public static String ChangeActivityHandleOperation_Activity_migration;
-
- public static String DialogErrorReporter_Mylyn_Error;
-
- public static String DialogErrorReporter_Please_report_the_following_error_at;
-
- public static String MoveToCategoryMenuContributor_Move_to;
-
- public static String OpenRepositoryTaskJob_Could_not_find_repository_configuration_for_X;
-
- public static String OpenRepositoryTaskJob_Opening_Remote_Task;
-
- public static String OpenRepositoryTaskJob_Opening_repository_task_X;
-
- public static String OpenRepositoryTaskJob_Please_set_up_repository_via_X;
-
- public static String OpenRepositoryTaskJob_Repository_Not_Found;
-
- public static String OpenRepositoryTaskJob_Unable_to_open_task;
-
- public static String RefactorRepositoryUrlOperation_Repository_URL_update;
-
- public static String ScheduleTaskMenuContributor_Cannot_schedule_completed_tasks;
-
- public static String ScheduleTaskMenuContributor_Choose_Date_;
-
- public static String ScheduleTaskMenuContributor_Future;
-
- public static String ScheduleTaskMenuContributor_Not_Scheduled;
-
- public static String ScheduleTaskMenuContributor_Schedule_for;
-
- public static String TaskHistoryDropDown_Activate_Task_;
-
- public static String TaskHistoryDropDown_Deactivate_Task;
-
- public static String TaskJobFactory_Receiving_configuration;
-
- public static String TaskJobFactory_Refreshing_repository_configuration;
-
- public static String TaskListBackupManager_Error_occured_during_scheduled_tasklist_backup;
-
- public static String TaskListBackupManager_Scheduled_task_data_backup;
-
- public static String TaskListNotificationManager_Open_Notification_Job;
-
- public static String TaskRepositoryLocationUi_Enter_HTTP_password;
-
- public static String TaskRepositoryLocationUi_Enter_proxy_password;
-
- public static String TaskRepositoryLocationUi_Enter_repository_password;
-
- public static String TaskSearchPage_ERROR_Unable_to_present_query_page;
-
- public static String TaskSearchPage_No_task_found_matching_key_;
-
- public static String TaskSearchPage_Repository_Search;
-
- public static String TaskSearchPage_Select_Repository_;
-
- public static String TaskSearchPage_Task_Key_ID;
-
- public static String TaskSearchPage_Task_Search;
-
- public static String TasksReminderDialog_Description;
-
- public static String TasksReminderDialog_Dismiss_All;
-
- public static String TasksReminderDialog_Dismiss_Selected;
-
- public static String TasksReminderDialog_Priority;
-
- public static String TasksReminderDialog_Remind_tommorrow;
-
- public static String TasksReminderDialog_Reminder_Day;
-
- public static String TasksReminderDialog_Reminders;
-
- public static String TasksUiPlugin_Initializing_Task_List;
-
- public static String TasksUiPlugin_Task_Repositories;
-
- public static String TasksUiPlugin_Load_Data_Directory;
-
- public static String TaskTrimWidget__no_active_task_;
-
- public static String TaskTrimWidget__no_task_active_;
-
- public static String AbstractRepositoryConnectorUi_Task;
-
- public static String TaskElementLabelProvider__no_summary_available_;
-
- public static String TaskHyperlink_Could_not_determine_repository_for_report;
-
- public static String TaskHyperlink_Open_Task_X_in_X;
-
- public static String AbstractRetrieveTitleFromUrlJob_Retrieving_summary_from_URL;
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java
deleted file mode 100644
index 5c3395654..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Raphael Ackermann - bug 160315
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewCategoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskContainerComparator;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-
-/**
- * @author Mik Kersten
- */
-public class MoveToCategoryMenuContributor implements IDynamicSubMenuContributor {
-
- public MenuManager getSubMenuManager(final List<IRepositoryElement> selectedElements) {
- final MenuManager subMenuManager = new MenuManager(Messages.MoveToCategoryMenuContributor_Move_to);
-
- // Compute selected tasks
- List<AbstractTask> selectedTasks = new ArrayList<AbstractTask>(selectedElements.size());
- for (IRepositoryElement element : selectedElements) {
- if (element instanceof ITask) {
- selectedTasks.add((AbstractTask) element);
- }
- }
- subMenuManager.setVisible(!selectedTasks.isEmpty());
-
- List<AbstractTaskCategory> categories = new ArrayList<AbstractTaskCategory>(TasksUiInternal.getTaskList()
- .getCategories());
- Collections.sort(categories, new TaskContainerComparator());
- for (final AbstractTaskCategory category : categories) {
- if (!(category instanceof UnmatchedTaskContainer)) {
- String text = handleAcceleratorKeys(category.getSummary());
- Action action = new Action(text, IAction.AS_RADIO_BUTTON) {
- @Override
- public void run() {
- moveToCategory(selectedElements, category);
- }
- };
- action.setImageDescriptor(TasksUiImages.CATEGORY);
- if (selectedTasks.size() == 1) {
- if (category.contains(selectedTasks.get(0).getHandleIdentifier())) {
- action.setChecked(true);
- }
- }
- subMenuManager.add(action);
- }
- }
- // add New Category action at the end of the Move to Category Submenu
- // and move selected actions to this newly created category
- Action action = new NewCategoryAction() {
- @Override
- public void run() {
- TaskCategory category = createCategory();
- if (category != null) {
- moveToCategory(selectedElements, category);
- }
- }
- };
- subMenuManager.add(new Separator());
- subMenuManager.add(action);
- return subMenuManager;
- }
-
- /**
- * public for testing
- *
- * Deals with text where user has entered a '@' or tab character but which are not meant to be accelerators. from:
- * Action#setText: Note that if you want to insert a '@' character into the text (but no accelerator, you can simply
- * insert a '@' or a tab at the end of the text. see Action#setText
- */
- public String handleAcceleratorKeys(String text) {
- if (text == null) {
- return null;
- }
-
- int index = text.lastIndexOf('\t');
- if (index == -1) {
- index = text.lastIndexOf('@');
- }
- if (index >= 0) {
- return text.concat("@"); //$NON-NLS-1$
- }
- return text;
- }
-
- /**
- * @param selectedElements
- * @param category
- */
- private void moveToCategory(final List<IRepositoryElement> selectedElements, AbstractTaskCategory category) {
- for (IRepositoryElement element : selectedElements) {
- if (element instanceof ITask) {
- TasksUiInternal.getTaskList().addTask((AbstractTask) element, category);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java
deleted file mode 100644
index 76265b2a7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.text.MessageFormat;
-
-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.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class OpenRepositoryTaskJob extends Job {
-
- private final String repositoryUrl;
-
- private final String repositoryKind;
-
- private final String taskId;
-
- private final String taskUrl;
-
- private ITask task;
-
- public OpenRepositoryTaskJob(String repositoryKind, String repositoryUrl, String taskId, String taskUrl,
- IWorkbenchPage page) {
- super(MessageFormat.format(Messages.OpenRepositoryTaskJob_Opening_repository_task_X, taskId));
-
- this.repositoryKind = repositoryKind;
- this.taskId = taskId;
- this.repositoryUrl = repositoryUrl;
- this.taskUrl = taskUrl;
- }
-
- /**
- * Returns the task if it was created when openeing
- *
- * @return
- */
- public ITask getTask() {
- return task;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- monitor.beginTask(Messages.OpenRepositoryTaskJob_Opening_Remote_Task, 10);
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(repositoryKind, repositoryUrl);
- if (repository == null) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- MessageDialog.openError(null, Messages.OpenRepositoryTaskJob_Repository_Not_Found,
- MessageFormat.format(
- Messages.OpenRepositoryTaskJob_Could_not_find_repository_configuration_for_X,
- repositoryUrl)
- + "\n" + //$NON-NLS-1$
- MessageFormat.format(Messages.OpenRepositoryTaskJob_Please_set_up_repository_via_X,
- Messages.TasksUiPlugin_Task_Repositories));
- TasksUiUtil.openUrl(taskUrl);
- }
-
- });
- return Status.OK_STATUS;
- }
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(repositoryKind);
- try {
- TaskData taskData = connector.getTaskData(repository, taskId, monitor);
- if (taskData != null) {
- task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
- TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true);
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiUtil.openTask(task);
- }
- });
- } else {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiUtil.openUrl(taskUrl);
- }
- });
- }
- } catch (final CoreException e) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.displayStatus(Messages.OpenRepositoryTaskJob_Unable_to_open_task, e.getStatus());
- }
- });
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonContentProposal.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonContentProposal.java
deleted file mode 100644
index d8fc3050a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonContentProposal.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Mik Kersten
- */
-public class PersonContentProposal implements IContentProposal, Comparable<PersonContentProposal> {
-
- private final String address;
-
- private final boolean isCurrentUser;
-
- private final String replacementText;
-
- private final int cursorPosition;
-
- public PersonContentProposal(String address, boolean isCurrentUser, String replacementText, int cursorPosition) {
- Assert.isNotNull(address);
- Assert.isNotNull(replacementText);
- this.address = address;
- this.isCurrentUser = isCurrentUser;
- this.replacementText = replacementText;
- this.cursorPosition = cursorPosition;
- }
-
- public PersonContentProposal(String address, boolean isCurrentUser) {
- this(address, isCurrentUser, address, address.length());
- }
-
- public String getLabel() {
- return address;
- }
-
- public String getDescription() {
- return null;
- }
-
- public int getCursorPosition() {
- return cursorPosition;
- }
-
- public String getContent() {
- return replacementText;
- }
-
- public Image getImage() {
- if (isCurrentUser) {
- return CommonImages.getImage(CommonImages.PERSON_ME);
- } else {
- return CommonImages.getImage(CommonImages.PERSON);
- }
- }
-
- public int compareTo(PersonContentProposal otherContentProposal) {
- if (isCurrentUser) {
- return -1;
- } else if (otherContentProposal.isCurrentUser) {
- return 1;
- }
- return address.compareToIgnoreCase(otherContentProposal.address);
- }
-
- public boolean isCurrentUser() {
- return isCurrentUser;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalLabelProvider.java
deleted file mode 100644
index 16bcdcac2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalLabelProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Shawn Minto
- */
-public class PersonProposalLabelProvider extends LabelProvider {
-
- @Override
- public Image getImage(Object element) {
- if (element instanceof PersonContentProposal) {
- return ((PersonContentProposal) element).getImage();
- }
- return null;
- }
-
- @Override
- public String getText(Object element) {
- if (element instanceof PersonContentProposal) {
- return ((PersonContentProposal) element).getLabel();
- }
- return super.getText(element);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java
deleted file mode 100644
index c0dbfb727..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Shawn Minto
- * @author Eugene Kuleshov
- * @author Steffen Pingel
- */
-public class PersonProposalProvider implements IContentProposalProvider {
-
- private final AbstractTask currentTask;
-
- private String currentUser;
-
- private SortedSet<String> addressSet = null;
-
- private String repositoryUrl;
-
- private String connectorKind;
-
- private TaskData currentTaskData;
-
- public PersonProposalProvider(AbstractTask task, TaskData taskData) {
- this.currentTask = task;
- this.currentTaskData = taskData;
- if (task != null) {
- repositoryUrl = task.getRepositoryUrl();
- connectorKind = task.getConnectorKind();
- } else if (taskData != null) {
- repositoryUrl = taskData.getRepositoryUrl();
- connectorKind = taskData.getConnectorKind();
- }
- }
-
- public PersonProposalProvider(String repositoryUrl, String repositoryKind) {
- this.currentTask = null;
- this.repositoryUrl = repositoryUrl;
- this.connectorKind = repositoryKind;
- }
-
- public IContentProposal[] getProposals(String contents, int position) {
- if (contents == null) {
- throw new IllegalArgumentException();
- }
-
- int leftSeparator = getIndexOfLeftSeparator(contents, position);
- int rightSeparator = getIndexOfRightSeparator(contents, position);
-
- assert leftSeparator <= position;
- assert position <= rightSeparator;
-
- String searchText = contents.substring(leftSeparator + 1, position);
- String resultPrefix = contents.substring(0, leftSeparator + 1);
- String resultPostfix = contents.substring(rightSeparator);
-
- // retrieve subset of the tree set using key range
- SortedSet<String> addressSet = getAddressSet();
- if (!searchText.equals("")) { //$NON-NLS-1$
- searchText = searchText.toLowerCase();
- char[] nextWord = searchText.toCharArray();
- nextWord[searchText.length() - 1]++;
- addressSet = addressSet.subSet(searchText, new String(nextWord));
- }
-
- IContentProposal[] result = new IContentProposal[addressSet.size()];
- int i = 0;
- for (final String address : addressSet) {
- result[i++] = new PersonContentProposal(address, address.equalsIgnoreCase(currentUser), resultPrefix
- + address + resultPostfix, resultPrefix.length() + address.length());
- }
- Arrays.sort(result);
- return result;
- }
-
- private int getIndexOfLeftSeparator(String contents, int position) {
- int i = contents.lastIndexOf(' ', position - 1);
- i = Math.max(contents.lastIndexOf(',', position - 1), i);
- return i;
- }
-
- private int getIndexOfRightSeparator(String contents, int position) {
- int index = contents.length();
- int i = contents.indexOf(' ', position);
- if (i != -1) {
- index = Math.min(i, index);
- }
- i = contents.indexOf(',', position);
- if (i != -1) {
- index = Math.min(i, index);
- }
- return index;
- }
-
- private SortedSet<String> getAddressSet() {
- if (addressSet != null) {
- return addressSet;
- }
-
- addressSet = new TreeSet<String>(new Comparator<String>() {
- public int compare(String s1, String s2) {
- return s1.compareToIgnoreCase(s2);
- }
- });
-
- if (currentTask != null) {
- addAddress(currentTask.getOwner(), addressSet);
- }
-
- if (currentTaskData != null) {
- addAddresses(currentTaskData, addressSet);
- }
-
- if (repositoryUrl != null && connectorKind != null) {
- Set<AbstractTask> tasks = new HashSet<AbstractTask>();
- if (currentTask != null) {
- tasks.add(currentTask);
- }
-
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl);
-
- if (repository != null) {
- AuthenticationCredentials credentials = repository.getCredentials(AuthenticationType.REPOSITORY);
- if (credentials != null && credentials.getUserName().length() > 0) {
- currentUser = credentials.getUserName();
- addressSet.add(currentUser);
- }
- }
-
- Collection<AbstractTask> allTasks = TasksUiPlugin.getTaskList().getAllTasks();
- for (AbstractTask task : allTasks) {
- if (repositoryUrl.equals(task.getRepositoryUrl())) {
- tasks.add(task);
- }
- }
-
- for (ITask task : tasks) {
- addAddresses(task, addressSet);
- }
- }
-
- return addressSet;
- }
-
- private void addAddresses(ITask task, Set<String> addressSet) {
- // TODO: Creator, and CC should be stored on AbstractTask
-
- addAddress(task.getOwner(), addressSet);
- }
-
- // TODO 3.2 re-implement
- private void addAddresses(TaskData data, Set<String> addressSet) {
- // addressSet.add(data.getAssignedTo()); // owner
- // addAddress(data.getReporter(), addressSet); // ??
-// for (String address : data.getCc()) {
-// addAddress(address, addressSet);
-// }
-// for (TaskComment comment : currentTaskData.getComments()) {
-// addAddress(comment.getAuthor(), addressSet);
-// }
-// for (RepositoryAttachment attachment : currentTaskData.getAttachments()) {
-// addAddress(attachment.getCreator(), addressSet);
-// }
- }
-
- private void addAddress(String address, Set<String> addressSet) {
- if (address != null && address.trim().length() > 0) {
- addressSet.add(address.trim());
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PlanningPerspectiveFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PlanningPerspectiveFactory.java
deleted file mode 100644
index 71ec8e7ab..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/PlanningPerspectiveFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.internal.PageLayout;
-
-/**
- * @author Mik Kersten
- */
-public class PlanningPerspectiveFactory implements IPerspectiveFactory {
-
- public void createInitialLayout(IPageLayout layout) {
- defineActions(layout);
- defineLayout(layout);
- }
-
- public void defineActions(IPageLayout layout) {
- layout.addShowViewShortcut(IPageLayout.ID_RES_NAV);
- layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET);
- layout.addShowViewShortcut(ITasksUiConstants.ID_VIEW_TASKS);
- // layout.addShowViewShortcut(TaskActivityView.ID);
-
- layout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET);
- removeUninterestingActionSets(layout);
- }
-
- public void defineLayout(IPageLayout layout) {
- String editorArea = layout.getEditorArea();
-
- IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.RIGHT, (float) 0.6, editorArea);//$NON-NLS-1$
- topRight.addView(ITasksUiConstants.ID_VIEW_TASKS);
-
- // IFolderLayout bottomLeft = layout.createFolder(
- // "bottomLeft", IPageLayout.BOTTOM, (float) 0.50,//$NON-NLS-1$
- // "topLeft");//$NON-NLS-1$
- // bottomLeft.addView(TaskActivityView.ID);
- topRight.addPlaceholder(IPageLayout.ID_RES_NAV);
-
- // IFolderLayout bottomRight = layout.createFolder(
- // "bottomRight", IPageLayout.BOTTOM, (float) 0.66,//$NON-NLS-1$
- // editorArea);
- //
- // bottomRight.addView(IPageLayout.ID_TASK_LIST);
-
- }
-
- @SuppressWarnings("unchecked")
- public static void removeUninterestingActionSets(IPageLayout layout) {
- ArrayList actionSets = ((PageLayout) layout).getActionSets();
- actionSets.remove("org.eclipse.ui.edit.text.actionSet.annotationNavigation"); //$NON-NLS-1$
- actionSets.remove("org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"); //$NON-NLS-1$
- actionSets.remove("org.eclipse.ui.externaltools.ExternalToolsSet"); //$NON-NLS-1$
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java
deleted file mode 100644
index 58b1a29dd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URLDecoder;
-
-import org.eclipse.core.runtime.Assert;
-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.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
-import org.eclipse.mylyn.internal.context.core.InteractionContextManager;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.monitor.core.InteractionEvent;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Rob Elves
- */
-public class RefactorRepositoryUrlOperation extends TaskListModifyOperation {
-
- private final String oldUrl;
-
- private final String newUrl;
-
- public RefactorRepositoryUrlOperation(String oldUrl, String newUrl) {
- super(ITasksCoreConstants.ROOT_SCHEDULING_RULE);
- Assert.isNotNull(oldUrl);
- Assert.isNotNull(newUrl);
- Assert.isTrue(!oldUrl.equals(newUrl));
- this.oldUrl = oldUrl;
- this.newUrl = newUrl;
- }
-
- @Override
- protected void operations(IProgressMonitor monitor) throws CoreException, InvocationTargetException,
- InterruptedException {
- try {
- //TasksUiPlugin.getTaskListManager().deactivateAllTasks();
- monitor.beginTask(Messages.RefactorRepositoryUrlOperation_Repository_URL_update, IProgressMonitor.UNKNOWN);
- refactorOfflineHandles(oldUrl, newUrl);
- getTaskList().refactorRepositoryUrl(oldUrl, newUrl);
- refactorMetaContextHandles(oldUrl, newUrl);
- refactorContextFileNames();
- TasksUiPlugin.getTaskActivityMonitor().reloadActivityTime();
- } finally {
- monitor.done();
- }
- }
-
- @SuppressWarnings("restriction")
- public void refactorContextFileNames() {
-
- File dataDir = new File(TasksUiPlugin.getDefault().getDataDirectory(), ITasksCoreConstants.CONTEXTS_DIRECTORY);
- if (dataDir.exists() && dataDir.isDirectory()) {
- File[] files = dataDir.listFiles();
- if (files != null) {
- for (File file : dataDir.listFiles()) {
- int dotIndex = file.getName().lastIndexOf(".xml"); //$NON-NLS-1$
- if (dotIndex != -1) {
- String storedHandle;
- try {
- storedHandle = URLDecoder.decode(file.getName().substring(0, dotIndex),
- InteractionContextManager.CONTEXT_FILENAME_ENCODING);
- int delimIndex = storedHandle.lastIndexOf(RepositoryTaskHandleUtil.HANDLE_DELIM);
- if (delimIndex != -1) {
- String storedUrl = storedHandle.substring(0, delimIndex);
- if (oldUrl.equals(storedUrl)) {
- String id = RepositoryTaskHandleUtil.getTaskId(storedHandle);
- String newHandle = RepositoryTaskHandleUtil.getHandle(newUrl, id);
- File newFile = ContextCorePlugin.getContextStore().getFileForContext(newHandle);
- file.renameTo(newFile);
- }
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not move context file: " + file.getName(), e)); //$NON-NLS-1$
- }
- }
- }
- }
- }
- }
-
- private void refactorOfflineHandles(String oldRepositoryUrl, String newRepositoryUrl) throws CoreException {
- TaskDataManager taskDataManager = TasksUiPlugin.getTaskDataManager();
- for (ITask task : getTaskList().getAllTasks()) {
- if (oldRepositoryUrl.equals(task.getAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_REPOSITORY_URL))) {
- taskDataManager.refactorRepositoryUrl(task, task.getRepositoryUrl(), newRepositoryUrl);
- }
- if (task.getRepositoryUrl().equals(oldRepositoryUrl)) {
- taskDataManager.refactorRepositoryUrl(task, newRepositoryUrl, newRepositoryUrl);
-// RepositoryTaskData newTaskData = taskDataManager.getNewTaskData(repositoryTask.getRepositoryUrl(),
-// repositoryTask.getTaskId());
-// RepositoryTaskData oldTaskData = taskDataManager.getOldTaskData(repositoryTask.getRepositoryUrl(),
-// repositoryTask.getTaskId());
-// Set<RepositoryTaskAttribute> edits = taskDataManager.getEdits(repositoryTask.getRepositoryUrl(),
-// repositoryTask.getTaskId());
-// taskDataManager.remove(repositoryTask.getRepositoryUrl(), repositoryTask.getTaskId());
-//
-// if (newTaskData != null) {
-// newTaskData.setRepositoryURL(newRepositoryUrl);
-// taskDataManager.setNewTaskData(newTaskData);
-// }
-// if (oldTaskData != null) {
-// oldTaskData.setRepositoryURL(newRepositoryUrl);
-// taskDataManager.setOldTaskData(oldTaskData);
-// }
-// if (!edits.isEmpty()) {
-// taskDataManager.saveEdits(newRepositoryUrl, repositoryTask.getTaskId(), edits);
-// }
- }
- }
-// TasksUiPlugin.getTaskDataStorageManager().saveNow();
- }
-
- @SuppressWarnings("restriction")
- private void refactorMetaContextHandles(String oldRepositoryUrl, String newRepositoryUrl) {
- InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- ContextCorePlugin.getContextManager().resetActivityMetaContext();
- InteractionContext newMetaContext = ContextCorePlugin.getContextManager().getActivityMetaContext();
- for (InteractionEvent event : metaContext.getInteractionHistory()) {
- if (event.getStructureHandle() != null) {
- String storedUrl = RepositoryTaskHandleUtil.getRepositoryUrl(event.getStructureHandle());
- if (storedUrl != null) {
- if (oldRepositoryUrl.equals(storedUrl)) {
- String taskId = RepositoryTaskHandleUtil.getTaskId(event.getStructureHandle());
- if (taskId != null) {
- String newHandle = RepositoryTaskHandleUtil.getHandle(newRepositoryUrl, taskId);
- event = new InteractionEvent(event.getKind(), event.getStructureKind(), newHandle,
- event.getOriginId(), event.getNavigation(), event.getDelta(),
- event.getInterestContribution(), event.getDate(), event.getEndDate());
- }
- }
- }
- }
- newMetaContext.parseEvent(event);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleDatePicker.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleDatePicker.java
deleted file mode 100644
index adb0d1322..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleDatePicker.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author Rob Elves
- */
-public class ScheduleDatePicker extends Composite {
-
- private Text scheduledDateText = null;
-
- private Button pickButton = null;
-
- private final List<SelectionListener> pickerListeners = new LinkedList<SelectionListener>();
-
- private final SimpleDateFormat simpleDateFormat = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.MEDIUM);
-
- private final String initialText = DatePicker.LABEL_CHOOSE;
-
- private final List<IRepositoryElement> tasks;
-
- private final ScheduleTaskMenuContributor contributor;
-
- private DateRange scheduledDate;
-
- private final boolean isFloating = false;
-
- public ScheduleDatePicker(Composite parent, AbstractTask task, int style) {
- super(parent, style);
- if (task != null) {
- if (task.getScheduledForDate() != null) {
- this.scheduledDate = task.getScheduledForDate();
- }
- }
-
- initialize((style & SWT.FLAT) > 0 ? SWT.FLAT : 0);
- contributor = new ScheduleTaskMenuContributor() {
-
- @Override
- protected DateRange getScheduledForDate(AbstractTask singleTaskSelection) {
- return ScheduleDatePicker.this.scheduledDate;
- }
-
- @Override
- protected void setScheduledDate(DateRange dateRange) {
- if (dateRange != null) {
- scheduledDate = dateRange;
- } else {
- scheduledDate = null;
- }
- updateDateText();
- notifyPickerListeners();
- }
- };
- tasks = new ArrayList<IRepositoryElement>();
- tasks.add(task);
- }
-
- public void setDatePattern(String pattern) {
- simpleDateFormat.applyPattern(pattern);
- }
-
- private void initialize(int style) {
-
- GridLayout gridLayout = new GridLayout(2, false);
- gridLayout.horizontalSpacing = 0;
- gridLayout.verticalSpacing = 0;
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- this.setLayout(gridLayout);
-
- scheduledDateText = new Text(this, style);
- scheduledDateText.setEditable(false);
- GridData dateTextGridData = new GridData(SWT.FILL, SWT.FILL, false, false);
- dateTextGridData.grabExcessHorizontalSpace = true;
- dateTextGridData.widthHint = SWT.FILL;
- dateTextGridData.verticalIndent = 0;
-
- scheduledDateText.setLayoutData(dateTextGridData);
- scheduledDateText.setText(initialText);
-
- pickButton = new Button(this, style | SWT.ARROW | SWT.DOWN);
- GridData pickButtonGridData = new GridData(SWT.RIGHT, SWT.FILL, false, true);
- pickButtonGridData.verticalIndent = 0;
- pickButton.setLayoutData(pickButtonGridData);
- pickButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent arg0) {
-
- MenuManager menuManager = contributor.getSubMenuManager(tasks);
- Menu menu = menuManager.createContextMenu(pickButton);
- pickButton.setMenu(menu);
- menu.setVisible(true);
- }
- });
-
- updateDateText();
- pack();
- }
-
- public void addPickerSelectionListener(SelectionListener listener) {
- pickerListeners.add(listener);
- }
-
- @Override
- public void setForeground(Color color) {
- pickButton.setForeground(color);
- scheduledDateText.setForeground(color);
- super.setForeground(color);
- }
-
- @Override
- public void setBackground(Color backgroundColor) {
- pickButton.setBackground(backgroundColor);
- scheduledDateText.setBackground(backgroundColor);
- super.setBackground(backgroundColor);
- }
-
- private void notifyPickerListeners() {
- for (SelectionListener listener : pickerListeners) {
- listener.widgetSelected(null);
- }
- }
-
- private void updateDateText() {
- if (scheduledDate != null) {
- scheduledDateText.setText(scheduledDate.toString());
- } else {
- scheduledDateText.setEnabled(false);
- scheduledDateText.setText(DatePicker.LABEL_CHOOSE);
- scheduledDateText.setEnabled(true);
- }
- }
-
- @Override
- public void setEnabled(boolean enabled) {
- scheduledDateText.setEnabled(enabled);
- pickButton.setEnabled(enabled);
- super.setEnabled(enabled);
- }
-
- public DateRange getScheduledDate() {
- return scheduledDate;
- }
-
- public void setScheduledDate(DateRange date) {
- scheduledDate = date;
- updateDateText();
- }
-
- public boolean isFloatingDate() {
- return isFloating;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java
deleted file mode 100644
index 1533ed233..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduleTaskMenuContributor.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DateSelectionDialog;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.WeekDateRange;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class ScheduleTaskMenuContributor implements IDynamicSubMenuContributor {
-
- private AbstractTask singleTaskSelection;
-
- private final List<IRepositoryElement> taskListElementsToSchedule = new ArrayList<IRepositoryElement>();
-
- public MenuManager getSubMenuManager(final List<IRepositoryElement> selectedElements) {
- singleTaskSelection = null;
- taskListElementsToSchedule.clear();
-
- final MenuManager subMenuManager = new MenuManager(Messages.ScheduleTaskMenuContributor_Schedule_for);
-
- if (selectedElements.size() == 1) {
- IRepositoryElement selectedElement = selectedElements.get(0);
- if (selectedElement instanceof ITask) {
- singleTaskSelection = (AbstractTask) selectedElement;
- }
- }
-
- for (IRepositoryElement selectedElement : selectedElements) {
- if (selectedElement instanceof ITask) {
- taskListElementsToSchedule.add(selectedElement);
- }
- }
-
- if (selectionIncludesCompletedTasks()) {
- Action action = new Action() {
- @Override
- public void run() {
- // ignore
- }
- };
- action.setText(Messages.ScheduleTaskMenuContributor_Cannot_schedule_completed_tasks);
- action.setEnabled(false);
- subMenuManager.add(action);
- return subMenuManager;
- }
-
- WeekDateRange week = TaskActivityUtil.getCurrentWeek();
- int days = 0;
- for (DateRange day : week.getDaysOfWeek()) {
- if (day.includes(TaskActivityUtil.getCalendar())) {
- days++;
- // Today
- Action action = createDateSelectionAction(day, CommonImages.SCHEDULE_DAY);
- subMenuManager.add(action);
- // Special case: Over scheduled tasks always 'scheduled' for today
- if (singleTaskSelection != null && isPastReminder(singleTaskSelection)) {
- action.setChecked(true);
- }
- } else if (day.after(TaskActivityUtil.getCalendar())) {
- days++;
- // Week Days
- Action action = createDateSelectionAction(day, null);
- subMenuManager.add(action);
- }
- }
-
- // Next week days
- int toAdd = 7 - days;
- WeekDateRange nextWeek = TaskActivityUtil.getNextWeek();
- for (int x = 0; x < toAdd; x++) {
- int next = TasksUiPlugin.getTaskActivityManager().getWeekStartDay() + x;
- if (next > Calendar.SATURDAY) {
- next = x;
- }
- DateRange day = nextWeek.getDayOfWeek(next);
- Action action = createDateSelectionAction(day, null);
- subMenuManager.add(action);
- }
-
- subMenuManager.add(new Separator());
-
- // This Week
- Action action = createDateSelectionAction(week, CommonImages.SCHEDULE_WEEK);
- subMenuManager.add(action);
- // Special case: This Week holds previous weeks' scheduled tasks
- if (singleTaskSelection != null && singleTaskSelection.getScheduledForDate() != null
- && singleTaskSelection.getScheduledForDate() instanceof WeekDateRange
- && singleTaskSelection.getScheduledForDate().isBefore(week)) {
- // Tasks scheduled for 'someday' float into this week
- action.setChecked(true);
- }
-
- // Next Week
- action = createDateSelectionAction(week.next(), null);
- subMenuManager.add(action);
-
- // Two Weeks
- action = createDateSelectionAction(week.next().next(), null);
- subMenuManager.add(action);
-
- if (singleTaskSelection != null && getScheduledForDate(singleTaskSelection) != null) {
- // Update Two Weeks
- DateRange range = getScheduledForDate(singleTaskSelection);
- if (range.equals(TaskActivityUtil.getNextWeek().next())
- || TaskActivityUtil.getNextWeek().next().includes(range)) {
- action.setChecked(true);
- }
-
- // Future
- if (getScheduledForDate(singleTaskSelection).after(week.next().next().getEndDate())
- && !(getScheduledForDate(singleTaskSelection) instanceof WeekDateRange)) {
- action = new Action() {
- @Override
- public void run() {
- // ignore
- }
- };
- action.setChecked(true);
- action.setText(Messages.ScheduleTaskMenuContributor_Future);
- subMenuManager.add(action);
- }
- }
-
- subMenuManager.add(new Separator());
-
- // Date Selection Dialog
- action = new Action() {
- @Override
- public void run() {
- Calendar theCalendar = TaskActivityUtil.getCalendar();
- if (getScheduledForDate(singleTaskSelection) != null) {
- theCalendar.setTime(getScheduledForDate(singleTaskSelection).getStartDate().getTime());
- }
- DateSelectionDialog reminderDialog = new DateSelectionDialog(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getShell(), theCalendar, DatePicker.TITLE_DIALOG, false, TasksUiPlugin.getDefault()
- .getPreferenceStore()
- .getInt(ITasksUiPreferenceConstants.PLANNING_ENDHOUR));
- int result = reminderDialog.open();
- if (result == Window.OK) {
- DateRange range = null;
- if (reminderDialog.getDate() != null) {
- range = TaskActivityUtil.getDayOf(reminderDialog.getDate());
- }
-
- setScheduledDate(range);
- }
- }
- };
- action.setText(Messages.ScheduleTaskMenuContributor_Choose_Date_);
- action.setEnabled(canSchedule());
- subMenuManager.add(action);
-
- action = new Action() {
- @Override
- public void run() {
- setScheduledDate(null);
- }
- };
- action.setText(Messages.ScheduleTaskMenuContributor_Not_Scheduled);
- action.setChecked(false);
- if (singleTaskSelection != null) {
- if (getScheduledForDate(singleTaskSelection) == null) {
- action.setChecked(true);
- }
- }
- subMenuManager.add(action);
- return subMenuManager;
- }
-
- private boolean selectionIncludesCompletedTasks() {
- if (singleTaskSelection instanceof AbstractTask) {
- if ((singleTaskSelection).isCompleted()) {
- return true;
- }
- }
-
- if (taskListElementsToSchedule.size() > 0) {
- for (IRepositoryElement task : taskListElementsToSchedule) {
- if (task instanceof AbstractTask) {
- if (((AbstractTask) task).isCompleted()) {
- return true;
- }
- }
- }
- }
-
- return false;
- }
-
- private Action createDateSelectionAction(final DateRange dateContainer, ImageDescriptor imageDescriptor) {
- Action action = new Action() {
- @Override
- public void run() {
- setScheduledDate(dateContainer);
- }
- };
- action.setText(dateContainer.toString());
- action.setImageDescriptor(imageDescriptor);
- action.setEnabled(canSchedule());
-
- DateRange scheduledDate = getScheduledForDate(singleTaskSelection);
- if (scheduledDate != null) {
- action.setChecked(dateContainer.equals(scheduledDate));
- }
- return action;
- }
-
- private boolean canSchedule() {
- if (taskListElementsToSchedule.size() == 0) {
- return true;
- } else if (singleTaskSelection instanceof ITask) {
- return ((!(singleTaskSelection).isCompleted()) || taskListElementsToSchedule.size() > 0);
- } else {
- return taskListElementsToSchedule.size() > 0;
- }
- }
-
- protected void setScheduledDate(DateRange dateContainer) {
- for (IRepositoryElement element : taskListElementsToSchedule) {
- if (element instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) element;
- if (dateContainer != null) {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task, dateContainer);
- } else {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task, null);
- }
- }
- }
- }
-
- protected DateRange getScheduledForDate(final AbstractTask selectedTask) {
- if (selectedTask != null) {
- return selectedTask.getScheduledForDate();
- }
- return null;
- }
-
- private boolean isPastReminder(AbstractTask task) {
- return TasksUiPlugin.getTaskActivityManager().isPastReminder(task);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduledPresentation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduledPresentation.java
deleted file mode 100644
index fafdfaf9e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ScheduledPresentation.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListContentProvider;
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskScheduleContentProvider;
-
-/**
- * @author Mik Kersten
- */
-public class ScheduledPresentation extends AbstractTaskListPresentation {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.scheduled"; //$NON-NLS-1$
-
- public ScheduledPresentation() {
- super(ID);
- }
-
- @Override
- public AbstractTaskListContentProvider createContentProvider(TaskListView taskListView) {
- return new TaskScheduleContentProvider(taskListView);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java
deleted file mode 100644
index dc85e2fef..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.context.core.AbstractContextListener;
-import org.eclipse.mylyn.context.core.ContextChangeEvent;
-import org.eclipse.mylyn.internal.context.core.InteractionContextManager;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.monitor.core.InteractionEvent;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * Monitors task activity and maintains task activation history
- *
- * @author Robert Elves
- * @author Steffen Pingel
- * @since 3.0
- */
-@SuppressWarnings("restriction")
-public class TaskActivityMonitor {
-
- private final InteractionContextManager contextManager;
-
- private final TaskActivityManager taskActivityManager;
-
- private final TaskList taskList;
-
- private final AbstractContextListener CONTEXT_LISTENER = new AbstractContextListener() {
-
- @Override
- public void contextChanged(ContextChangeEvent event) {
- switch (event.getEventKind()) {
- case INTEREST_CHANGED:
- List<InteractionEvent> events = contextManager.getActivityMetaContext().getInteractionHistory();
- if (events.size() > 0) {
- InteractionEvent interactionEvent = events.get(events.size() - 1);
- parseInteractionEvent(interactionEvent, false);
- }
- break;
- }
- }
- };
-
- private ActivityExternalizationParticipant externalizationParticipant;
-
- public TaskActivityMonitor(TaskActivityManager taskActivityManager, InteractionContextManager contextManager) {
- this.taskActivityManager = taskActivityManager;
- this.contextManager = contextManager;
- this.taskList = TasksUiPlugin.getTaskList();
- }
-
- public void start() {
- contextManager.addActivityMetaContextListener(CONTEXT_LISTENER);
- }
-
- /** public for testing */
- public boolean parseInteractionEvent(InteractionEvent event, boolean isReloading) {
- try {
- if (event.getKind().equals(InteractionEvent.Kind.COMMAND)) {
- if ((event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_ACTIVATED))) {
- AbstractTask activatedTask = taskList.getTask(event.getStructureHandle());
- if (activatedTask != null) {
- taskActivityManager.getTaskActivationHistory().addTask(activatedTask);
- return true;
- }
- }
- } else if (event.getKind().equals(InteractionEvent.Kind.ATTENTION)) {
- if ((event.getDelta().equals("added") || event.getDelta().equals("add"))) { //$NON-NLS-1$ //$NON-NLS-2$
- if (event.getDate().getTime() > 0 && event.getEndDate().getTime() > 0) {
- if (event.getStructureKind()
- .equals(InteractionContextManager.ACTIVITY_STRUCTUREKIND_WORKINGSET)) {
- taskActivityManager.addWorkingSetElapsedTime(event.getStructureHandle(), event.getDate(),
- event.getEndDate());
- if (!isReloading) {
- externalizationParticipant.setDirty(true);
- // save not requested for working set time updates so...
- externalizationParticipant.elapsedTimeUpdated(null, 0);
- }
- } else {
- AbstractTask activatedTask = taskList.getTask(event.getStructureHandle());
- if (activatedTask != null) {
- taskActivityManager.addElapsedTime(activatedTask, event.getDate(), event.getEndDate());
- }
- }
- }
- } else if (event.getDelta().equals("removed")) { //$NON-NLS-1$
- ITask task = taskList.getTask(event.getStructureHandle());
- if (task != null) {
- taskActivityManager.removeElapsedTime(task, event.getDate(), event.getEndDate());
- }
- }
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN,
- "Error parsing interaction event", t)); //$NON-NLS-1$
- }
- return false;
- }
-
- public void stop() {
- contextManager.removeActivityMetaContextListener(CONTEXT_LISTENER);
- }
-
- public void reloadActivityTime() {
- taskActivityManager.clearActivity();
- List<InteractionEvent> events = contextManager.getActivityMetaContext().getInteractionHistory();
- for (InteractionEvent event : events) {
- parseInteractionEvent(event, true);
- }
- }
-
- /**
- * Returns the task corresponding to the interaction event history item at the specified position
- */
- protected ITask getHistoryTaskAt(int pos) {
- InteractionEvent event = contextManager.getActivityMetaContext().getInteractionHistory().get(pos);
- if (event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_ACTIVATED)) {
- return TasksUiPlugin.getTaskList().getTask(event.getStructureHandle());
- } else {
- return null;
- }
- }
-
- public void setExternalizationParticipant(ActivityExternalizationParticipant participant) {
- this.externalizationParticipant = participant;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskArchiveFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskArchiveFilter.java
deleted file mode 100644
index 7660c84fa..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskArchiveFilter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-
-/**
- * @author Mik Kersten
- */
-public class TaskArchiveFilter extends AbstractTaskListFilter {
-
- @Override
- public boolean select(Object parent, Object element) {
-
- if (element instanceof UnmatchedTaskContainer) {
- if (((UnmatchedTaskContainer) element).isEmpty()) {
- return false;
- }
- }
- if (element instanceof UnsubmittedTaskContainer) {
- if (((UnsubmittedTaskContainer) element).isEmpty()) {
- return false;
- }
- }
- return true;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskCompletionFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskCompletionFilter.java
deleted file mode 100644
index 7a1a91dfa..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskCompletionFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Collection;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Mik Kersten
- * @author Shawn Minto
- */
-public class TaskCompletionFilter extends AbstractTaskListFilter {
-
- @Override
- public boolean select(Object parent, Object element) {
- if (element instanceof ITask) {
- ITask task = (ITask) element;
- boolean isComplete = task.isCompleted();
- if (!isComplete) {
- return true;
- } else if (element instanceof AbstractTask) {
- AbstractTask abstractTask = (AbstractTask) element;
- Collection<ITask> children = abstractTask.getChildren();
- for (ITask child : children) {
- if (select(abstractTask, child)) {
- return true;
- }
- }
- return false;
- }
-
- }
- return true;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskEditorBloatMonitor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskEditorBloatMonitor.java
deleted file mode 100644
index a94e963d2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskEditorBloatMonitor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.mylyn.monitor.ui.AbstractEditorTracker;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * @author Mik Kersten
- */
-public class TaskEditorBloatMonitor extends AbstractEditorTracker {
-
- private final int MAX_EDITORS = 12;
-
- @Override
- protected void editorBroughtToTop(IEditorPart part) {
- // ignore
- }
-
- @Override
- public void editorOpened(IEditorPart editorPartOpened) {
- IWorkbenchPage page = editorPartOpened.getSite().getPage();
- List<IEditorReference> toClose = new ArrayList<IEditorReference>();
- int totalTaskEditors = 0;
- for (IEditorReference editorReference : page.getEditorReferences()) {
- try {
- if (editorReference.getEditorInput() instanceof TaskEditorInput) {
- totalTaskEditors++;
- }
- } catch (PartInitException e) {
- // ignore
- }
- }
-
- if (totalTaskEditors > MAX_EDITORS) {
- for (IEditorReference editorReference : page.getEditorReferences()) {
- try {
- if (editorReference.getEditorInput() instanceof TaskEditorInput) {
- TaskEditorInput taskEditorInput = (TaskEditorInput) editorReference.getEditorInput();
- TaskEditor taskEditor = (TaskEditor) editorReference.getEditor(false);
- if (taskEditor == null) {
- toClose.add(editorReference);
- } else if (!taskEditor.equals(editorPartOpened) && !taskEditor.isDirty()
- && taskEditorInput.getTask() != null
- && taskEditorInput.getTask().getSynchronizationState().isSynchronized()) {
- toClose.add(editorReference);
- }
- }
- if ((totalTaskEditors - toClose.size()) < MAX_EDITORS) {
- break;
- }
- } catch (PartInitException e) {
- // ignore
- }
- }
- }
-
- if (toClose.size() > 0) {
- page.closeEditors(toClose.toArray(new IEditorReference[toClose.size()]), true);
- }
- }
-
- @Override
- public void editorClosed(IEditorPart editorPart) {
- // ignore
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryDropDown.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryDropDown.java
deleted file mode 100644
index 1714abd4e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryDropDown.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ActivateTaskDialogAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-/**
- * @author Wesley Coelho
- * @author Mik Kersten
- * @author Leo Dos Santos
- * @author Steffen Pingel
- */
-public class TaskHistoryDropDown extends CompoundContributionItem {
-
- private final static int MAX_ITEMS_TO_DISPLAY = 16;
-
- private class ActivateDialogAction extends Action {
-
- private final ActivateTaskDialogAction dialogAction;
-
- public ActivateDialogAction(ActivateTaskDialogAction action) {
- dialogAction = action;
- dialogAction.init(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
-
- setText(Messages.TaskHistoryDropDown_Activate_Task_);
- setToolTipText(Messages.TaskHistoryDropDown_Activate_Task_);
- setEnabled(true);
- setChecked(false);
- setImageDescriptor(null);
- //TasksUiImages.TASK_ACTIVE);
- }
-
- @Override
- public void run() {
- dialogAction.run(null);
- }
- }
-
- private class DeactivateTaskAction extends Action {
-
- public DeactivateTaskAction() {
- setText(Messages.TaskHistoryDropDown_Deactivate_Task);
- setToolTipText(Messages.TaskHistoryDropDown_Deactivate_Task);
- setEnabled(true);
- setChecked(false);
- setImageDescriptor(null);
- //TasksUiImages.TASK_INACTIVE);
- }
-
- @Override
- public void run() {
- ITask active = TasksUi.getTaskActivityManager().getActiveTask();
- if (active != null) {
- TasksUi.getTaskActivityManager().deactivateTask(active);
- }
- }
-
- }
-
- /**
- * Action for navigating to a specified task. This class should be protected but has been made public for testing
- * only
- */
- private class ActivateTaskAction extends Action {
-
- private static final int MAX_LABEL_LENGTH = 40;
-
- private final AbstractTask targetTask;
-
- public ActivateTaskAction(AbstractTask task) {
- targetTask = task;
- String taskDescription = task.getSummary();
- if (taskDescription.length() > MAX_LABEL_LENGTH) {
- taskDescription = taskDescription.subSequence(0, MAX_LABEL_LENGTH - 3) + "..."; //$NON-NLS-1$
- }
- setText(taskDescription);
- setEnabled(true);
- setToolTipText(task.getSummary());
- Image image = labelProvider.getImage(task);
- setImageDescriptor(ImageDescriptor.createFromImage(image));
- }
-
- @Override
- public void run() {
- if (targetTask.isActive()) {
- return;
- }
- new TaskActivateAction().run(targetTask);
- }
- }
-
- private final TaskElementLabelProvider labelProvider = new TaskElementLabelProvider(false);
-
- private boolean scopedToWorkingSet;
-
- private final TaskActivationHistory taskHistory;
-
- public TaskHistoryDropDown() {
- this(null);
- }
-
- public TaskHistoryDropDown(String id) {
- this(id, TasksUiPlugin.getTaskActivityManager().getTaskActivationHistory());
- }
-
- public TaskHistoryDropDown(String id, TaskActivationHistory taskHistory) {
- super(id);
- this.taskHistory = taskHistory;
- }
-
- @Override
- protected IContributionItem[] getContributionItems() {
- List<AbstractTask> tasks = new ArrayList<AbstractTask>(taskHistory.getPreviousTasks());
- Set<IWorkingSet> sets = TaskWorkingSetUpdater.getActiveWorkingSets(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow());
- if (scopedToWorkingSet && !sets.isEmpty()) {
- Set<ITask> allWorkingSetTasks = new HashSet<ITask>();
- for (IWorkingSet workingSet : sets) {
- IAdaptable[] elements = workingSet.getElements();
- for (IAdaptable adaptable : elements) {
- if (adaptable instanceof ITaskContainer) {
- allWorkingSetTasks.addAll(((ITaskContainer) adaptable).getChildren());
- }
- }
- }
- List<AbstractTask> allScopedTasks = new ArrayList<AbstractTask>(tasks);
- for (ITask task : tasks) {
- if (!allWorkingSetTasks.contains(task)) {
- allScopedTasks.remove(task);
- }
- }
- tasks = allScopedTasks;
- }
-
- if (tasks.size() > MAX_ITEMS_TO_DISPLAY) {
- tasks = tasks.subList(tasks.size() - MAX_ITEMS_TO_DISPLAY, tasks.size());
- }
-
- List<IContributionItem> items = new ArrayList<IContributionItem>();
- for (int i = tasks.size() - 1; i >= 0; i--) {
- AbstractTask currTask = tasks.get(i);
- Action taskNavAction = new ActivateTaskAction(currTask);
- ActionContributionItem item = new ActionContributionItem(taskNavAction);
- if (currTask.isActive()) {
- taskNavAction.setChecked(true);
- }
- items.add(item);
- }
-
- Separator separator = new Separator();
- items.add(separator);
-
- ITask active = TasksUi.getTaskActivityManager().getActiveTask();
- if (active != null) {
- Action deactivateAction = new DeactivateTaskAction();
- ActionContributionItem item = new ActionContributionItem(deactivateAction);
- items.add(item);
- } else {
- Action activateDialogAction = new ActivateDialogAction(new ActivateTaskDialogAction());
- ActionContributionItem item = new ActionContributionItem(activateDialogAction);
- items.add(item);
- }
-
- return items.toArray(new IContributionItem[items.size()]);
- }
-
- public boolean isScopedToWorkingSet() {
- return scopedToWorkingSet;
- }
-
- /**
- * If <code>scopedToWorkingSet</code> is set to true only tasks from the current working set are contributed.
- */
- public void setScopedToWorkingSet(boolean scopedToWorkingSet) {
- this.scopedToWorkingSet = scopedToWorkingSet;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryHandler.java
deleted file mode 100644
index c735b3515..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHistoryHandler.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ActivateTaskDialogAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.menus.UIElement;
-
-/**
- * @author Eugene Kuleshov
- * @author Steffen Pingel
- */
-public class TaskHistoryHandler extends AbstractHandler implements IElementUpdater {
-
- public Object execute(final ExecutionEvent event) throws ExecutionException {
- if (TasksUi.getTaskActivityManager().getActiveTask() != null) {
- if (ContextCore.getContextManager().isContextCapturePaused()) {
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
- if (window != null) {
- ICommandService commandService = (ICommandService) window.getService(ICommandService.class);
- if (commandService != null) {
- final Command command = commandService.getCommand("org.eclipse.mylyn.ui.context.capture.pause.command"); //$NON-NLS-1$
- if (command != null) {
- SafeRunner.run(new SafeRunnable() {
- public void run() throws Exception {
- command.executeWithChecks(event);
- }
- });
- }
- }
- }
- } else {
- TasksUi.getTaskActivityManager().deactivateActiveTask();
- }
- } else {
- TaskActivationHistory taskHistory = TasksUiPlugin.getTaskActivityManager().getTaskActivationHistory();
- if (taskHistory.hasPrevious()) {
- AbstractTask previousTask = taskHistory.getPreviousTask();
- new TaskActivateAction().run(previousTask);
- } else {
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
- if (window != null) {
- ActivateTaskDialogAction action = new ActivateTaskDialogAction();
- action.init(window);
- action.run(null);
- }
- }
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- public void updateElement(UIElement element, Map parameters) {
- if (TasksUi.getTaskActivityManager().getActiveTask() == null) {
- element.setIcon(TasksUiImages.CONTEXT_HISTORY_PREVIOUS);
- } else {
- if (ContextCore.getContextManager().isContextCapturePaused()) {
- element.setIcon(TasksUiImages.CONTEXT_HISTORY_PREVIOUS_PAUSE);
- } else {
- element.setIcon(TasksUiImages.CONTEXT_HISTORY_PREVIOUS_ACTIVE);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHyperlink.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHyperlink.java
deleted file mode 100644
index 67dba6323..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskHyperlink.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
-import org.eclipse.mylyn.internal.provisional.commons.ui.ScalingHyperlink;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- * @author Frank Becker
- */
-public class TaskHyperlink extends ScalingHyperlink {
-
- private ITask task;
-
- public TaskHyperlink(Composite parent, int style) {
- super(parent, style);
- setForeground(CommonColors.HYPERLINK_WIDGET);
- addMouseTrackListener(MOUSE_TRACK_LISTENER);
- }
-
- public ITask getTask() {
- return task;
- }
-
- public void setTask(ITask task) {
- this.task = task;
- if (task != null) {
- if ((getStyle() & SWT.SHORT) != 0) {
- setText(task.getTaskKey());
- setToolTipText(task.getTaskKey() + ": " + task.getSummary()); //$NON-NLS-1$
- setStrikeThrough(task.isCompleted());
- } else {
- setText(task.getSummary());
- setToolTipText(""); //$NON-NLS-1$
- setStrikeThrough(false);
- }
- } else {
- setText(""); //$NON-NLS-1$
- setToolTipText(""); //$NON-NLS-1$
- setStrikeThrough(false);
- }
- setUnderlined(false);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskJobFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskJobFactory.java
deleted file mode 100644
index 771c37b39..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskJobFactory.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Set;
-
-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.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITaskJobFactory;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.internal.tasks.core.sync.SubmitTaskAttachmentJob;
-import org.eclipse.mylyn.internal.tasks.core.sync.SubmitTaskJob;
-import org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeQueriesJob;
-import org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeRepositoriesJob;
-import org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryManager;
-import org.eclipse.mylyn.tasks.core.IRepositoryModel;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJob;
-import org.eclipse.mylyn.tasks.core.sync.SynchronizationJob;
-import org.eclipse.mylyn.tasks.core.sync.TaskJob;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.ui.progress.IProgressConstants;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskJobFactory implements ITaskJobFactory {
-
- private final TaskList taskList;
-
- private final TaskDataManager taskDataManager;
-
- private final IRepositoryManager repositoryManager;
-
- private final IRepositoryModel tasksModel;
-
- public TaskJobFactory(TaskList taskList, TaskDataManager taskDataManager, IRepositoryManager repositoryManager,
- IRepositoryModel tasksModel) {
- this.taskList = taskList;
- this.taskDataManager = taskDataManager;
- this.repositoryManager = repositoryManager;
- this.tasksModel = tasksModel;
- }
-
- public SynchronizationJob createSynchronizeTasksJob(AbstractRepositoryConnector connector, Set<ITask> tasks) {
- SynchronizeTasksJob job = new SynchronizeTasksJob(taskList, taskDataManager, tasksModel, connector,
- repositoryManager, tasks);
- job.setProperty(IProgressConstants.ICON_PROPERTY, TasksUiImages.REPOSITORY_SYNCHRONIZE);
- job.setPriority(Job.LONG);
- return job;
- }
-
- public SynchronizationJob createSynchronizeTasksJob(AbstractRepositoryConnector connector,
- TaskRepository taskRepository, Set<ITask> tasks) {
- SynchronizeTasksJob job = new SynchronizeTasksJob(taskList, taskDataManager, tasksModel, connector,
- taskRepository, tasks);
- job.setProperty(IProgressConstants.ICON_PROPERTY, TasksUiImages.REPOSITORY_SYNCHRONIZE);
- job.setPriority(Job.LONG);
- return job;
- }
-
- public SynchronizationJob createSynchronizeQueriesJob(AbstractRepositoryConnector connector,
- TaskRepository repository, Set<RepositoryQuery> queries) {
- SynchronizationJob job = new SynchronizeQueriesJob(taskList, taskDataManager, tasksModel, connector,
- repository, queries);
- job.setProperty(IProgressConstants.ICON_PROPERTY, TasksUiImages.REPOSITORY_SYNCHRONIZE);
- job.setPriority(Job.DECORATE);
- return job;
- }
-
- public SynchronizationJob createSynchronizeRepositoriesJob(Set<TaskRepository> repositories) {
- SynchronizeRepositoriesJob job = new SynchronizeRepositoriesJob(taskList, taskDataManager, tasksModel,
- repositoryManager);
- job.setRepositories(repositories);
- job.setProperty(IProgressConstants.ICON_PROPERTY, TasksUiImages.REPOSITORY_SYNCHRONIZE);
- job.setPriority(Job.DECORATE);
- job.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- // XXX: since the Task List does not properly refresh parent
- // containers, force the refresh of it's root
- taskList.notifyElementsChanged(null);
- }
- });
- return job;
- }
-
- public SubmitJob createSubmitTaskJob(AbstractRepositoryConnector connector, TaskRepository taskRepository,
- final ITask task, TaskData taskData, Set<TaskAttribute> oldAttributes) {
- SubmitJob job = new SubmitTaskJob(taskDataManager, connector, taskRepository, task, taskData, oldAttributes);
- job.setPriority(Job.INTERACTIVE);
- try {
- taskList.run(new ITaskListRunnable() {
- public void execute(IProgressMonitor monitor) throws CoreException {
- ((AbstractTask) task).setSynchronizing(true);
- }
- });
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Unexpected error", e)); //$NON-NLS-1$
- }
- taskList.notifySynchronizationStateChanged(task);
- return job;
- }
-
- public TaskJob createUpdateRepositoryConfigurationJob(final AbstractRepositoryConnector connector,
- final TaskRepository taskRepository) {
- TaskJob updateJob = new TaskJob(Messages.TaskJobFactory_Refreshing_repository_configuration) {
- private IStatus error;
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- monitor.beginTask(Messages.TaskJobFactory_Receiving_configuration, IProgressMonitor.UNKNOWN);
- try {
- try {
- connector.updateRepositoryConfiguration(taskRepository, monitor);
- } catch (CoreException e) {
- error = e.getStatus();
- }
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
-
- @Override
- public boolean belongsTo(Object family) {
- return family == taskRepository;
- }
-
- @Override
- public IStatus getStatus() {
- return error;
- }
- };
- updateJob.setPriority(Job.INTERACTIVE);
- return updateJob;
- }
-
- public SubmitJob createSubmitTaskAttachmentJob(AbstractRepositoryConnector connector,
- TaskRepository taskRepository, final ITask task, AbstractTaskAttachmentSource source, String comment,
- TaskAttribute attachmentAttribute) {
- SubmitJob job = new SubmitTaskAttachmentJob(taskDataManager, connector, taskRepository, task, source, comment,
- attachmentAttribute);
- job.setPriority(Job.INTERACTIVE);
- try {
- taskList.run(new ITaskListRunnable() {
- public void execute(IProgressMonitor monitor) throws CoreException {
- ((AbstractTask) task).setSynchronizing(true);
- }
- });
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Unexpected error", e)); //$NON-NLS-1$
- }
- taskList.notifySynchronizationStateChanged(task);
- job.setUser(true);
- return job;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskLabelDecorator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskLabelDecorator.java
deleted file mode 100644
index ea858c73d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskLabelDecorator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryElement;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Mik Kersten
- */
-public class TaskLabelDecorator implements ILightweightLabelDecorator {
-
- public void decorate(Object element, IDecoration decoration) {
-
- ImageDescriptor priorityOverlay = getPriorityImageDescriptor(element);
- if (priorityOverlay != null) {
- decoration.addOverlay(priorityOverlay, IDecoration.BOTTOM_LEFT);
- }
-
- if (element instanceof ITask) {
- ITask task = (ITask) element;
- if (!task.isCompleted()
- && (TasksUiPlugin.getTaskActivityManager().isDueToday(task) || TasksUiPlugin.getTaskActivityManager()
- .isOverdue(task))) {
- decoration.addOverlay(CommonImages.OVERLAY_DATE_OVERDUE, IDecoration.TOP_RIGHT);
- } else if (!task.isCompleted() && task.getDueDate() != null) {
- decoration.addOverlay(CommonImages.OVERLAY_DATE_DUE, IDecoration.TOP_RIGHT);
- }
- } else if (element instanceof ITaskRepositoryElement) {
- ITaskRepositoryElement repositoryElement = (ITaskRepositoryElement) element;
- String repositoryUrl = repositoryElement.getRepositoryUrl();
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(
- repositoryElement.getConnectorKind(), repositoryUrl);
- if (taskRepository != null) {
- decoration.addSuffix(" [" + taskRepository.getRepositoryLabel() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- } else if (element instanceof TaskRepository) {
- ImageDescriptor overlay = TasksUiPlugin.getDefault().getOverlayIcon(
- ((TaskRepository) element).getConnectorKind());
- if (overlay != null) {
- decoration.addOverlay(overlay, IDecoration.BOTTOM_RIGHT);
- }
- }
- }
-
- public void addListener(ILabelProviderListener listener) {
- // ignore
- }
-
- public void dispose() {
- // ignore
- }
-
- public boolean isLabelProperty(Object element, String property) {
- return false;
- }
-
- public void removeListener(ILabelProviderListener listener) {
- // ignore
- }
-
- private ImageDescriptor getPriorityImageDescriptor(Object element) {
- AbstractRepositoryConnectorUi connectorUi;
- if (element instanceof ITask) {
- ITask repositoryTask = (ITask) element;
- connectorUi = TasksUiPlugin.getConnectorUi(((ITask) element).getConnectorKind());
- if (connectorUi != null) {
- return connectorUi.getTaskPriorityOverlay(repositoryTask);
- }
- }
- if (element instanceof ITask) {
- return TasksUiInternal.getPriorityImage((ITask) element);
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java
deleted file mode 100644
index 5e3d07fa7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.text.ParseException;
-import com.ibm.icu.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Locale;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDataExportOperation;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDataSnapshotOperation;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * @author Rob Elves
- */
-public class TaskListBackupManager implements IPropertyChangeListener {
-
- private static final String OLD_MYLYN_2_BACKUP_FILE_PREFIX = "mylyndata-"; //$NON-NLS-1$
-
- // Mylyn 3.0 Backup file name
- private static final String BACKUP_FILE_PREFIX = "mylyn-v3-data-"; //$NON-NLS-1$
-
- private static final Pattern MYLYN_BACKUP_REGEXP = Pattern.compile("^(" + BACKUP_FILE_PREFIX + ")?(" //$NON-NLS-1$ //$NON-NLS-2$
- + OLD_MYLYN_2_BACKUP_FILE_PREFIX + ")?"); //$NON-NLS-1$
-
- private static final Pattern DATE_FORMAT_OLD = Pattern.compile("\\d{4}-\\d{2}-\\d{2}"); //$NON-NLS-1$
-
- private static final Pattern DATE_FORMAT = Pattern.compile("\\d{4}-\\d{2}-\\d{2}-\\d{6}"); //$NON-NLS-1$
-
- private static final long SECOND = 1000;
-
- private static final long MINUTE = 60 * SECOND;
-
- private static final long STANDARD_DELAY = 30 * MINUTE;
-
- private String backupFolderPath;
-
- private Job runBackup;
-
- private static boolean errorDisplayed = false;
-
- public TaskListBackupManager(String backupFolderPath) {
- this.backupFolderPath = backupFolderPath;
- start(STANDARD_DELAY);
- }
-
- public void start(long delay) {
-
- if (runBackup != null) {
- stop();
- }
-
- runBackup = new Job("Task Data Snapshot") { //$NON-NLS-1$
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
- if (TasksUiPlugin.getTaskList().getAllTasks().size() > 0) {
- backupNow(false, monitor);
- }
- return Status.OK_STATUS;
- } finally {
- schedule(STANDARD_DELAY);
- }
- }
- };
- runBackup.setPriority(Job.BUILD);
- runBackup.setSystem(true);
- runBackup.schedule(delay);
- }
-
- public void stop() {
- if (runBackup != null) {
- if (!runBackup.cancel()) {
- try {
- runBackup.join();
- } catch (InterruptedException e) {
- // ignore
- }
- }
- runBackup = null;
- }
- }
-
- public static String getBackupFileName() {
- SimpleDateFormat format = new SimpleDateFormat(ITasksCoreConstants.FILENAME_TIMESTAMP_FORMAT, Locale.ENGLISH);
- String date = format.format(new Date());
- String backupFileName = BACKUP_FILE_PREFIX + date + ".zip"; //$NON-NLS-1$
- return backupFileName;
- }
-
- public void backupNow(boolean synchronous) {
- backupNow(synchronous, null);
- }
-
- public synchronized void backupNow(boolean synchronous, IProgressMonitor monitor) {
-
- monitor = Policy.monitorFor(monitor);
-
- File backupFolder = new File(backupFolderPath);
- if (!backupFolder.exists()) {
- backupFolder.mkdir();
- }
-
- final TaskDataExportOperation backupJob = new TaskDataSnapshotOperation(backupFolderPath, getBackupFileName());
- try {
- if (!synchronous) {
- backupJob.run(monitor);
- removeOldBackups();
- } else {
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- service.run(false, true, backupJob);
- }
- } catch (InvocationTargetException e) {
- if (!errorDisplayed) {
- final Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.TaskListBackupManager_Error_occured_during_scheduled_tasklist_backup, e);
- errorDisplayed = true;
- if (Display.getCurrent() != null) {
- TasksUiInternal.logAndDisplayStatus(Messages.TaskListBackupManager_Scheduled_task_data_backup,
- status);
- } else {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.logAndDisplayStatus(
- Messages.TaskListBackupManager_Scheduled_task_data_backup, status);
-
- }
- });
- }
- }
- } catch (InterruptedException e) {
- return;
- }
- }
-
- public SortedMap<Long, File> getBackupFiles() {
-
- SortedMap<Long, File> filesMap = new TreeMap<Long, File>();
- String destination = backupFolderPath;
-
- File backupFolder = new File(destination);
- if (!backupFolder.exists()) {
- return filesMap;
- }
-
- File[] files = backupFolder.listFiles();
- if (files == null) {
- return filesMap;
- }
-
- for (File file : files) {
- Matcher matcher = MYLYN_BACKUP_REGEXP.matcher(file.getName());
- if (matcher.find()) {
- Date date = null;
- try {
- SimpleDateFormat format = null;
- String dateText = null;
- Matcher dateFormatMatcher = DATE_FORMAT.matcher(file.getName());
- if (dateFormatMatcher.find()) {
- format = new SimpleDateFormat(ITasksCoreConstants.FILENAME_TIMESTAMP_FORMAT, Locale.ENGLISH);
- dateText = dateFormatMatcher.group();
- } else {
- dateFormatMatcher = DATE_FORMAT_OLD.matcher(file.getName());
- if (dateFormatMatcher.find()) {
- format = new SimpleDateFormat(ITasksCoreConstants.OLD_FILENAME_TIMESTAMP_FORMAT,
- Locale.ENGLISH);
- dateText = dateFormatMatcher.group();
- }
- }
- if (format != null && dateText != null && dateText.length() > 0) {
- date = format.parse(dateText);
- } else {
- continue;
- }
- } catch (IndexOutOfBoundsException e) {
- continue;
- } catch (ParseException e) {
- continue;
- }
- if (date != null && date.getTime() > 0) {
- filesMap.put(new Long(date.getTime()), file);
- }
- }
- }
-
- return filesMap;
- }
-
- /** public for testing purposes */
- public synchronized void removeOldBackups() {
-
- SortedMap<Long, File> filesMap = getBackupFiles();
-
- if (filesMap.size() > 0) {
-
- Calendar rangeStart = TaskActivityUtil.getCalendar();
- rangeStart.setTimeInMillis(filesMap.lastKey());
- TaskActivityUtil.snapStartOfHour(rangeStart);
- int startHour = rangeStart.get(Calendar.HOUR_OF_DAY);
- Calendar rangeEnd = TaskActivityUtil.getCalendar();
- rangeEnd.setTimeInMillis(rangeStart.getTimeInMillis());
- rangeEnd.add(Calendar.HOUR_OF_DAY, 1);
- // Keep one backup for last 8 hours of today
- for (int x = 0; x <= startHour && x < 9; x++) {
- SortedMap<Long, File> subMap = filesMap.subMap(rangeStart.getTimeInMillis(), rangeEnd.getTimeInMillis());
- if (subMap.size() > 1) {
- while (subMap.size() > 1) {
- File toDelete = subMap.remove(subMap.firstKey());
- toDelete.delete();
- }
- }
- rangeStart.add(Calendar.HOUR_OF_DAY, -1);
- rangeEnd.add(Calendar.HOUR_OF_DAY, -1);
- }
-
- // Keep one backup a day for the past 12 days
- TaskActivityUtil.snapStartOfDay(rangeEnd);
- rangeStart.add(Calendar.DAY_OF_YEAR, -1);
- for (int x = 1; x <= 12; x++) {
- SortedMap<Long, File> subMap = filesMap.subMap(rangeStart.getTimeInMillis(), rangeEnd.getTimeInMillis());
- if (subMap.size() > 1) {
- while (subMap.size() > 1) {
- File toDelete = subMap.remove(subMap.firstKey());
- toDelete.delete();
- }
- }
- rangeStart.add(Calendar.DAY_OF_YEAR, -1);
- rangeEnd.add(Calendar.DAY_OF_YEAR, -1);
- }
-
- // Remove all older backups
- SortedMap<Long, File> subMap = filesMap.subMap(0l, rangeStart.getTimeInMillis());
- if (subMap.size() > 0) {
- while (subMap.size() > 0) {
- File toDelete = subMap.remove(subMap.firstKey());
- toDelete.delete();
- }
- }
- }
- }
-
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(ITasksUiPreferenceConstants.PREF_DATA_DIR)) {
- backupFolderPath = TasksUiPlugin.getDefault().getBackupFolderPath();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListModifyOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListModifyOperation.java
deleted file mode 100644
index 95359f02f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListModifyOperation.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-
-/**
- * Use to perform atomic operations on the task list i.e. open/restore
- *
- * @author Rob Elves
- * @since 3.0
- */
-public abstract class TaskListModifyOperation implements IRunnableWithProgress {
-
- ISchedulingRule rule;
-
- public TaskListModifyOperation() {
- this(null);
- }
-
- public TaskListModifyOperation(ISchedulingRule rule) {
- this.rule = rule;
- }
-
- protected abstract void operations(IProgressMonitor monitor) throws CoreException, InvocationTargetException,
- InterruptedException;
-
- final public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- final InvocationTargetException[] ite = new InvocationTargetException[1];
- try {
- ITaskListRunnable runnable = new ITaskListRunnable() {
-
- public void execute(IProgressMonitor monitor) throws CoreException {
- try {
- Job.getJobManager().beginRule(rule, new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
- operations(monitor);
- } catch (InvocationTargetException e) {
- ite[0] = e;
- } catch (InterruptedException e) {
- throw new OperationCanceledException(e.getMessage());
- } finally {
- Job.getJobManager().endRule(rule);
- }
- }
- };
- getTaskList().run(runnable, monitor);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- }
-
- if (ite[0] != null) {
- throw ite[0];
- }
- }
-
- protected TaskList getTaskList() {
- return TasksUiPlugin.getTaskList();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListNotificationManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListNotificationManager.java
deleted file mode 100644
index 7a5440be8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListNotificationManager.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskListNotificationPopup;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Rob Elves
- */
-public class TaskListNotificationManager implements IPropertyChangeListener {
-
- private static final long DELAY_OPEN = 5 * 1000;
-
- private static final boolean runSystem = true;
-
- private TaskListNotificationPopup popup;
-
- private final Set<AbstractNotification> notifications = new HashSet<AbstractNotification>();
-
- private final Set<AbstractNotification> currentlyNotifying = Collections.synchronizedSet(notifications);
-
- private final List<ITaskListNotificationProvider> notificationProviders = new ArrayList<ITaskListNotificationProvider>();
-
- private final WeakHashMap<Object, Object> cancelledTokens = new WeakHashMap<Object, Object>();
-
- private final Job openJob = new Job(Messages.TaskListNotificationManager_Open_Notification_Job) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
-
- if (Platform.isRunning() && PlatformUI.getWorkbench() != null
- && PlatformUI.getWorkbench().getDisplay() != null
- && !PlatformUI.getWorkbench().getDisplay().isDisposed()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-
- public void run() {
- collectNotifications();
-
- if (popup != null && popup.getReturnCode() == Window.CANCEL) {
- List<AbstractNotification> notifications = popup.getNotifications();
- for (AbstractNotification notification : notifications) {
- if (notification.getToken() != null) {
- cancelledTokens.put(notification.getToken(), null);
- }
- }
- }
-
- for (Iterator<AbstractNotification> it = currentlyNotifying.iterator(); it.hasNext();) {
- AbstractNotification notification = it.next();
- if (notification.getToken() != null
- && cancelledTokens.containsKey(notification.getToken())) {
- it.remove();
- }
- }
-
- synchronized (TaskListNotificationManager.class) {
- if (currentlyNotifying.size() > 0) {
-// popup.close();
- showPopup();
- }
- }
- }
- });
- }
- } finally {
- if (popup != null) {
- schedule(popup.getDelayClose() / 2);
- } else {
- schedule(DELAY_OPEN);
- }
- }
-
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
-
- return Status.OK_STATUS;
- }
-
- };
-
- public TaskListNotificationManager() {
- }
-
- public void showPopup() {
- if (popup != null) {
- popup.close();
- }
-
- Shell shell = new Shell(PlatformUI.getWorkbench().getDisplay());
- popup = new TaskListNotificationPopup(shell);
- popup.setFadingEnabled(TasksUiInternal.isAnimationsEnabled());
- List<AbstractNotification> toDisplay = new ArrayList<AbstractNotification>(currentlyNotifying);
- Collections.sort(toDisplay);
- popup.setContents(toDisplay);
- cleanNotified();
- popup.setBlockOnOpen(false);
- popup.open();
- }
-
- private void cleanNotified() {
- currentlyNotifying.clear();
- }
-
- /** public for testing */
- public void collectNotifications() {
- for (ITaskListNotificationProvider provider : notificationProviders) {
- currentlyNotifying.addAll(provider.getNotifications());
- }
- }
-
- public void startNotification(long initialStartupTime) {
- if (TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED)) {
- if (!openJob.cancel()) {
- try {
- openJob.join();
- } catch (InterruptedException e) {
- // ignore
- }
- }
- openJob.setSystem(runSystem);
- openJob.schedule(initialStartupTime);
- }
- }
-
- public void stopNotification() {
- openJob.cancel();
-// closeJob.cancel();
-// if (popup != null) {
-// popup.close();
-// }
- }
-
- public void addNotificationProvider(ITaskListNotificationProvider notification_provider) {
- notificationProviders.add(notification_provider);
- }
-
- public void removeNotificationProvider(ITaskListNotificationProvider notification_provider) {
- notificationProviders.remove(notification_provider);
- }
-
- /**
- * public for testing purposes
- */
- public Set<AbstractNotification> getNotifications() {
- synchronized (TaskListNotificationManager.class) {
- return currentlyNotifying;
- }
- }
-
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED)) {
- Object newValue = event.getNewValue();
- if (!(newValue instanceof Boolean)) {
- // default if no preference value
- startNotification(0);
- } else if ((Boolean) newValue == true) {
- startNotification(0);
- } else {
- stopNotification();
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListSynchronizationScheduler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListSynchronizationScheduler.java
deleted file mode 100644
index 197ccdc4f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListSynchronizationScheduler.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Collections;
-
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.mylyn.internal.tasks.core.ITaskJobFactory;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.sync.SynchronizationJob;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskListSynchronizationScheduler {
-
- private long interval;
-
- private final ITaskJobFactory jobFactory;
-
- private SynchronizationJob refreshJob;
-
- public TaskListSynchronizationScheduler(ITaskJobFactory jobFactory) {
- this.jobFactory = jobFactory;
- }
-
- private SynchronizationJob createRefreshJob() {
- SynchronizationJob job = jobFactory.createSynchronizeRepositoriesJob(null);
- job.setUser(false);
- job.setFullSynchronization(true);
- return job;
- }
-
- public synchronized SynchronizationJob getRefreshJob() {
- return refreshJob;
- }
-
- private synchronized void reschedule() {
- if (this.interval != 0) {
- refreshJob.schedule(interval);
- }
- }
-
- public synchronized void setInterval(long interval) {
- setInterval(interval, interval);
- }
-
- public synchronized void setInterval(long delay, long interval) {
- if (this.interval != interval) {
- this.interval = interval;
- if (refreshJob != null) {
- refreshJob.cancel();
- refreshJob = null;
- }
-
- if (interval > 0) {
- refreshJob = createRefreshJob();
- refreshJob.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- reschedule();
- }
-
- });
- refreshJob.schedule(delay);
- }
- }
- }
-
- public SynchronizationJob synchronize(TaskRepository repository) {
- // TODO check if a synchronization for repository is already running
- SynchronizationJob job = jobFactory.createSynchronizeRepositoriesJob(Collections.singleton(repository));
- job.setUser(false);
- job.setFullSynchronization(false);
- job.schedule();
- return job;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskPriorityFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskPriorityFilter.java
deleted file mode 100644
index a9ecca2b5..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskPriorityFilter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Ken Sueda - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-
-/**
- * @author Mik Kersten
- * @author Ken Sueda
- */
-public class TaskPriorityFilter extends AbstractTaskListFilter {
-
- private static final String PRIORITY_PREFIX = "P"; //$NON-NLS-1$
-
- private String priorityLevel = PriorityLevel.P5.toString();
-
- public TaskPriorityFilter() {
- displayPrioritiesAbove(TaskListView.getCurrentPriorityLevel());
- }
-
- public void displayPrioritiesAbove(String level) {
- priorityLevel = level;
- }
-
- @Override
- public boolean select(Object parent, Object element) {
- if (element instanceof IRepositoryElement) {
- String priority = ((AbstractTaskContainer) element).getPriority();
- if (priority == null || !(priority.startsWith(PRIORITY_PREFIX))) {
- return true;
- }
- if (priorityLevel.compareTo(((AbstractTaskContainer) element).getPriority()) >= 0) {
- return true;
- }
- return false;
- }
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java
deleted file mode 100644
index c68014f36..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IActionFilter;
-
-/**
- * Adapter factory for adapting TaskRepository to org.eclipse.ui.IActionFilter
- *
- * @author Eugene Kuleshov
- */
-public class TaskRepositoryAdapterFactory implements IAdapterFactory {
-
- @SuppressWarnings("unchecked")
- private static final Class[] ADAPTER_TYPES = new Class[] { IActionFilter.class };
-
- @SuppressWarnings("unchecked")
- public Class[] getAdapterList() {
- return ADAPTER_TYPES;
- }
-
- public Object getAdapter(final Object adaptable, @SuppressWarnings("unchecked") Class adapterType) {
- if (adaptable instanceof TaskRepository) {
- return new IActionFilter() {
- public boolean testAttribute(Object target, String name, String value) {
- TaskRepository repository = (TaskRepository) target;
- if ("offline".equals(name)) { //$NON-NLS-1$
- return Boolean.valueOf(value).booleanValue() == repository.isOffline();
- } else if ("supportQuery".equals(name)) { //$NON-NLS-1$
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind());
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager()
- .getRepositoryConnector(repository.getConnectorKind());
- return null != connectorUi.getQueryWizard(repository, null) && connector.canQuery(repository);
- } else if ("supportNewTask".equals(name)) { //$NON-NLS-1$
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- return connector.canCreateNewTask(repository);
- } else if ("hasRepository".equals(name)) { //$NON-NLS-1$
- return !repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND);
- }
- return false;
- }
- };
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryComparator.java
deleted file mode 100644
index 9e7b04b29..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryComparator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Comparator;
-
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Mik Kersten
- */
-public class TaskRepositoryComparator implements Comparator<TaskRepository> {
- public int compare(TaskRepository t1, TaskRepository t2) {
- if (t1.getRepositoryLabel() != null && t2.getRepositoryLabel() != null) {
- return t1.getRepositoryLabel().compareTo(t2.getRepositoryLabel());
- } else if (t1.getRepositoryLabel() == null && t2.getRepositoryLabel() == null) {
- return t1.getRepositoryUrl().compareTo(t2.getRepositoryUrl());
- } else if (t1.getRepositoryLabel() == null) {
- return -1;
- } else if (t2.getRepositoryLabel() == null) {
- return 1;
- }
- return 1;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryLocationUi.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryLocationUi.java
deleted file mode 100644
index b1cef8f57..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryLocationUi.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.commons.core.CoreUtil;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.commons.net.UnsupportedRequestException;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryLocation;
-import org.eclipse.mylyn.internal.tasks.ui.dialogs.TaskRepositoryCredentialsDialog;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskRepositoryLocationUi extends TaskRepositoryLocation {
-
- private static Object lock = new Object();
-
- public TaskRepositoryLocationUi(TaskRepository taskRepository) {
- super(taskRepository);
- }
-
- @Override
- public void requestCredentials(AuthenticationType authType, String message, IProgressMonitor monitor)
- throws UnsupportedRequestException {
- if (CoreUtil.TEST_MODE) {
- throw new UnsupportedRequestException();
- }
-
- AuthenticationCredentials oldCredentials = taskRepository.getCredentials(authType);
- // synchronize on a static lock to ensure that only one password dialog is displayed at a time
- synchronized (lock) {
- // check if the credentials changed while the thread was waiting for the lock
- if (!areEqual(oldCredentials, taskRepository.getCredentials(authType))) {
- return;
- }
-
- if (Policy.isBackgroundMonitor(monitor)) {
- throw new UnsupportedRequestException();
- }
-
- PasswordRunner runner = new PasswordRunner(authType, message);
- if (!PlatformUI.getWorkbench().getDisplay().isDisposed()) {
- PlatformUI.getWorkbench().getDisplay().syncExec(runner);
- if (runner.isCanceled()) {
- throw new OperationCanceledException();
- }
- if (!runner.isChanged()) {
- throw new UnsupportedRequestException();
- }
- } else {
- throw new UnsupportedRequestException();
- }
- }
- }
-
- private boolean areEqual(AuthenticationCredentials oldCredentials, AuthenticationCredentials credentials) {
- if (oldCredentials == null) {
- return (credentials == null);
- } else {
- return oldCredentials.equals(credentials);
- }
- }
-
- private class PasswordRunner implements Runnable {
-
- private final AuthenticationType authType;
-
- private boolean changed;
-
- private final String message;
-
- private boolean canceled;
-
- public PasswordRunner(AuthenticationType credentialType, String message) {
- this.authType = credentialType;
- this.message = message;
- }
-
- public boolean isChanged() {
- return changed;
- }
-
- public boolean isCanceled() {
- return canceled;
- }
-
- public void run() {
- //Shell shell = Display.getCurrent().getActiveShell();
- Shell shell = WorkbenchUtil.getShell();
- if (shell != null && !shell.isDisposed()) {
- TaskRepositoryCredentialsDialog dialog = TaskRepositoryCredentialsDialog.createDialog(shell);
- initializeDialog(dialog);
- int resultCode = dialog.open();
- if (resultCode == Window.OK) {
- apply(dialog);
- changed = true;
- } else if (resultCode == TaskRepositoryCredentialsDialog.TASK_REPOSITORY_CHANGED) {
- changed = true;
- } else {
- canceled = true;
- }
- }
- }
-
- private void initializeDialog(TaskRepositoryCredentialsDialog dialog) {
- dialog.setTaskRepository(taskRepository);
-
- AuthenticationCredentials credentials = taskRepository.getCredentials(authType);
- if (credentials != null) {
- dialog.setUsername(credentials.getUserName());
- dialog.setPassword(credentials.getPassword());
- }
-
- // caller provided message takes precedence
- if (message != null) {
- dialog.setMessage(message);
- } else {
- dialog.setMessage(getDefaultMessage());
- }
- }
-
- private String getDefaultMessage() {
- if (AuthenticationType.REPOSITORY.equals(authType)) {
- return Messages.TaskRepositoryLocationUi_Enter_repository_password;
- } else if (AuthenticationType.HTTP.equals(authType)) {
- return Messages.TaskRepositoryLocationUi_Enter_HTTP_password;
- } else if (AuthenticationType.PROXY.equals(authType)) {
- return Messages.TaskRepositoryLocationUi_Enter_proxy_password;
- }
- return null;
- }
-
- private void apply(TaskRepositoryCredentialsDialog dialog) {
- AuthenticationCredentials credentials = new AuthenticationCredentials(dialog.getUserName(),
- dialog.getPassword());
- taskRepository.setCredentials(authType, credentials, dialog.getSavePassword());
- TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(taskRepository);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryUtil.java
deleted file mode 100644
index 37fe79554..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryUtil.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Rob Elves
- */
-public class TaskRepositoryUtil {
-
- /**
- * Is auto add of template repository disabled for repositoryUrl
- *
- * @since 2.1
- */
- public static boolean isAddAutomaticallyDisabled(String repositoryUrl) {
- String deletedTemplates = TasksUiPlugin.getDefault().getPreferenceStore().getString(
- ITasksUiPreferenceConstants.TEMPLATES_DELETED);
- String[] templateUrls = deletedTemplates.split("\\" + ITasksUiPreferenceConstants.TEMPLATES_DELETED_DELIM); //$NON-NLS-1$
- for (String deletedUrl : templateUrls) {
- if (deletedUrl.equalsIgnoreCase(repositoryUrl)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Disable template repository from being automatically added
- *
- * @since 2.1
- */
- public static void disableAddAutomatically(String repositoryUrl) {
- if (!isAddAutomaticallyDisabled(repositoryUrl) && isAddAutomatically(repositoryUrl)) {
- String deletedTemplates = TasksUiPlugin.getDefault().getPreferenceStore().getString(
- ITasksUiPreferenceConstants.TEMPLATES_DELETED);
- deletedTemplates += ITasksUiPreferenceConstants.TEMPLATES_DELETED_DELIM + repositoryUrl;
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.TEMPLATES_DELETED,
- deletedTemplates);
- TasksUiPlugin.getDefault().savePluginPreferences();
- }
- }
-
- /**
- * Template exists and is auto add enabled
- */
- private static boolean isAddAutomatically(String repositoryUrl) {
- for (AbstractRepositoryConnector connector : TasksUi.getRepositoryManager().getRepositoryConnectors()) {
- for (RepositoryTemplate template : TasksUiPlugin.getRepositoryTemplateManager().getTemplates(
- connector.getConnectorKind())) {
- if (template.repositoryUrl != null && template.repositoryUrl.equalsIgnoreCase(repositoryUrl)
- && template.addAutomatically) {
- return true;
- }
- }
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskSearchPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskSearchPage.java
deleted file mode 100644
index 933c18f49..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskSearchPage.java
+++ /dev/null
@@ -1,624 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchHitCollector;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskSearchPage;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskSearchPageContainer;
-import org.eclipse.search.internal.ui.SearchPlugin;
-import org.eclipse.search.ui.ISearchPage;
-import org.eclipse.search.ui.ISearchPageContainer;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResultViewPart;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class TaskSearchPage extends DialogPage implements ISearchPage {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.search.page"; //$NON-NLS-1$
-
- private static final String PAGE_KEY = "page"; //$NON-NLS-1$
-
- private static final String PAGE_NAME = "TaskSearchPage"; //$NON-NLS-1$
-
- private static final String STORE_REPO_ID = PAGE_NAME + ".REPO"; //$NON-NLS-1$
-
- private Combo repositoryCombo;
-
- private Text keyText;
-
- private TaskRepository repository;
-
- private Composite fParentComposite;
-
- private IDialogSettings fDialogSettings;
-
- private int currentPageIndex = -1;
-
- private boolean firstView = true;
-
- private Control[] queryPages;
-
- private ISearchPageContainer pageContainer;
-
- private ITaskSearchPageContainer taskSearchPageContainer;
-
- public boolean performAction() {
- saveDialogSettings();
- String key = keyText.getText();
- if (key != null && key.trim().length() > 0) {
- key = key.trim();
- boolean openSuccessful = TasksUiUtil.openTask(repository, key);
- if (!openSuccessful) {
- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.TaskSearchPage_Task_Search, Messages.TaskSearchPage_No_task_found_matching_key_ + key);
- }
- return openSuccessful;
- } else {
- ITaskSearchPage page = (ITaskSearchPage) queryPages[currentPageIndex].getData(PAGE_KEY);
- return page.performSearch();
- }
- }
-
- public void setContainer(ISearchPageContainer container) {
- this.pageContainer = container;
- this.taskSearchPageContainer = new ITaskSearchPageContainer() {
- public IRunnableContext getRunnableContext() {
- return pageContainer.getRunnableContext();
- }
-
- public void setPerformActionEnabled(boolean enabled) {
- pageContainer.setPerformActionEnabled(enabled);
- }
- };
- }
-
- public void createControl(Composite parent) {
- fParentComposite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(1, false);
- // layout.marginHeight = 0;
- // layout.marginWidth = 0;
- fParentComposite.setLayout(layout);
- GridData gd = new GridData(GridData.FILL_BOTH);
- fParentComposite.setLayoutData(gd);
-
- createRepositoryGroup(fParentComposite);
- createSeparator(fParentComposite);
- this.setControl(fParentComposite);
-
- Dialog.applyDialogFont(fParentComposite);
- }
-
- private void createSeparator(Composite parent) {
- Label separator = new Label(parent, SWT.NONE);
- separator.setVisible(false);
- GridData data = new GridData(GridData.FILL, GridData.FILL, false, false, 2, 1);
- data.heightHint = convertHeightInCharsToPixels(1) / 3;
- separator.setLayoutData(data);
- }
-
- private void createRepositoryGroup(Composite control) {
- Composite group = new Composite(control, SWT.NONE);
- GridLayout layout = new GridLayout(6, false);
- group.setLayout(layout);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- group.setLayoutData(gd);
-
- Label label = new Label(group, SWT.NONE);
- label.setText(Messages.TaskSearchPage_Select_Repository_);
-
- repositoryCombo = new Combo(group, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
- repositoryCombo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- displayQueryPage(repositoryCombo.getSelectionIndex());
- }
- });
- label = new Label(group, SWT.NONE);
- label.setText(" "); //$NON-NLS-1$
-
- Label labelKey = new Label(group, SWT.NONE);
- labelKey.setText(Messages.TaskSearchPage_Task_Key_ID);
- keyText = new Text(group, SWT.BORDER);
- keyText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-
- String findText = null;
- TaskListView taskListView = TaskListView.getFromActivePerspective();
- if (taskListView != null) {
- findText = taskListView.getFilteredTree().getFilterControl().getText();
- if (findText != null && findText.trim().length() > 0 && isTaskKeyCandidate(findText.trim())) {
- pageContainer.setPerformActionEnabled(true);
- keyText.setText(findText.trim());
- keyText.setFocus();
- }
- }
-
- keyText.addKeyListener(new KeyListener() {
-
- public void keyPressed(KeyEvent e) {
- // ignore
- }
-
- public void keyReleased(KeyEvent e) {
- updatePageEnablement();
- }
- });
-
- ImageHyperlink clearKey = new ImageHyperlink(group, SWT.NONE);
- clearKey.setImage(CommonImages.getImage(CommonImages.REMOVE));
- clearKey.addHyperlinkListener(new HyperlinkAdapter() {
-
- @Override
- public void linkActivated(HyperlinkEvent e) {
- keyText.setText(""); //$NON-NLS-1$
- updatePageEnablement();
- }
- });
- }
-
- private void updatePageEnablement() {
- if (keyText.getText() != null && keyText.getText().trim().length() > 0) {
- //setControlsEnabled(queryPages[currentPageIndex], false);
- if (queryPages != null && queryPages[currentPageIndex] != null
- && queryPages[currentPageIndex].getData(PAGE_KEY) instanceof AbstractRepositoryQueryPage) {
- ((AbstractRepositoryQueryPage) queryPages[currentPageIndex].getData(PAGE_KEY)).setControlsEnabled(false);
- }
- if (repositoryCombo.getSelectionIndex() > -1) {
- pageContainer.setPerformActionEnabled(true);
- }
- } else {
- //setControlsEnabled(queryPages[currentPageIndex], true);
- if (queryPages != null && queryPages[currentPageIndex] != null
- && queryPages[currentPageIndex].getData(PAGE_KEY) instanceof AbstractRepositoryQueryPage) {
- ((AbstractRepositoryQueryPage) queryPages[currentPageIndex].getData(PAGE_KEY)).setControlsEnabled(true);
- }
- //setControlsEnabled(queryPages[currentPageIndex], true);
- //pageContainer.setPerformActionEnabled(false);
- }
- }
-
- private Control createPage(TaskRepository repository, ITaskSearchPage searchPage) {
- // Page wrapper
- final Composite pageWrapper = new Composite(fParentComposite, SWT.NONE);
- pageWrapper.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- pageWrapper.setLayout(layout);
-
- searchPage.setContainer(taskSearchPageContainer);
- try {
- searchPage.createControl(pageWrapper);
- } catch (Exception e) {
- pageWrapper.dispose();
- searchPage.dispose();
-
- searchPage = new DeadSearchPage(repository);
- searchPage.setContainer(taskSearchPageContainer);
- searchPage.createControl(fParentComposite);
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Error occurred while constructing search page for " + repository.getRepositoryUrl() + " [" //$NON-NLS-1$ //$NON-NLS-2$
- + repository.getConnectorKind() + "]", e)); //$NON-NLS-1$
- searchPage.getControl().setData(PAGE_KEY, searchPage);
- return searchPage.getControl();
- }
-
- // XXX: work around for initial search page size issue bug#198493
- IDialogSettings searchDialogSettings = SearchPlugin.getDefault().getDialogSettingsSection(
- "DialogBounds_SearchDialog"); //$NON-NLS-1$
- if (searchDialogSettings.get("DIALOG_WIDTH") == null) { //$NON-NLS-1$
- fParentComposite.getParent().getShell().pack();
- }
- pageWrapper.setData(PAGE_KEY, searchPage);
- return pageWrapper;
- }
-
- private void displayQueryPage(int pageIndex) {
- if (currentPageIndex == pageIndex || pageIndex < 0) {
- return;
- }
-
- // TODO: if repository == null display invalid page?
- if (currentPageIndex != -1 && queryPages[currentPageIndex] != null) {
- queryPages[currentPageIndex].setVisible(false);
- ITaskSearchPage page = (ITaskSearchPage) queryPages[currentPageIndex].getData(PAGE_KEY);
- page.setVisible(false);
- GridData data = (GridData) queryPages[currentPageIndex].getLayoutData();
- data.exclude = true;
- queryPages[currentPageIndex].setLayoutData(data);
- }
-
- String repositoryLabel = repositoryCombo.getItem(pageIndex);
- repository = (TaskRepository) repositoryCombo.getData(repositoryLabel);
-
- if (queryPages[pageIndex] == null) {
- if (repository != null) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind());
- if (connectorUi != null) {
- ITaskSearchPage searchPage = getSearchPage(connectorUi);
- if (searchPage != null) {
- queryPages[pageIndex] = createPage(repository, searchPage);
- } else {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- if (connector.canCreateTaskFromKey(repository)) {
- queryPages[pageIndex] = createPage(repository, new NoSearchPage(repository));
- }
- }
- }
-
- }
- }
-
- // update enablement of the task id field
- if (repository != null) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- if (connector.canCreateTaskFromKey(repository)) {
- keyText.setEnabled(true);
- } else {
- keyText.setEnabled(false);
- }
- }
-
- if (queryPages[pageIndex] != null) {
- GridData data = (GridData) queryPages[pageIndex].getLayoutData();
- if (data == null) {
- data = new GridData();
- }
- data.exclude = false;
- queryPages[pageIndex].setLayoutData(data);
- queryPages[pageIndex].setVisible(true);
- ITaskSearchPage page = (ITaskSearchPage) queryPages[pageIndex].getData(PAGE_KEY);
- page.setVisible(true);
- }
-
- currentPageIndex = pageIndex;
- fParentComposite.getParent().layout(true, true);
- updatePageEnablement();
-
- }
-
- private ITaskSearchPage getSearchPage(AbstractRepositoryConnectorUi connectorUi) {
- if (connectorUi.hasSearchPage()) {
- return connectorUi.getSearchPage(repository, null);
- }
- return null;
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (firstView) {
- getControl().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-
- List<TaskRepository> repositories = TasksUi.getRepositoryManager().getAllRepositories();
- List<TaskRepository> searchableRepositories = new ArrayList<TaskRepository>();
- for (TaskRepository repository : repositories) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind());
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- if ((connectorUi != null && connectorUi.hasSearchPage() && !repository.isOffline())
- || connector.canCreateTaskFromKey(repository)) {
- searchableRepositories.add(repository);
- }
- }
-
- Collections.sort(searchableRepositories, new TaskRepositoryComparator());
-
- String[] repositoryUrls = new String[searchableRepositories.size()];
- int i = 0;
- int indexToSelect = 0;
- for (TaskRepository currRepsitory : searchableRepositories) {
- if (repository != null && repository.equals(currRepsitory)) {
- indexToSelect = i;
- }
- repositoryUrls[i] = currRepsitory.getRepositoryUrl();
- i++;
- }
-
- IDialogSettings settings = getDialogSettings();
- if (repositoryCombo != null) {
- for (int x = 0; x < searchableRepositories.size(); x++) {
- repositoryCombo.add(searchableRepositories.get(x).getRepositoryLabel());
- repositoryCombo.setData(searchableRepositories.get(x).getRepositoryLabel(),
- searchableRepositories.get(x));
- }
- if (repositoryUrls.length == 0) {
- MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
- Messages.TaskSearchPage_Repository_Search, TaskRepositoryManager.MESSAGE_NO_REPOSITORY);
- } else {
- String selectRepo = settings.get(STORE_REPO_ID);
- if (selectRepo != null && repositoryCombo.indexOf(selectRepo) > -1) {
- repositoryCombo.select(repositoryCombo.indexOf(selectRepo));
- repository = (TaskRepository) repositoryCombo.getData(selectRepo);
- if (repository == null) {
- // TODO: Display no repository error
- }
- } else {
- repositoryCombo.select(indexToSelect);
- }
-
- // TODO: Create one page per connector and repopulate based on repository
- queryPages = new Control[repositoryUrls.length];
- displayQueryPage(repositoryCombo.getSelectionIndex());
- // updateAttributesFromRepository(repositoryCombo.getText(),
- // null, false);
- }
- }
- firstView = false;
- }
-
- if (queryPages == null) {
- pageContainer.setPerformActionEnabled(false);
- }
-
- super.setVisible(visible);
-
- setDefaultValuesAndFocus();
- }
-
- private void setDefaultValuesAndFocus() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page = window.getActivePage();
- if (page != null) {
- String repositoryUrl = null;
- IWorkbenchPart part = page.getActivePart();
- if (part instanceof ISearchResultViewPart) {
- ISearchQuery[] queries = NewSearchUI.getQueries();
- if (queries.length > 0) {
- if (queries[0] instanceof SearchHitCollector) {
- repositoryUrl = ((SearchHitCollector) queries[0]).getRepositoryQuery().getRepositoryUrl();
- }
- }
- }
-// if (repositoryUrl == null) {
-// IEditorPart editor = page.getActiveEditor();
-// if (editor instanceof TaskEditor) {
-// repositoryUrl = ((TaskEditor) editor).getTaskEditorInput().getTask().getRepositoryUrl();
-// }
-// }
-// if (repositoryUrl == null) {
-// TaskListView taskListView = TaskListView.getFromActivePerspective();
-// if (taskListView != null) {
-// AbstractTask selectedTask = taskListView.getSelectedTask();
-// if (selectedTask != null) {
-// repositoryUrl = selectedTask.getRepositoryUrl();
-// }
-// }
-// }
- if (repositoryUrl != null) {
- TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository(repositoryUrl);
- if (repository != null) {
- int index = 0;
- for (String repositoryLabel : repositoryCombo.getItems()) {
- if (repositoryLabel.equals(repository.getRepositoryLabel())) {
- repositoryCombo.select(index);
- }
- index++;
- }
- displayQueryPage(repositoryCombo.getSelectionIndex());
- }
- }
- }
- }
-
- if (keyText.getText() != null && keyText.getText().trim().length() > 0) {
- keyText.setFocus();
- keyText.setSelection(0, keyText.getText().length());
- } else {
- Clipboard clipboard = new Clipboard(Display.getDefault());
- TextTransfer transfer = TextTransfer.getInstance();
- String contents = (String) clipboard.getContents(transfer);
- if (contents != null) {
- if (isTaskKeyCandidate(contents.trim())) {
- keyText.setText(contents.trim());
- keyText.setFocus();
- keyText.setSelection(0, keyText.getText().length());
- }
- }
- }
- updatePageEnablement();
- }
-
- private boolean isTaskKeyCandidate(String contents) {
- boolean looksLikeKey = false;
- try {
- Integer.parseInt(contents);
- looksLikeKey = true;
- } catch (NumberFormatException nfe) {
- }
- if (!looksLikeKey) {
- try {
- Integer.parseInt(contents.substring(contents.lastIndexOf('-')));
- looksLikeKey = true;
- } catch (Exception e) {
- }
- }
- return looksLikeKey;
- }
-
- public IDialogSettings getDialogSettings() {
- IDialogSettings settings = TasksUiPlugin.getDefault().getDialogSettings();
- fDialogSettings = settings.getSection(PAGE_NAME);
- if (fDialogSettings == null) {
- fDialogSettings = settings.addNewSection(PAGE_NAME);
- }
- return fDialogSettings;
- }
-
- private void saveDialogSettings() {
- IDialogSettings settings = getDialogSettings();
- settings.put(STORE_REPO_ID, repositoryCombo.getText());
- }
-
- @Override
- public void dispose() {
- if (queryPages != null) {
- for (Control control : queryPages) {
- if (control != null) {
- ITaskSearchPage page = (ITaskSearchPage) control.getData(PAGE_KEY);
- page.dispose();
- }
- }
- }
- super.dispose();
- }
-
- private class DeadSearchPage extends AbstractRepositoryQueryPage {
-
- public DeadSearchPage(TaskRepository rep) {
- super("Search page error", rep); //$NON-NLS-1$
- }
-
- public void createControl(Composite parent) {
- Hyperlink hyperlink = new Hyperlink(parent, SWT.NONE);
- hyperlink.setText(Messages.TaskSearchPage_ERROR_Unable_to_present_query_page);
- hyperlink.setUnderlined(true);
- hyperlink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TaskSearchPage.this.getControl().getShell().close();
- TasksUiUtil.openEditRepositoryWizard(getTaskRepository());
- // TODO: Re-construct this page with new
- // repository data
- }
-
- });
-
- GridDataFactory.fillDefaults().applyTo(hyperlink);
- setControl(hyperlink);
- }
-
- @Override
- public IRepositoryQuery getQuery() {
- return null;
- }
-
- @Override
- public boolean isPageComplete() {
- return false;
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- getSearchContainer().setPerformActionEnabled(false);
- }
- }
-
- @Override
- public String getQueryTitle() {
- return null;
- }
-
- @Override
- public void applyTo(IRepositoryQuery query) {
- // ignore
- }
-
- }
-
- private class NoSearchPage extends AbstractRepositoryQueryPage {
-
- public NoSearchPage(TaskRepository rep) {
- super("No search page", rep); //$NON-NLS-1$
- }
-
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- Dialog.applyDialogFont(composite);
- setControl(composite);
- }
-
- @Override
- public IRepositoryQuery getQuery() {
- return null;
- }
-
- @Override
- public boolean isPageComplete() {
- return false;
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- getSearchContainer().setPerformActionEnabled(false);
- }
- }
-
- @Override
- public String getQueryTitle() {
- return null;
- }
-
- @Override
- public void applyTo(IRepositoryQuery query) {
- // ignore
- }
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java
deleted file mode 100644
index c7f239652..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskListElementAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivationListener;
-import org.eclipse.mylyn.tasks.core.TaskActivationAdapter;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MenuDetectEvent;
-import org.eclipse.swt.events.MenuDetectListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.internal.ObjectActionContributorManager;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.layout.IWindowTrim;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-
-/**
- * @author Mik Kersten
- * @author Leo Dos Santos
- */
-public class TaskTrimWidget extends WorkbenchWindowControlContribution {
-
- public static String ID_CONTAINER = "org.eclipse.mylyn.tasks.ui.trim.container"; //$NON-NLS-1$
-
- public static String ID_CONTROL = "org.eclipse.mylyn.tasks.ui.trim.control"; //$NON-NLS-1$
-
- private Composite composite = null;
-
- private ITask activeTask = null;
-
- private MenuManager menuManager = null;
-
- private Menu menu = null;
-
- private TaskHyperlink activeTaskLabel;
-
- private final OpenWithBrowserAction openWithBrowserAction = new OpenWithBrowserAction();
-
- private final CopyTaskDetailsAction copyTaskDetailsAction = new CopyTaskDetailsAction();
-
- private Point p;
-
- private final ITaskActivationListener TASK_ACTIVATION_LISTENER = new TaskActivationAdapter() {
-
- @Override
- public void taskActivated(ITask task) {
- activeTask = task;
- indicateActiveTask();
- }
-
- @Override
- public void taskDeactivated(ITask task) {
- activeTask = null;
- indicateNoActiveTask();
- }
-
- };
-
- private final IPropertyChangeListener SHOW_TRIM_LISTENER = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- if (property.equals(ITasksUiPreferenceConstants.SHOW_TRIM)) {
- setTrimVisible((Boolean) event.getNewValue());
- }
- }
- };
-
- public TaskTrimWidget() {
- TasksUi.getTaskActivityManager().addActivationListener(TASK_ACTIVATION_LISTENER);
- TasksUiPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(SHOW_TRIM_LISTENER);
- hookContextMenu();
- }
-
- private void setTrimVisible(boolean visible) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window instanceof WorkbenchWindow) {
- IWindowTrim trim = ((WorkbenchWindow) window).getTrimManager().getTrim(ID_CONTAINER);
- if (trim != null) {
- ((WorkbenchWindow) window).getTrimManager().setTrimVisible(trim, visible);
- ((WorkbenchWindow) window).getTrimManager().forceLayout();
- }
- }
- }
-
- @Override
- public void dispose() {
- if (composite != null && !composite.isDisposed()) {
- composite.dispose();
- }
- composite = null;
-
- if (menuManager != null) {
- menuManager.removeAll();
- menuManager.dispose();
- }
- menuManager = null;
-
- if (menu != null && !menu.isDisposed()) {
- menu.dispose();
- }
- menu = null;
-
- TasksUi.getTaskActivityManager().removeActivationListener(TASK_ACTIVATION_LISTENER);
- TasksUiPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(SHOW_TRIM_LISTENER);
- }
-
- @Override
- protected Control createControl(Composite parent) {
- composite = new Composite(parent, SWT.NONE);
-
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- layout.horizontalSpacing = 0;
- layout.marginHeight = 0;
- layout.marginLeft = 0;
- layout.marginRight = 0;
- composite.setLayout(layout);
-
- composite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, true));
-
- createStatusComposite(composite);
-
- parent.getDisplay().asyncExec(new Runnable() {
- public void run() {
- IPreferenceStore uiPreferenceStore = TasksUiPlugin.getDefault().getPreferenceStore();
- setTrimVisible(uiPreferenceStore.getBoolean(ITasksUiPreferenceConstants.SHOW_TRIM));
- }
- });
-
- return composite;
- }
-
- private Composite createStatusComposite(final Composite container) {
- GC gc = new GC(container);
- p = gc.textExtent("WWWWWWWWWWWWWWW"); //$NON-NLS-1$
- gc.dispose();
-
- activeTaskLabel = new TaskHyperlink(container, SWT.RIGHT);
- // activeTaskLabel.setLayoutData(new GridData(p.x, SWT.DEFAULT));
- GridData gridData = new GridData(SWT.LEFT, SWT.CENTER, false, true);
- gridData.widthHint = p.x;
- gridData.minimumWidth = p.x;
- gridData.horizontalIndent = 0;
- activeTaskLabel.setLayoutData(gridData);
- activeTaskLabel.setText(Messages.TaskTrimWidget__no_task_active_);
-
- activeTask = TasksUi.getTaskActivityManager().getActiveTask();
- if (activeTask != null) {
- indicateActiveTask();
- }
-
- activeTaskLabel.addMenuDetectListener(new MenuDetectListener() {
- public void menuDetected(MenuDetectEvent e) {
- if (menu != null) {
- menu.dispose();
- }
- menu = menuManager.createContextMenu(container);
- menu.setVisible(true);
- }
- });
-
- activeTaskLabel.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TaskListView taskListView = TaskListView.getFromActivePerspective();
- if (taskListView != null && taskListView.getDrilledIntoCategory() != null) {
- taskListView.goUpToRoot();
- }
- TasksUiInternal.refreshAndOpenTaskListElement((TasksUi.getTaskActivityManager().getActiveTask()));
- }
- });
-
- activeTaskLabel.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseDown(MouseEvent e) {
- if (activeTask == null) {
- return;
- }
-
- TaskListView taskListView = TaskListView.getFromActivePerspective();
- if (taskListView != null && taskListView.getDrilledIntoCategory() != null) {
- taskListView.goUpToRoot();
- }
-
- TasksUiInternal.refreshAndOpenTaskListElement(activeTask);
- }
- });
-
- return activeTaskLabel;
- }
-
- private void hookContextMenu() {
- menuManager = new MenuManager("#PopupMenu"); //$NON-NLS-1$
- menuManager.setRemoveAllWhenShown(true);
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- fillContextMenu(manager);
- }
- });
- }
-
- // Inspired by TaskListView, TaskEditorActionContributor.
- private void fillContextMenu(IMenuManager manager) {
- if (activeTask != null) {
- IStructuredSelection selection = new StructuredSelection(activeTask);
- openWithBrowserAction.selectionChanged(selection);
- copyTaskDetailsAction.selectionChanged(selection);
-
- manager.add(new OpenTaskListElementAction(null) {
- @Override
- public void run() {
- TasksUiInternal.refreshAndOpenTaskListElement(activeTask);
- }
- });
-
- manager.add(openWithBrowserAction);
- if (TasksUiInternal.isValidUrl(activeTask.getUrl())) {
- openWithBrowserAction.setEnabled(true);
- } else {
- openWithBrowserAction.setEnabled(false);
- }
-
- if (activeTask.isActive()) {
- manager.add(new TaskDeactivateAction() {
- @Override
- public void run() {
- super.run(activeTask);
- }
- });
- } else {
- manager.add(new TaskActivateAction() {
- @Override
- public void run() {
-// TasksUiPlugin.getTaskListManager().getTaskActivationHistory().addTask(activeTask);
- super.run(activeTask);
- }
- });
- }
-
- manager.add(new Separator());
-
- for (String menuPath : TasksUiPlugin.getDefault().getDynamicMenuMap().keySet()) {
- for (IDynamicSubMenuContributor contributor : TasksUiPlugin.getDefault().getDynamicMenuMap().get(
- menuPath)) {
- List<IRepositoryElement> selectedElements = new ArrayList<IRepositoryElement>();
- selectedElements.add(activeTask);
- MenuManager subMenuManager = contributor.getSubMenuManager(selectedElements);
- if (subMenuManager != null) {
- manager.add(subMenuManager);
- }
- }
- }
-
- manager.add(new Separator());
- manager.add(copyTaskDetailsAction);
- manager.add(new Separator());
-
- ObjectActionContributorManager.getManager().contributeObjectActions(null, manager,
- new ISelectionProvider() {
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- // ignore
- }
-
- public ISelection getSelection() {
- return new StructuredSelection(activeTask);
- }
-
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- // ignore
- }
-
- public void setSelection(ISelection selection) {
- // ignore
- }
- });
- }
- }
-
- public void indicateActiveTask() {
- if (activeTaskLabel != null && activeTaskLabel.isDisposed()) {
- return;
- }
-
- //activeTaskLabel.setText(shortenText(activeTask.getSummary()));
- activeTaskLabel.setText(activeTask.getSummary());
- activeTaskLabel.setUnderlined(true);
- activeTaskLabel.setToolTipText(activeTask.getSummary());
- }
-
- public void indicateNoActiveTask() {
- if (activeTaskLabel != null && activeTaskLabel.isDisposed()) {
- return;
- }
-
- activeTaskLabel.setText(Messages.TaskTrimWidget__no_active_task_);
- activeTaskLabel.setUnderlined(false);
- activeTaskLabel.setToolTipText(""); //$NON-NLS-1$
- }
-
-// // From PerspectiveBarContributionItem
-// private String shortenText(String taskLabel) {
-// if (taskLabel == null || composite == null || composite.isDisposed()) {
-// return null;
-// }
-//
-// String returnText = taskLabel;
-// GC gc = new GC(composite);
-// int maxWidth = p.x;
-//
-// if (gc.textExtent(taskLabel).x > maxWidth) {
-// for (int i = taskLabel.length(); i > 0; i--) {
-// String test = taskLabel.substring(0, i);
-// test = test + "...";
-// if (gc.textExtent(test).x < maxWidth) {
-// returnText = test;
-// break;
-// }
-// }
-// }
-//
-// gc.dispose();
-// return returnText;
-// }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java
deleted file mode 100644
index eb1aa08d2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.ui.IWorkingSet;
-
-/**
- * AbstractTaskListFilter for task working sets
- *
- * @author Eugene Kuleshov
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class TaskWorkingSetFilter extends AbstractTaskListFilter {
-
- private IAdaptable[] elements;
-
- @Override
- public boolean select(Object parent, Object element) {
- if (parent instanceof ITask) {
- return true;
- }
-
- if (parent == null && element instanceof ScheduledTaskContainer) {
- return true;
- }
-
- if (parent == null && element instanceof IRepositoryElement) {
- return isContainedInWorkingSet((IRepositoryElement) element);
- }
- if (parent instanceof ITaskContainer && !(parent instanceof ScheduledTaskContainer)) {
- return isContainedInWorkingSet((IRepositoryElement) parent);
- }
- if (element instanceof LocalTask) {
- for (IRepositoryElement container : ((LocalTask) element).getParentContainers()) {
- return isContainedInWorkingSet(container);
- }
- }
- if (parent instanceof ScheduledTaskContainer && element instanceof ITask) {
- for (IRepositoryElement query : ((AbstractTask) element).getParentContainers()) {
- if (isContainedInWorkingSet(query)) {
- return true;
- }
- }
- return false;
- }
- return true;
- }
-
- public boolean select(ITask task) {
- for (IRepositoryElement query : ((AbstractTask) task).getParentContainers()) {
- if (isContainedInWorkingSet(query)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public boolean applyToFilteredText() {
- return true;
- }
-
- private boolean isContainedInWorkingSet(IRepositoryElement element) {
- return isContainedInWorkingSet(element, new HashSet<IRepositoryElement>());
- }
-
- private boolean isContainedInWorkingSet(IRepositoryElement container, Set<IRepositoryElement> visited) {
- if (elements == null) {
- return true;
- }
-
- if (visited.contains(container)) {
- return false;
- }
-
- visited.add(container);
-
- boolean seenTaskWorkingSets = false;
- String handleIdentifier = container.getHandleIdentifier();
- for (IAdaptable adaptable : elements) {
- if (adaptable instanceof IRepositoryElement) {
- seenTaskWorkingSets = true;
- if (handleIdentifier.equals(((IRepositoryElement) adaptable).getHandleIdentifier())) {
- return true;
- }
-
- // handle case of sub tasks (not directly under a category/query)
- if (container instanceof AbstractTask) {
- for (AbstractTaskContainer parent : ((AbstractTask) container).getParentContainers()) {
- if (visited.contains(parent)) {
- continue;
- }
- if (isContainedInWorkingSet(parent, visited)) {
- return true;
- }
- }
- }
- }
- }
- return !seenTaskWorkingSets;
- }
-
- public boolean updateWorkingSet(IWorkingSet currentWorkingSet) {
- IAdaptable[] newElements = currentWorkingSet.getElements();
- if (!Arrays.equals(this.elements, newElements)) {
- this.elements = newElements;
- return true;
- }
- return false;
- }
-
- public IAdaptable[] getElements() {
- return elements;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksAdapterFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksAdapterFactory.java
deleted file mode 100644
index 0ea14366b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksAdapterFactory.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-
-/**
- * Factory for adapting objects to task elements.
- *
- * @author Steffen Pingel
- */
-public class TasksAdapterFactory implements IAdapterFactory {
-
- private static final Class<?>[] ADAPTER_LIST = new Class[] { ITask.class, TaskRepository.class };
-
- @SuppressWarnings("unchecked")
- public Class[] getAdapterList() {
- return ADAPTER_LIST;
- }
-
- public Object getAdapter(final Object adaptable, @SuppressWarnings("unchecked") Class adapterType) {
- if (adapterType == ITask.class) {
- if (adaptable instanceof TaskEditorInput) {
- return ((TaskEditorInput) adaptable).getTask();
- } else if (adaptable instanceof ITaskAttachment) {
- return ((ITaskAttachment) adaptable).getTask();
- }
- }
- if (adapterType == TaskRepository.class) {
- if (adaptable instanceof TaskEditorInput) {
- return ((TaskEditorInput) adaptable).getTaskRepository();
- } else if (adaptable instanceof ITaskAttachment) {
- return ((ITaskAttachment) adaptable).getTaskRepository();
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksReminderDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksReminderDialog.java
deleted file mode 100644
index e71d42909..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksReminderDialog.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Ken Sueda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import com.ibm.icu.text.DateFormat;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * @author Ken Sueda
- */
-public class TasksReminderDialog extends Dialog {
- private List<AbstractTask> tasks = null;
-
- private Table table = null;
-
- private TableViewer tableViewer = null;
-
- private final String[] columnNames = new String[] { Messages.TasksReminderDialog_Description, Messages.TasksReminderDialog_Priority, Messages.TasksReminderDialog_Reminder_Day };
-
- private static final int DISMISS_ALL_ID = 200;
-
- private static final int DISMISS_ID = 201;
-
- private static final int SNOOZE_ID = 202;
-
- private static long DAY = 24 * 3600 * 1000;
-
- public TasksReminderDialog(Shell parentShell, List<AbstractTask> remTasks) {
- super(parentShell);
- tasks = remTasks;
- setShellStyle(SWT.CLOSE | SWT.MIN | SWT.MODELESS | SWT.BORDER | SWT.TITLE);
- }
-
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- shell.setText(Messages.TasksReminderDialog_Reminders);
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
- setBlockOnOpen(false);
- GridLayout gl = new GridLayout(1, false);
- composite.setLayout(gl);
- GridData data = new GridData(GridData.FILL_BOTH);
- composite.setLayoutData(data);
-
- Composite container = new Composite(composite, SWT.NONE);
- gl = new GridLayout(1, false);
- container.setLayout(gl);
- createTable(container);
- createTableViewer();
-
- return composite;
- }
-
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- createButton(parent, DISMISS_ALL_ID, Messages.TasksReminderDialog_Dismiss_All, false);
- createButton(parent, DISMISS_ID, Messages.TasksReminderDialog_Dismiss_Selected, false);
- createButton(parent, SNOOZE_ID, Messages.TasksReminderDialog_Remind_tommorrow, true);
- }
-
- private void createTable(Composite parent) {
- int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION;
- table = new Table(parent, style);
- GridLayout tlayout = new GridLayout();
- table.setLayout(tlayout);
- GridData wd = new GridData(GridData.FILL_BOTH);
- wd.heightHint = 300;
- table.setLayoutData(wd);
-
- table.setLinesVisible(true);
- table.setHeaderVisible(true);
-
- TableColumn column = new TableColumn(table, SWT.LEFT, 0);
- column.setText(columnNames[0]);
- column.setWidth(180);
- column.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- tableViewer.setSorter(new ReminderTaskSorter(ReminderTaskSorter.DESCRIPTION));
-
- }
- });
-
- column = new TableColumn(table, SWT.LEFT, 1);
- column.setText(columnNames[1]);
- column.setWidth(50);
- column.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- tableViewer.setSorter(new ReminderTaskSorter(ReminderTaskSorter.PRIORITY));
- }
- });
-
- column = new TableColumn(table, SWT.LEFT, 2);
- column.setText(columnNames[2]);
- column.setWidth(100);
- column.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- tableViewer.setSorter(new ReminderTaskSorter(ReminderTaskSorter.DATE));
- }
- });
- }
-
- private void createTableViewer() {
- tableViewer = new TableViewer(table);
- tableViewer.setUseHashlookup(true);
- tableViewer.setContentProvider(new ReminderTasksContentProvider());
- tableViewer.setLabelProvider(new ReminderTasksLabelProvider());
- tableViewer.setInput(tasks);
- }
-
- @Override
- protected void buttonPressed(int buttonId) {
- if (buttonId == DISMISS_ALL_ID) {
- for (ITask t : tasks) {
- ((AbstractTask) t).setReminded(true);
- }
- okPressed();
- } else if (buttonId == DISMISS_ID) {
- Object sel = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement();
- if (sel != null && sel instanceof ITask) {
- ITask t = (ITask) sel;
- ((AbstractTask) t).setReminded(true);
- tasks.remove(t);
- if (tasks.isEmpty()) {
- okPressed();
- } else {
- tableViewer.refresh();
- }
- }
- } else if (buttonId == SNOOZE_ID) {
- Object sel = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement();
- if (sel != null && sel instanceof ITask) {
- ITask t = (ITask) sel;
- ((AbstractTask) t).setReminded(false);
- ((AbstractTask) t).setScheduledForDate(TaskActivityUtil.getDayOf(new Date(new Date().getTime() + DAY)));
- tasks.remove(t);
- if (tasks.isEmpty()) {
- okPressed();
- } else {
- tableViewer.refresh();
- }
- }
- }
- super.buttonPressed(buttonId);
- }
-
- private class ReminderTasksContentProvider implements IStructuredContentProvider {
-
- public Object[] getElements(Object inputElement) {
- return tasks.toArray();
- }
-
- public void dispose() {
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- }
-
- private static class ReminderTasksLabelProvider extends LabelProvider implements ITableLabelProvider {
- public Image getColumnImage(Object element, int columnIndex) {
- return null;
- }
-
- public String getColumnText(Object element, int columnIndex) {
- if (element instanceof ITask) {
- AbstractTask task = (AbstractTask) element;
- switch (columnIndex) {
- case 0:
- return task.getSummary();
- case 1:
- return task.getPriority();
- case 2:
- return DateFormat.getDateInstance(DateFormat.MEDIUM).format(task.getScheduledForDate());
- }
- }
- return null;
- }
-
- }
-
- private static class ReminderTaskSorter extends ViewerSorter {
-
- public final static int DESCRIPTION = 1;
-
- public final static int PRIORITY = 2;
-
- public final static int DATE = 3;
-
- private final int criteria;
-
- public ReminderTaskSorter(int criteria) {
- super();
- this.criteria = criteria;
- }
-
- @Override
- public int compare(Viewer viewer, Object obj1, Object obj2) {
- ITask t1 = (ITask) obj1;
- ITask t2 = (ITask) obj2;
-
- switch (criteria) {
- case DESCRIPTION:
- return compareDescription(t1, t2);
- case PRIORITY:
- return comparePriority(t1, t2);
- case DATE:
- return compareDate((AbstractTask) t1, (AbstractTask) t2);
- default:
- return 0;
- }
- }
-
- private int compareDescription(ITask task1, ITask task2) {
- return task1.getSummary().compareToIgnoreCase(task2.getSummary());
- }
-
- private int comparePriority(ITask task1, ITask task2) {
- return task1.getPriority().compareTo(task2.getPriority());
- }
-
- private int compareDate(AbstractTask task1, AbstractTask task2) {
- return task2.getScheduledForDate().compareTo(task1.getScheduledForDate());
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiFactory.java
deleted file mode 100644
index aaaf5f65b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * 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
- * David Green - fix for bug 263418
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui;
-
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryCompletionProcessor;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.ITasksUiFactory;
-
-/**
- * @author Steffen Pingel
- * @author David Green
- */
-public class TasksUiFactory implements ITasksUiFactory {
-
- public IContentProposalProvider createPersonContentProposalProvider(TaskRepository repository) {
- return new PersonProposalProvider(repository.getRepositoryUrl(), repository.getConnectorKind());
- }
-
- public ILabelProvider createPersonContentProposalLabelProvider(TaskRepository repository) {
- return new PersonProposalLabelProvider();
- }
-
- public IContentAssistProcessor createTaskContentAssistProcessor(TaskRepository repository) {
- return new RepositoryCompletionProcessor(repository);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
deleted file mode 100644
index 5078fc28c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
+++ /dev/null
@@ -1,1254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-import java.io.File;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.core.net.proxy.IProxyChangeEvent;
-import org.eclipse.core.net.proxy.IProxyChangeListener;
-import org.eclipse.core.net.proxy.IProxyService;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ISaveContext;
-import org.eclipse.core.resources.ISaveParticipant;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFonts;
-import org.eclipse.mylyn.internal.tasks.core.AbstractSearchHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.IRepositoryModelListener;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryExternalizationParticipant;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryModel;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataStore;
-import org.eclipse.mylyn.internal.tasks.core.externalization.ExternalizationManager;
-import org.eclipse.mylyn.internal.tasks.core.externalization.IExternalizationParticipant;
-import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizationParticipant;
-import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskListNotificationReminder;
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskListNotifier;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiExtensionReader;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesView;
-import org.eclipse.mylyn.tasks.core.AbstractDuplicateDetector;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivationListener;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.core.TaskActivationAdapter;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.progress.UIJob;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Main entry point for the Tasks UI.
- *
- * @author Mik Kersten
- * @since 3.0
- */
-public class TasksUiPlugin extends AbstractUIPlugin {
-
- private static final int DELAY_QUERY_REFRESH_ON_STARTUP = 20 * 1000;
-
- private static final int DEFAULT_LINK_PROVIDER_TIMEOUT = 5 * 1000;
-
- public static final String ID_PLUGIN = "org.eclipse.mylyn.tasks.ui"; //$NON-NLS-1$
-
- private static final String DIRECTORY_METADATA = ".metadata"; //$NON-NLS-1$
-
- private static final String NAME_DATA_DIR = ".mylyn"; //$NON-NLS-1$
-
- private static final char DEFAULT_PATH_SEPARATOR = '/';
-
- private static final int NOTIFICATION_DELAY = 5000;
-
- private static TasksUiPlugin INSTANCE;
-
- private static ExternalizationManager externalizationManager;
-
- private static TaskActivityManager taskActivityManager;
-
- private static TaskRepositoryManager repositoryManager;
-
- private static TaskListSynchronizationScheduler synchronizationScheduler;
-
- private static TaskDataManager taskDataManager;
-
- private static Map<String, AbstractRepositoryConnectorUi> repositoryConnectorUiMap = new HashMap<String, AbstractRepositoryConnectorUi>();
-
- private TaskListNotificationManager taskListNotificationManager;
-
- private TaskListBackupManager taskListBackupManager;
-
- private RepositoryTemplateManager repositoryTemplateManager;
-
- private final Set<AbstractTaskEditorPageFactory> taskEditorPageFactories = new HashSet<AbstractTaskEditorPageFactory>();
-
- private final TreeSet<AbstractTaskRepositoryLinkProvider> repositoryLinkProviders = new TreeSet<AbstractTaskRepositoryLinkProvider>(
- new OrderComparator());
-
- private TaskListExternalizer taskListExternalizer;
-
- private ITaskHighlighter highlighter;
-
- private final Map<String, Image> brandingIcons = new HashMap<String, Image>();
-
- private final Map<String, ImageDescriptor> overlayIcons = new HashMap<String, ImageDescriptor>();
-
- private final Set<AbstractDuplicateDetector> duplicateDetectors = new HashSet<AbstractDuplicateDetector>();
-
- private ISaveParticipant saveParticipant;
-
- private TaskEditorBloatMonitor taskEditorBloatManager;
-
- private TaskJobFactory taskJobFactory;
-
- // shared colors for all forms
- private FormColors formColors;
-
- private final List<AbstractSearchHandler> searchHandlers = new ArrayList<AbstractSearchHandler>();
-
- private static final boolean DEBUG_HTTPCLIENT = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.mylyn.tasks.ui/debug/httpclient")); //$NON-NLS-1$ //$NON-NLS-2$
-
- // XXX reconsider if this is necessary
- public static class TasksUiStartup implements IStartup {
-
- public void earlyStartup() {
- // ignore
- }
- }
-
- private static final class OrderComparator implements Comparator<AbstractTaskRepositoryLinkProvider> {
- public int compare(AbstractTaskRepositoryLinkProvider p1, AbstractTaskRepositoryLinkProvider p2) {
- return p1.getOrder() - p2.getOrder();
- }
- }
-
- public enum TaskListSaveMode {
- ONE_HOUR, THREE_HOURS, DAY;
- @Override
- public String toString() {
- switch (this) {
- case ONE_HOUR:
- return "1 hour"; //$NON-NLS-1$
- case THREE_HOURS:
- return "3 hours"; //$NON-NLS-1$
- case DAY:
- return "1 day"; //$NON-NLS-1$
- default:
- return "3 hours"; //$NON-NLS-1$
- }
- }
-
- public static TaskListSaveMode fromString(String string) {
- if (string == null) {
- return null;
- }
- if (string.equals("1 hour")) { //$NON-NLS-1$
- return ONE_HOUR;
- }
- if (string.equals("3 hours")) { //$NON-NLS-1$
- return THREE_HOURS;
- }
- if (string.equals("1 day")) { //$NON-NLS-1$
- return DAY;
- }
- return null;
- }
-
- public static long fromStringToLong(String string) {
- long hour = 3600 * 1000;
- switch (fromString(string)) {
- case ONE_HOUR:
- return hour;
- case THREE_HOURS:
- return hour * 3;
- case DAY:
- return hour * 24;
- default:
- return hour * 3;
- }
- }
- }
-
- public enum ReportOpenMode {
- EDITOR, INTERNAL_BROWSER, EXTERNAL_BROWSER;
- }
-
- private static ITaskActivationListener CONTEXT_TASK_ACTIVATION_LISTENER = new TaskActivationAdapter() {
-
- @Override
- public void taskActivated(final ITask task) {
- ContextCore.getContextManager().activateContext(task.getHandleIdentifier());
- }
-
- @Override
- public void taskDeactivated(final ITask task) {
- ContextCore.getContextManager().deactivateContext(task.getHandleIdentifier());
- }
-
- };
-
- private static ITaskListNotificationProvider REMINDER_NOTIFICATION_PROVIDER = new ITaskListNotificationProvider() {
-
- public Set<AbstractNotification> getNotifications() {
- Collection<AbstractTask> allTasks = TasksUiPlugin.getTaskList().getAllTasks();
- Set<AbstractNotification> reminders = new HashSet<AbstractNotification>();
- for (AbstractTask task : allTasks) {
- if (TasksUiPlugin.getTaskActivityManager().isPastReminder(task) && !task.isReminded()) {
- reminders.add(new TaskListNotificationReminder(task));
- task.setReminded(true);
- }
- }
- return reminders;
- }
- };
-
-// private static ITaskListNotificationProvider INCOMING_NOTIFICATION_PROVIDER = new ITaskListNotificationProvider() {
-//
-// @SuppressWarnings( { "deprecation", "restriction" })
-// public Set<AbstractNotification> getNotifications() {
-// Set<AbstractNotification> notifications = new HashSet<AbstractNotification>();
-// // Incoming Changes
-// for (TaskRepository repository : getRepositoryManager().getAllRepositories()) {
-// AbstractRepositoryConnector connector = getRepositoryManager().getRepositoryConnector(
-// repository.getConnectorKind());
-// if (connector instanceof AbstractLegacyRepositoryConnector) {
-// AbstractRepositoryConnectorUi connectorUi = getConnectorUi(repository.getConnectorKind());
-// if (connectorUi != null && !connectorUi.hasCustomNotifications()) {
-// for (ITask itask : TasksUiPlugin.getTaskList().getTasks(repository.getRepositoryUrl())) {
-// if (itask instanceof AbstractTask) {
-// AbstractTask task = (AbstractTask) itask;
-// if ((task.getLastReadTimeStamp() == null || task.getSynchronizationState() == SynchronizationState.INCOMING)
-// && task.isNotified() == false) {
-// TaskListNotification notification = LegacyChangeManager.getIncommingNotification(
-// connector, task);
-// notifications.add(notification);
-// task.setNotified(true);
-// }
-// }
-// }
-// }
-// }
-// }
-// // New query hits
-// for (RepositoryQuery query : TasksUiPlugin.getTaskList().getQueries()) {
-// TaskRepository repository = getRepositoryManager().getRepository(query.getRepositoryUrl());
-// if (repository != null) {
-// AbstractRepositoryConnector connector = getRepositoryManager().getRepositoryConnector(
-// repository.getConnectorKind());
-// if (connector instanceof AbstractLegacyRepositoryConnector) {
-// AbstractRepositoryConnectorUi connectorUi = getConnectorUi(repository.getConnectorKind());
-// if (!connectorUi.hasCustomNotifications()) {
-// for (ITask hit : query.getChildren()) {
-// if (((AbstractTask) hit).isNotified() == false) {
-// notifications.add(new TaskListNotificationQueryIncoming(hit));
-// ((AbstractTask) hit).setNotified(true);
-// }
-// }
-// }
-// }
-// }
-// }
-// return notifications;
-// }
-// };
-
-// private final IPropertyChangeListener PREFERENCE_LISTENER = new IPropertyChangeListener() {
-//
-// public void propertyChange(PropertyChangeEvent event) {
-// // TODO: do we ever get here?
-//// if (event.getProperty().equals(ContextPreferenceContstants.PREF_DATA_DIR)) {
-//// if (event.getOldValue() instanceof String) {
-//// reloadDataDirectory();
-//// }
-//// }
-// }
-// };
-
- private final org.eclipse.jface.util.IPropertyChangeListener PROPERTY_LISTENER = new org.eclipse.jface.util.IPropertyChangeListener() {
-
- public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
- if (event.getProperty().equals(ITasksUiPreferenceConstants.PLANNING_ENDHOUR)
- || event.getProperty().equals(ITasksUiPreferenceConstants.WEEK_START_DAY)) {
- updateTaskActivityManager();
- }
-
- if (event.getProperty().equals(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED)
- || event.getProperty().equals(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_MILISECONDS)) {
- updateSynchronizationScheduler(false);
- }
- }
- };
-
- private TaskActivityMonitor taskActivityMonitor;
-
- private ServiceReference proxyServiceReference;
-
- private IProxyChangeListener proxyChangeListener;
-
- private static TaskListExternalizationParticipant taskListExternalizationParticipant;
-
- private final Set<IRepositoryModelListener> listeners = new HashSet<IRepositoryModelListener>();
-
- private static TaskList taskList;
-
- private static RepositoryModel repositoryModel;
-
- private static TasksUiFactory uiFactory;
-
- @Deprecated
- public static String LABEL_VIEW_REPOSITORIES = Messages.TasksUiPlugin_Task_Repositories;
-
- private class TasksUiInitializationJob extends UIJob {
-
- public TasksUiInitializationJob() {
- super(Messages.TasksUiPlugin_Initializing_Task_List);
- setSystem(true);
- }
-
- @SuppressWarnings("restriction")
- @Override
- public IStatus runInUIThread(IProgressMonitor monitor) {
- // NOTE: failure in one part of the initialization should
- // not prevent others
- monitor.beginTask("Initializing Task List", 5); //$NON-NLS-1$
- try {
- // Needs to run after workbench is loaded because it
- // relies on images.
- TasksUiExtensionReader.initWorkbenchUiExtensions();
-
- if (externalizationManager.getLoadStatus() != null) {
- // XXX: recovery from task list load failure (Rendered in task list)
- }
-
- List<String> commandLineArgs = Arrays.asList(Platform.getCommandLineArgs());
- boolean activateTask = !commandLineArgs.contains(ITasksCoreConstants.COMMAND_LINE_NO_ACTIVATE_TASK);
- if (activateTask) {
- try {
- Field field = org.eclipse.core.internal.resources.Workspace.class.getDeclaredField("crashed"); //$NON-NLS-1$
- field.setAccessible(true);
- Object value = field.get(ResourcesPlugin.getWorkspace());
- if (value instanceof Boolean) {
- activateTask = !(Boolean) value;
- }
- } catch (Throwable t) {
- t.printStackTrace();
- // ignore
- }
- }
- // Needs to happen asynchronously to avoid bug 159706
- for (AbstractTask task : taskList.getAllTasks()) {
- if (task.isActive()) {
- // the externalizer might set multiple tasks active
- task.setActive(false);
- if (activateTask) {
- // make sure only one task is activated
- taskActivityManager.activateTask(task);
- activateTask = false;
- }
- }
- }
- //taskActivityMonitor.reloadActivityTime();
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not initialize task activity", t)); //$NON-NLS-1$
- }
- monitor.worked(1);
-
- try {
- taskListNotificationManager.addNotificationProvider(REMINDER_NOTIFICATION_PROVIDER);
-// taskListNotificationManager.addNotificationProvider(INCOMING_NOTIFICATION_PROVIDER);
- taskListNotificationManager.addNotificationProvider(new TaskListNotifier(getRepositoryModel(),
- getTaskDataManager()));
- taskListNotificationManager.startNotification(NOTIFICATION_DELAY);
- getPreferenceStore().addPropertyChangeListener(taskListNotificationManager);
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not initialize notifications", t)); //$NON-NLS-1$
- }
- monitor.worked(1);
-
- try {
- taskListBackupManager = new TaskListBackupManager(getBackupFolderPath());
- getPreferenceStore().addPropertyChangeListener(taskListBackupManager);
-
- synchronizationScheduler = new TaskListSynchronizationScheduler(taskJobFactory);
- updateSynchronizationScheduler(true);
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not initialize task list backup and synchronization", t)); //$NON-NLS-1$
- }
- monitor.worked(1);
-
- try {
-
- getPreferenceStore().addPropertyChangeListener(PROPERTY_LISTENER);
-
- // TODO: get rid of this, hack to make decorators show
- // up on startup
- TaskRepositoriesView repositoriesView = TaskRepositoriesView.getFromActivePerspective();
- if (repositoriesView != null) {
- repositoriesView.getViewer().refresh();
- }
-
- taskEditorBloatManager = new TaskEditorBloatMonitor();
- taskEditorBloatManager.install(PlatformUI.getWorkbench());
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not finish Tasks UI initialization", t)); //$NON-NLS-1$
- } finally {
- monitor.done();
- }
- return new Status(IStatus.OK, TasksUiPlugin.ID_PLUGIN, IStatus.OK, "", null); //$NON-NLS-1$
- }
- }
-
- public TasksUiPlugin() {
- super();
- INSTANCE = this;
- }
-
- private void updateSynchronizationScheduler(boolean initial) {
- boolean enabled = TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED);
- if (enabled) {
- long interval = TasksUiPlugin.getDefault().getPreferenceStore().getLong(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_MILISECONDS);
- if (initial) {
- synchronizationScheduler.setInterval(DELAY_QUERY_REFRESH_ON_STARTUP, interval);
- } else {
- synchronizationScheduler.setInterval(interval);
- }
- } else {
- synchronizationScheduler.setInterval(0);
- }
- }
-
- @SuppressWarnings( { "restriction" })
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- // NOTE: startup order is very sensitive
- try {
- // initialize framework and settings
- if (DEBUG_HTTPCLIENT) {
- // do this before anything else, once commons logging is initialized and an instance
- // of Log has been created it's too late
- initHttpLogging();
- }
- WebUtil.init();
- initializePreferences(getPreferenceStore());
-
- // initialize CommonFonts from UI thread: bug 240076
- if (CommonFonts.BOLD == null) {
- // ignore
- }
-
- File dataDir = new File(getDataDirectory());
- dataDir.mkdirs();
-
- // create data model
- externalizationManager = new ExternalizationManager(getDataDirectory());
-
- repositoryManager = new TaskRepositoryManager();
- IExternalizationParticipant repositoryParticipant = new RepositoryExternalizationParticipant(
- externalizationManager, repositoryManager);
- externalizationManager.addParticipant(repositoryParticipant);
-
- taskList = new TaskList();
- repositoryModel = new RepositoryModel(taskList, repositoryManager);
- taskListExternalizer = new TaskListExternalizer(repositoryModel, repositoryManager);
-
- taskListExternalizationParticipant = new TaskListExternalizationParticipant(repositoryModel, taskList,
- taskListExternalizer, externalizationManager, repositoryManager);
- //externalizationManager.load(taskListSaveParticipant);
- externalizationManager.addParticipant(taskListExternalizationParticipant);
- taskList.addChangeListener(taskListExternalizationParticipant);
-
- taskActivityManager = new TaskActivityManager(repositoryManager, taskList);
- taskActivityManager.addActivationListener(taskListExternalizationParticipant);
-
- // initialize
- updateTaskActivityManager();
-
- proxyServiceReference = context.getServiceReference(IProxyService.class.getName());
- if (proxyServiceReference != null) {
- IProxyService proxyService = (IProxyService) context.getService(proxyServiceReference);
- if (proxyService != null) {
- proxyChangeListener = new IProxyChangeListener() {
- public void proxyInfoChanged(IProxyChangeEvent event) {
- List<TaskRepository> repos = repositoryManager.getAllRepositories();
- for (TaskRepository repo : repos) {
- if (repo.isDefaultProxyEnabled()) {
- repositoryManager.notifyRepositorySettingsChanged(repo);
- }
- }
- }
- };
- proxyService.addProxyChangeListener(proxyChangeListener);
- }
- }
-
- repositoryTemplateManager = new RepositoryTemplateManager();
-
- // NOTE: initializing extensions in start(..) has caused race
- // conditions previously
- TasksUiExtensionReader.initStartupExtensions(taskListExternalizer);
-
- // instantiate taskDataManager
- TaskDataStore taskDataStore = new TaskDataStore(repositoryManager);
- taskDataManager = new TaskDataManager(taskDataStore, repositoryManager, taskList, taskActivityManager);
-
- taskJobFactory = new TaskJobFactory(taskList, taskDataManager, repositoryManager, repositoryModel);
-
- taskActivityManager.addActivationListener(CONTEXT_TASK_ACTIVATION_LISTENER);
-
- taskActivityMonitor = new TaskActivityMonitor(taskActivityManager, ContextCorePlugin.getContextManager());
- taskActivityMonitor.start();
-
- saveParticipant = new ISaveParticipant() {
-
- public void doneSaving(ISaveContext context) {
- }
-
- public void prepareToSave(ISaveContext context) throws CoreException {
- }
-
- public void rollback(ISaveContext context) {
- }
-
- public void saving(ISaveContext context) throws CoreException {
- if (context.getKind() == ISaveContext.FULL_SAVE) {
- externalizationManager.stop();
- }
- }
- };
- ResourcesPlugin.getWorkspace().addSaveParticipant(this, saveParticipant);
-
- ActivityExternalizationParticipant ACTIVITY_EXTERNALIZTAION_PARTICIPANT = new ActivityExternalizationParticipant(
- externalizationManager);
- externalizationManager.addParticipant(ACTIVITY_EXTERNALIZTAION_PARTICIPANT);
- taskActivityManager.addActivityListener(ACTIVITY_EXTERNALIZTAION_PARTICIPANT);
- taskActivityMonitor.setExternalizationParticipant(ACTIVITY_EXTERNALIZTAION_PARTICIPANT);
-
- // initialize managers
- initializeDataSources();
-
- // make this available early for clients that are not initialized through tasks ui but need access
- taskListNotificationManager = new TaskListNotificationManager();
-
- // trigger lazy initialization
- new TasksUiInitializationJob().schedule();
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Task list initialization failed", e)); //$NON-NLS-1$
- }
- }
-
- private void initHttpLogging() {
- System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); //$NON-NLS-1$ //$NON-NLS-2$
- System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); //$NON-NLS-1$ //$NON-NLS-2$
- System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "debug"); //$NON-NLS-1$ //$NON-NLS-2$
- System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header", "debug"); //$NON-NLS-1$ //$NON-NLS-2$
- System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "debug"); //$NON-NLS-1$ //$NON-NLS-2$
- System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient.HttpConnection", //$NON-NLS-1$
- "trace"); //$NON-NLS-1$
- System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.axis.message", "debug"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- private void updateTaskActivityManager() {
- int endHour = getPreferenceStore().getInt(ITasksUiPreferenceConstants.PLANNING_ENDHOUR);
-// if (taskActivityManager.getEndHour() != endHour) {
-// taskActivityManager.setEndHour(endHour);
- TaskActivityUtil.setEndHour(endHour);
-// }
-
- int newWeekStartDay = getPreferenceStore().getInt(ITasksUiPreferenceConstants.WEEK_START_DAY);
- int oldWeekStartDay = taskActivityManager.getWeekStartDay();
- if (oldWeekStartDay != newWeekStartDay) {
- taskActivityManager.setWeekStartDay(newWeekStartDay);
-// taskActivityManager.setStartTime(new Date());
- }
-
- // event.getProperty().equals(TaskListPreferenceConstants.PLANNING_STARTDAY)
- // scheduledStartHour =
- // TasksUiPlugin.getDefault().getPreferenceStore().getInt(
- // TaskListPreferenceConstants.PLANNING_STARTHOUR);
- }
-
- private void loadTemplateRepositories() {
- // Add standard local task repository
- getLocalTaskRepository();
-
- // Add the automatically created templates
- for (AbstractRepositoryConnector connector : repositoryManager.getRepositoryConnectors()) {
- for (RepositoryTemplate template : repositoryTemplateManager.getTemplates(connector.getConnectorKind())) {
- if (template.addAutomatically && !TaskRepositoryUtil.isAddAutomaticallyDisabled(template.repositoryUrl)) {
- try {
- String repositoryUrl = TaskRepositoryManager.stripSlashes(template.repositoryUrl);
- TaskRepository taskRepository = repositoryManager.getRepository(connector.getConnectorKind(),
- repositoryUrl);
- if (taskRepository == null) {
- taskRepository = new TaskRepository(connector.getConnectorKind(), repositoryUrl);
- taskRepository.setVersion(template.version);
- taskRepository.setRepositoryLabel(template.label);
- taskRepository.setCharacterEncoding(template.characterEncoding);
- if (template.anonymous) {
- taskRepository.setCredentials(AuthenticationType.REPOSITORY, null, true);
- }
- repositoryManager.addRepository(taskRepository);
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load repository template", t)); //$NON-NLS-1$
- }
- }
- }
- }
- }
-
- /**
- * Returns the local task repository. If the repository does not exist it is created and added to the task
- * repository manager.
- *
- * @return the local task repository; never <code>null</code>
- * @since 3.0
- */
- public TaskRepository getLocalTaskRepository() {
- TaskRepository localRepository = repositoryManager.getRepository(LocalRepositoryConnector.CONNECTOR_KIND,
- LocalRepositoryConnector.REPOSITORY_URL);
- if (localRepository == null) {
- localRepository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND,
- LocalRepositoryConnector.REPOSITORY_URL);
- localRepository.setVersion(LocalRepositoryConnector.REPOSITORY_VERSION);
- localRepository.setRepositoryLabel(LocalRepositoryConnector.REPOSITORY_LABEL);
- repositoryManager.addRepository(localRepository);
- }
- return localRepository;
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- try {
- if (formColors != null) {
- formColors.dispose();
- formColors = null;
- }
- if (taskActivityMonitor != null) {
- taskActivityMonitor.stop();
- }
-
- if (ResourcesPlugin.getWorkspace() != null) {
- ResourcesPlugin.getWorkspace().removeSaveParticipant(this);
- }
-
- if (proxyServiceReference != null) {
- IProxyService proxyService = (IProxyService) context.getService(proxyServiceReference);
- if (proxyService != null) {
- proxyService.removeProxyChangeListener(proxyChangeListener);
- }
- context.ungetService(proxyServiceReference);
- }
-
- if (PlatformUI.isWorkbenchRunning()) {
- getPreferenceStore().removePropertyChangeListener(taskListNotificationManager);
- getPreferenceStore().removePropertyChangeListener(taskListBackupManager);
- getPreferenceStore().removePropertyChangeListener(PROPERTY_LISTENER);
- //taskListManager.getTaskList().removeChangeListener(taskListSaveManager);
- CommonColors.dispose();
-// if (ContextCorePlugin.getDefault() != null) {
-// ContextCorePlugin.getDefault().getPluginPreferences().removePropertyChangeListener(
-// PREFERENCE_LISTENER);
-// }
- taskEditorBloatManager.dispose(PlatformUI.getWorkbench());
- INSTANCE = null;
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Task list stop terminated abnormally", e)); //$NON-NLS-1$
- } finally {
- super.stop(context);
- }
- }
-
- public String getDefaultDataDirectory() {
- return ResourcesPlugin.getWorkspace().getRoot().getLocation().toString() + '/' + DIRECTORY_METADATA + '/'
- + NAME_DATA_DIR;
- }
-
- public String getDataDirectory() {
- return getPreferenceStore().getString(ITasksUiPreferenceConstants.PREF_DATA_DIR);
- }
-
- /**
- * Persist <code>path</code> as data directory and loads data from <code>path</code>. This method may block if other
- * jobs are running that modify tasks data. This method will only execute after all conflicting jobs have been
- * completed.
- *
- * @throws CoreException
- * in case setting of the data directory did not complete normally
- * @throws OperationCanceledException
- * if the operation is cancelled by the user
- */
- public void setDataDirectory(final String path) throws CoreException {
- Assert.isNotNull(path);
- IRunnableWithProgress runner = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask(Messages.TasksUiPlugin_Load_Data_Directory, IProgressMonitor.UNKNOWN);
- if (monitor.isCanceled()) {
- throw new InterruptedException();
- }
-
- TasksUi.getTaskActivityManager().deactivateActiveTask();
-
- // set new preference in case of a change
- if (!path.equals(getDataDirectory())) {
- getPreferenceStore().setValue(ITasksUiPreferenceConstants.PREF_DATA_DIR, path);
- }
-
- // reload data from new directory
- initializeDataSources();
- } finally {
- // FIXME roll back preferences change in case of an error?
- monitor.done();
- }
- }
- };
-
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- try {
- service.runInUI(service, runner, ITasksCoreConstants.ROOT_SCHEDULING_RULE);
- } catch (InvocationTargetException e) {
- throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to set data directory", //$NON-NLS-1$
- e.getCause()));
- } catch (InterruptedException e) {
- throw new OperationCanceledException();
- }
- }
-
- public void reloadDataDirectory() throws CoreException {
- // no save just load what is there
- setDataDirectory(getDataDirectory());
- }
-
- /**
- * Invoked on startup and when data is loaded from disk or when the data directory changes.
- *
- * <p>
- * Public for testing.
- */
- @SuppressWarnings("restriction")
- public void initializeDataSources() {
- taskDataManager.setDataPath(getDataDirectory());
- externalizationManager.setRootFolderPath(getDataDirectory());
- ContextCorePlugin.getContextStore().setContextDirectory(getContextStoreDir());
-
- externalizationManager.load();
- // TODO: Move management of template repositories to TaskRepositoryManager
- loadTemplateRepositories();
-
- taskActivityManager.clear();
- ContextCorePlugin.getContextManager().loadActivityMetaContext();
- taskActivityMonitor.reloadActivityTime();
- taskActivityManager.reloadPlanningData();
-
- // inform listeners that initialization is complete
- for (final IRepositoryModelListener listener : listeners) {
- SafeRunner.run(new ISafeRunnable() {
-
- public void handleException(Throwable exception) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN, "Listener failed: " //$NON-NLS-1$
- + listener.getClass(), exception));
- }
-
- public void run() throws Exception {
- listener.loaded();
- }
- });
- }
- }
-
- private File getContextStoreDir() {
- File storeFile = new File(getDataDirectory(), ITasksCoreConstants.CONTEXTS_DIRECTORY);
- if (!storeFile.exists()) {
- storeFile.mkdirs();
- }
- return storeFile;
- }
-
- @SuppressWarnings("deprecation")
- private void initializePreferences(IPreferenceStore store) {
- store.setDefault(ITasksUiPreferenceConstants.PREF_DATA_DIR, getDefaultDataDirectory());
- store.setDefault(ITasksUiPreferenceConstants.GROUP_SUBTASKS, true);
- store.setDefault(ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED, true);
- store.setDefault(ITasksUiPreferenceConstants.FILTER_PRIORITY, PriorityLevel.P5.toString());
- store.setDefault(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH, true);
- store.setDefault(ITasksUiPreferenceConstants.ACTIVATE_WHEN_OPENED, false);
- store.setDefault(ITasksUiPreferenceConstants.SHOW_TRIM, false);
- // remove preference
- store.setToDefault(ITasksUiPreferenceConstants.LOCAL_SUB_TASKS_ENABLED);
- store.setDefault(ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED, true);
-
- store.setDefault(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED, true);
- store.setDefault(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_MILISECONDS, "" + (20 * 60 * 1000)); //$NON-NLS-1$
-
- //store.setDefault(TasksUiPreferenceConstants.BACKUP_SCHEDULE, 1);
- store.setDefault(ITasksUiPreferenceConstants.BACKUP_MAXFILES, 20);
- store.setDefault(ITasksUiPreferenceConstants.BACKUP_LAST, 0f);
-
- store.setDefault(ITasksUiPreferenceConstants.FILTER_ARCHIVE_MODE, true);
- store.setDefault(ITasksUiPreferenceConstants.ACTIVATE_MULTIPLE, false);
- store.setValue(ITasksUiPreferenceConstants.ACTIVATE_MULTIPLE, false);
-
- store.setDefault(ITasksUiPreferenceConstants.WEEK_START_DAY, Calendar.getInstance().getFirstDayOfWeek());
- //store.setDefault(TasksUiPreferenceConstants.PLANNING_STARTHOUR, 9);
- store.setDefault(ITasksUiPreferenceConstants.PLANNING_ENDHOUR, 18);
-
- store.setDefault(ITasksUiPreferenceConstants.AUTO_EXPAND_TASK_LIST, true);
- }
-
- public static TaskActivityManager getTaskActivityManager() {
- return taskActivityManager;
- }
-
- public static TaskListNotificationManager getTaskListNotificationManager() {
- return INSTANCE.taskListNotificationManager;
- }
-
- /**
- * Returns the shared instance.
- */
- public static TasksUiPlugin getDefault() {
- return INSTANCE;
- }
-
- public boolean groupSubtasks(ITaskContainer element) {
- boolean groupSubtasks = TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.GROUP_SUBTASKS);
-
- if (element instanceof ITask) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(((ITask) element).getConnectorKind());
- if (connectorUi != null) {
- if (connectorUi.hasStrictSubtaskHierarchy()) {
- groupSubtasks = true;
- }
- }
- }
-
- if (element instanceof IRepositoryQuery) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(((IRepositoryQuery) element).getConnectorKind());
- if (connectorUi != null) {
- if (connectorUi.hasStrictSubtaskHierarchy()) {
- groupSubtasks = true;
- }
- }
- }
-
- return groupSubtasks;
- }
-
- private final Map<String, List<IDynamicSubMenuContributor>> menuContributors = new HashMap<String, List<IDynamicSubMenuContributor>>();
-
- public Map<String, List<IDynamicSubMenuContributor>> getDynamicMenuMap() {
- return menuContributors;
- }
-
- public void addDynamicPopupContributor(String menuPath, IDynamicSubMenuContributor contributor) {
- List<IDynamicSubMenuContributor> contributors = menuContributors.get(menuPath);
- if (contributors == null) {
- contributors = new ArrayList<IDynamicSubMenuContributor>();
- menuContributors.put(menuPath, contributors);
- }
- contributors.add(contributor);
- }
-
- public String[] getSaveOptions() {
- String[] options = { TaskListSaveMode.ONE_HOUR.toString(), TaskListSaveMode.THREE_HOURS.toString(),
- TaskListSaveMode.DAY.toString() };
- return options;
- }
-
- public String getBackupFolderPath() {
- return getDataDirectory() + DEFAULT_PATH_SEPARATOR + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME;
- }
-
- public ITaskHighlighter getHighlighter() {
- return highlighter;
- }
-
- public void setHighlighter(ITaskHighlighter highlighter) {
- this.highlighter = highlighter;
- }
-
- /**
- * @since 3.0
- */
- public AbstractTaskEditorPageFactory[] getTaskEditorPageFactories() {
- return taskEditorPageFactories.toArray(new AbstractTaskEditorPageFactory[0]);
- }
-
- /**
- * @since 3.0
- */
- public void addTaskEditorPageFactory(AbstractTaskEditorPageFactory factory) {
- Assert.isNotNull(factory);
- taskEditorPageFactories.add(factory);
- }
-
- /**
- * @since 3.0
- */
- public void removeTaskEditorPageFactory(AbstractTaskEditorPageFactory factory) {
- Assert.isNotNull(factory);
- taskEditorPageFactories.remove(factory);
- }
-
- public static TaskRepositoryManager getRepositoryManager() {
- return repositoryManager;
- }
-
- /**
- * @since 3.0
- */
- public static RepositoryTemplateManager getRepositoryTemplateManager() {
- return INSTANCE.repositoryTemplateManager;
- }
-
- public void addBrandingIcon(String repositoryType, Image icon) {
- brandingIcons.put(repositoryType, icon);
- }
-
- public Image getBrandingIcon(String repositoryType) {
- return brandingIcons.get(repositoryType);
- }
-
- public void addOverlayIcon(String repositoryType, ImageDescriptor icon) {
- overlayIcons.put(repositoryType, icon);
- }
-
- public ImageDescriptor getOverlayIcon(String repositoryType) {
- return overlayIcons.get(repositoryType);
- }
-
- public void addRepositoryLinkProvider(AbstractTaskRepositoryLinkProvider repositoryLinkProvider) {
- if (repositoryLinkProvider != null) {
- this.repositoryLinkProviders.add(repositoryLinkProvider);
- }
- }
-
- public static TaskListBackupManager getBackupManager() {
- return INSTANCE.taskListBackupManager;
- }
-
- public void addRepositoryConnectorUi(AbstractRepositoryConnectorUi repositoryConnectorUi) {
- if (!repositoryConnectorUiMap.values().contains(repositoryConnectorUi)) {
- repositoryConnectorUiMap.put(repositoryConnectorUi.getConnectorKind(), repositoryConnectorUi);
- }
- }
-
- /**
- * @since 3.0
- */
- public static AbstractRepositoryConnector getConnector(String kind) {
- return getRepositoryManager().getRepositoryConnector(kind);
- }
-
- public static AbstractRepositoryConnectorUi getConnectorUi(String kind) {
- return repositoryConnectorUiMap.get(kind);
- }
-
- public static TaskListSynchronizationScheduler getSynchronizationScheduler() {
- return synchronizationScheduler;
- }
-
- /**
- * @since 3.0
- */
- public static TaskDataManager getTaskDataManager() {
- return taskDataManager;
- }
-
- /**
- * @since 3.0
- */
- public static TaskJobFactory getTaskJobFactory() {
- return INSTANCE.taskJobFactory;
- }
-
- public void addDuplicateDetector(AbstractDuplicateDetector duplicateDetector) {
- Assert.isNotNull(duplicateDetector);
- duplicateDetectors.add(duplicateDetector);
- }
-
- public Set<AbstractDuplicateDetector> getDuplicateSearchCollectorsList() {
- return duplicateDetectors;
- }
-
- public String getRepositoriesFilePath() {
- return getDataDirectory() + File.separator + TaskRepositoryManager.DEFAULT_REPOSITORIES_FILE;
- }
-
- public void addModelListener(IRepositoryModelListener listener) {
- listeners.add(listener);
- }
-
- public void removeModelListener(IRepositoryModelListener listener) {
- listeners.remove(listener);
- }
-
- public boolean canSetRepositoryForResource(final IResource resource) {
- if (resource == null) {
- return false;
- }
-
- // if a repository has already been linked only that provider should be queried to ensure that it is the same
- // provider that is used by getRepositoryForResource()
- final boolean result[] = new boolean[1];
- final boolean found[] = new boolean[1];
- for (final AbstractTaskRepositoryLinkProvider linkProvider : repositoryLinkProviders) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Task repository link provider failed: \"" + linkProvider.getId() + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void run() throws Exception {
- if (linkProvider.getTaskRepository(resource, getRepositoryManager()) != null) {
- found[0] = true;
- result[0] = linkProvider.canSetTaskRepository(resource);
- }
- }
- });
- if (found[0]) {
- return result[0];
- }
- }
-
- // find a provider that can set new repository
- for (final AbstractTaskRepositoryLinkProvider linkProvider : repositoryLinkProviders) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Task repository link provider failed: \"" + linkProvider.getId() + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void run() throws Exception {
- if (linkProvider.canSetTaskRepository(resource)) {
- result[0] = true;
- }
- }
- });
- if (result[0]) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Associate a Task Repository with a workbench project
- *
- * @param resource
- * project or resource belonging to a project
- * @param repository
- * task repository to associate with given project
- * @throws CoreException
- */
- public void setRepositoryForResource(final IResource resource, final TaskRepository repository) {
- Assert.isNotNull(resource);
- for (final AbstractTaskRepositoryLinkProvider linkProvider : repositoryLinkProviders) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Task repository link provider failed: \"" + linkProvider.getId() + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void run() throws Exception {
- boolean canSetRepository = linkProvider.canSetTaskRepository(resource);
- if (canSetRepository) {
- linkProvider.setTaskRepository(resource, repository);
- }
- }
- });
- }
- }
-
- /**
- * Retrieve the task repository that has been associated with the given project (or resource belonging to a project)
- *
- * NOTE: if call does not return in LINK_PROVIDER_TIMEOUT_SECONDS, the provide will be disabled until the next time
- * that the Workbench starts.
- */
- public TaskRepository getRepositoryForResource(final IResource resource) {
- Assert.isNotNull(resource);
- long timeout;
- try {
- timeout = Long.parseLong(System.getProperty(ITasksCoreConstants.PROPERTY_LINK_PROVIDER_TIMEOUT,
- DEFAULT_LINK_PROVIDER_TIMEOUT + "")); //$NON-NLS-1$
- } catch (NumberFormatException e) {
- timeout = DEFAULT_LINK_PROVIDER_TIMEOUT;
- }
- Set<AbstractTaskRepositoryLinkProvider> defectiveLinkProviders = new HashSet<AbstractTaskRepositoryLinkProvider>();
- for (final AbstractTaskRepositoryLinkProvider linkProvider : repositoryLinkProviders) {
- long startTime = System.currentTimeMillis();
- final TaskRepository[] repository = new TaskRepository[1];
- SafeRunnable.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, ID_PLUGIN, "Task repository link provider failed: \"" //$NON-NLS-1$
- + linkProvider.getId() + "\"", e)); //$NON-NLS-1$
- }
-
- public void run() throws Exception {
- repository[0] = linkProvider.getTaskRepository(resource, getRepositoryManager());
- }
- });
- long elapsed = System.currentTimeMillis() - startTime;
- if (timeout >= 0 && elapsed > timeout) {
- defectiveLinkProviders.add(linkProvider);
- }
- if (repository[0] != null) {
- return repository[0];
- }
- }
- if (!defectiveLinkProviders.isEmpty()) {
- repositoryLinkProviders.removeAll(defectiveLinkProviders);
- StatusHandler.log(new Status(IStatus.WARNING, ID_PLUGIN, "Repository link provider took over " + timeout //$NON-NLS-1$
- + " ms to execute and was timed out: \"" + defectiveLinkProviders + "\"")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return null;
- }
-
- public static ExternalizationManager getExternalizationManager() {
- return externalizationManager;
- }
-
- public static TaskActivityMonitor getTaskActivityMonitor() {
- return INSTANCE.taskActivityMonitor;
- }
-
- public static TaskList getTaskList() {
- return taskList;
- }
-
- public static RepositoryModel getRepositoryModel() {
- return repositoryModel;
- }
-
- /**
- * Note: This is provisional API that is used by connectors.
- * <p>
- * DO NOT CHANGE.
- */
- public void addSearchHandler(AbstractSearchHandler searchHandler) {
- searchHandlers.add(searchHandler);
- }
-
- /**
- * Note: This is provisional API that is used by connectors.
- * <p>
- * DO NOT CHANGE.
- */
- public void removeSearchHandler(AbstractSearchHandler searchHandler) {
- searchHandlers.remove(searchHandler);
- }
-
- public AbstractSearchHandler getSearchHandler(String connectorKind) {
- Assert.isNotNull(connectorKind);
- for (AbstractSearchHandler searchHandler : searchHandlers) {
- if (searchHandler.getConnectorKind().equals(connectorKind)) {
- return searchHandler;
- }
- }
- return null;
- }
-
- public FormColors getFormColors(Display display) {
- if (formColors == null) {
- formColors = new FormColors(display);
- formColors.markShared();
- }
- return formColors;
- }
-
- public void removeRepositoryLinkProvider(AbstractTaskRepositoryLinkProvider provider) {
- repositoryLinkProviders.remove(provider);
- }
-
- public TaskListExternalizer createTaskListExternalizer() {
- return new TaskListExternalizer(repositoryModel, repositoryManager);
- }
-
- public static TaskListExternalizationParticipant getTaskListExternalizationParticipant() {
- return taskListExternalizationParticipant;
- }
-
- public static TasksUiFactory getUiFactory() {
- if (uiFactory == null) {
- uiFactory = new TasksUiFactory();
- }
- return uiFactory;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractChangeCompletionAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractChangeCompletionAction.java
deleted file mode 100644
index a0e6c9319..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractChangeCompletionAction.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Mik Kersten
- */
-public class AbstractChangeCompletionAction extends Action {
-
- protected boolean shouldEnable(List<IRepositoryElement> selectedElements) {
- boolean allLocalTasks = true;
- for (IRepositoryElement abstractTaskContainer : selectedElements) {
- if (!(abstractTaskContainer instanceof ITask)) {
- allLocalTasks = false;
- break;
- } else if (!((AbstractTask) abstractTaskContainer).isLocal()) {
- allLocalTasks = false;
- break;
- }
- }
- return allLocalTasks;
- }
-
- protected String generateMessage(List<AbstractTask> toComplete, String status) {
- String message = MessageFormat.format(Messages.AbstractChangeCompletionAction_Mark_selected_local_tasks_X, status)
- + "\n\n"; //$NON-NLS-1$
- int i = 0;
- for (ITask task : toComplete) {
- i++;
- if (i < 20) {
- message += " "; //$NON-NLS-1$
- if (task.getTaskKey() != null) {
- message += task.getTaskKey() + ": "; //$NON-NLS-1$
- }
- message += task.getSummary() + "\n"; //$NON-NLS-1$
- } else {
- message += "..."; //$NON-NLS-1$
- break;
- }
- }
- return message;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java
deleted file mode 100644
index d8a6c4a3a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-
-/**
- * @author Rob Elves
- */
-public abstract class AbstractTaskAction extends Action {
-
- protected List<IRepositoryElement> selectedElements;
-
- @Override
- public void run() {
- for (IRepositoryElement element : selectedElements) {
- if (element instanceof ITask) {
- AbstractTask repositoryTask = (AbstractTask) element;
- performActionOnTask(repositoryTask);
- } else if (element instanceof IRepositoryQuery) {
- RepositoryQuery repositoryQuery = (RepositoryQuery) element;
- for (ITask queryHit : repositoryQuery.getChildren()) {
- performActionOnTask(queryHit);
- }
- } else if (element instanceof ITaskContainer) {
- ITaskContainer container = (ITaskContainer) element;
- for (ITask task : container.getChildren()) {
- if (task != null) {
- ITask repositoryTask = task;
- performActionOnTask(repositoryTask);
- }
- }
- }
- }
- }
-
- protected abstract void performActionOnTask(ITask repositoryTask);
-
- protected boolean containsArchiveContainer(List<AbstractTaskContainer> selectedElements) {
- return false;//selectedElements.contains(TasksUiPlugin.getTaskList().getArchiveContainer());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskEditorAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskEditorAction.java
deleted file mode 100644
index 2c1e11508..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskEditorAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.dialogs.MessageDialog;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Rob Elves
- */
-public abstract class AbstractTaskEditorAction extends BaseSelectionListenerAction {
-
- protected TaskEditor editor;
-
- public AbstractTaskEditorAction(String text) {
- super(text);
- }
-
- public void setEditor(TaskEditor taskEditor) {
- this.editor = taskEditor;
- }
-
- protected boolean taskDirty(ITask task) {
- return (((editor != null && editor.isDirty())
- || task.getSynchronizationState().equals(SynchronizationState.OUTGOING) || task.getSynchronizationState()
- .equals(SynchronizationState.CONFLICT)));
-
- }
-
- protected void openInformationDialog(String label, String text) {
-
- Shell shell = null;
- if (editor != null) {
- shell = editor.getSite().getShell();
- }
- MessageDialog.openInformation(shell, label, text);
- if (editor != null) {
- editor.showBusy(false);
- }
- return;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskRepositoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskRepositoryAction.java
deleted file mode 100644
index 438618d30..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskRepositoryAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.viewers.IStructuredSelection;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Shawn Minto
- * @author Steffen Pingel
- */
-public abstract class AbstractTaskRepositoryAction extends BaseSelectionListenerAction {
-
- private boolean singleSelect;
-
- public AbstractTaskRepositoryAction(String text) {
- super(text);
- }
-
- @Override
- protected boolean updateSelection(IStructuredSelection selection) {
- if (selection != null && !selection.isEmpty()) {
- if (singleSelect) {
- Object[] array = selection.toArray();
- if (array.length != 1) {
- return false;
- }
- }
- return getTaskRepository(selection.getFirstElement()) != null;
- }
- return false;
- }
-
- protected TaskRepository getTaskRepository(IStructuredSelection selection) {
- if (selection != null && !selection.isEmpty()) {
- return getTaskRepository(selection.getFirstElement());
- }
- return null;
- }
-
- protected TaskRepository getTaskRepository(Object selectedObject) {
- TaskRepository taskRepository = null;
- if (selectedObject instanceof TaskRepository) {
- taskRepository = (TaskRepository) selectedObject;
- } else if (selectedObject instanceof IRepositoryQuery) {
- IRepositoryQuery query = (IRepositoryQuery) selectedObject;
- taskRepository = TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(),
- query.getRepositoryUrl());
- }
-
- if (taskRepository != null && isUserManaged(taskRepository)) {
- return taskRepository;
- }
- return null;
- }
-
- protected boolean isUserManaged(TaskRepository taskRepository) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- return connector != null && connector.isUserManaged();
- }
-
- protected boolean isSingleSelect() {
- return singleSelect;
- }
-
- protected void setSingleSelect(boolean singleSelect) {
- this.singleSelect = singleSelect;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskDialogAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskDialogAction.java
deleted file mode 100644
index 28f3f340c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskDialogAction.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.actions.ActionDelegate;
-
-/**
- * @author Willian Mitsuda
- * @author Mik Kersten
- */
-public class ActivateTaskDialogAction extends ActionDelegate implements IWorkbenchWindowActionDelegate {
-
- private IWorkbenchWindow window;
-
- public void init(IWorkbenchWindow window) {
- this.window = window;
- }
-
- @Override
- public void run(IAction action) {
- TaskSelectionDialog dlg = new TaskSelectionDialog(window.getShell());
- dlg.setTitle(Messages.ActivateTaskDialogAction_Activate_Task);
- dlg.setMessage(Messages.ActivateTaskDialogAction_Select_a_task_to_activate__);
-
- if (dlg.open() != Window.OK) {
- return;
- }
-
- Object result = dlg.getFirstResult();
- if (result instanceof ITask) {
- AbstractTask task = (AbstractTask) result;
- TasksUi.getTaskActivityManager().activateTask(task);
-// manager.getTaskActivationHistory().addTask(task);
- }
- if (TaskListView.getFromActivePerspective() != null) {
- TaskListView.getFromActivePerspective().refresh();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskHistoryDropDownAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskHistoryDropDownAction.java
deleted file mode 100644
index 95afd166b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActivateTaskHistoryDropDownAction.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory;
-import org.eclipse.mylyn.internal.tasks.ui.TaskHistoryDropDown;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
-
-/**
- * @author Wesley Coelho
- * @author Mik Kersten
- * @author Leo Dos Santos
- * @author Steffen Pingel
- */
-public class ActivateTaskHistoryDropDownAction extends Action implements IWorkbenchWindowPulldownDelegate, IMenuCreator {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.navigate.previous"; //$NON-NLS-1$
-
- private Menu dropDownMenu;
-
- private final TaskActivationHistory taskHistory;
-
- private final TaskHistoryDropDown taskHistoryDropDown;
-
- public ActivateTaskHistoryDropDownAction() {
- this.taskHistory = TasksUiPlugin.getTaskActivityManager().getTaskActivationHistory();
- this.taskHistoryDropDown = new TaskHistoryDropDown(null, taskHistory);
- setText(Messages.ActivateTaskHistoryDropDownAction_Activate_Previous_Task);
- setToolTipText(Messages.ActivateTaskHistoryDropDownAction_Activate_Previous_Task);
- setId(ID);
- setEnabled(true);
- setImageDescriptor(TasksUiImages.CONTEXT_HISTORY_PREVIOUS);
- }
-
- public void dispose() {
- // ignore
- }
-
- public Menu getMenu(Control parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- taskHistoryDropDown.fill(dropDownMenu, -1);
- return dropDownMenu;
- }
-
- public Menu getMenu(Menu parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- taskHistoryDropDown.fill(dropDownMenu, -1);
- return dropDownMenu;
- }
-
- public void init(IWorkbenchWindow window) {
- // ignore
- }
-
- @Override
- public void run() {
- if (taskHistory.hasPrevious()) {
- AbstractTask previousTask = taskHistory.getPreviousTask();
- if (previousTask != null && !previousTask.isActive()) {
- TasksUiPlugin.getTaskActivityManager().activateTask(previousTask);
- if (TaskListView.getFromActivePerspective() != null) {
- TaskListView.getFromActivePerspective().refresh();
- }
- }
- setEnabled(taskHistory.getPreviousTasks() != null && taskHistory.getPreviousTasks().size() > 0);
- }
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java
deleted file mode 100644
index 9c239d923..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Balazs Brinkus - bug 174473
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.ITaskCommandIds;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class AddRepositoryAction extends Action {
-
- private static final String PREF_ADD_QUERY = "org.eclipse.mylyn.internal.tasks.add.query"; //$NON-NLS-1$
-
- private static final String ID = "org.eclipse.mylyn.tasklist.repositories.add"; //$NON-NLS-1$
-
- public static final String TITLE = Messages.AddRepositoryAction_Add_Task_Repository;
-
- private boolean promptToAddQuery = true;
-
- public AddRepositoryAction() {
- setImageDescriptor(TasksUiImages.REPOSITORY_NEW);
- setText(TITLE);
- setId(ID);
- setEnabled(TasksUiPlugin.getRepositoryManager().hasUserManagedRepositoryConnectors());
- }
-
- public boolean getPromptToAddQuery() {
- return promptToAddQuery;
- }
-
- public void setPromptToAddQuery(boolean promptToAddQuery) {
- this.promptToAddQuery = promptToAddQuery;
- }
-
- @Override
- public void run() {
- showWizard();
- }
-
- public TaskRepository showWizard() {
- IHandlerService handlerSvc = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
- try {
- Object result = handlerSvc.executeCommand(ITaskCommandIds.ADD_TASK_REPOSITORY, null);
- if (result instanceof TaskRepository) {
- if (getPromptToAddQuery()) {
- TaskRepository repository = (TaskRepository) result;
- AbstractRepositoryConnector connector = TasksUiPlugin.getConnector(repository.getConnectorKind());
- if (connector != null && connector.canQuery(repository)) {
- promptToAddQuery(repository);
- }
- }
- return (TaskRepository) result;
- }
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- return null;
- }
-
- public void promptToAddQuery(TaskRepository taskRepository) {
- IPreferenceStore preferenceStore = TasksUiPlugin.getDefault().getPreferenceStore();
- if (!preferenceStore.getBoolean(PREF_ADD_QUERY)) {
- Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
- MessageDialogWithToggle messageDialog = MessageDialogWithToggle.openYesNoQuestion(shell,
- Messages.AddRepositoryAction_Add_new_query,
- Messages.AddRepositoryAction_Add_a_query_to_the_Task_List,
- Messages.AddRepositoryAction_Do_not_show_again, false, preferenceStore, PREF_ADD_QUERY);
- preferenceStore.setValue(PREF_ADD_QUERY, messageDialog.getToggleState());
- if (messageDialog.getReturnCode() == IDialogConstants.YES_ID) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
- IWizard queryWizard = connectorUi.getQueryWizard(taskRepository, null);
- ((Wizard) queryWizard).setForcePreviousAndNextButtons(true);
-
- WizardDialog queryDialog = new WizardDialog(shell, queryWizard);
- queryDialog.create();
- queryDialog.setBlockOnOpen(true);
- queryDialog.open();
- }
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ClearOutgoingAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ClearOutgoingAction.java
deleted file mode 100644
index e43a91689..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ClearOutgoingAction.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-
-/**
- * Discard outgoing changes on selected task TODO: Enable multi task discard?
- *
- * @author Rob Elves
- */
-public class ClearOutgoingAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.mark.discard"; //$NON-NLS-1$
-
- private final List<IRepositoryElement> selectedElements;
-
- private AbstractTaskEditorPage taskEditorPage;
-
- public ClearOutgoingAction(List<IRepositoryElement> selectedElements) {
- this.selectedElements = selectedElements;
- setText(Messages.ClearOutgoingAction_Clear_outgoing);
- setToolTipText(Messages.ClearOutgoingAction_Clear_outgoing);
- setImageDescriptor(CommonImages.CLEAR);
- setId(ID);
- if (selectedElements.size() == 1 && (selectedElements.get(0) instanceof ITask)) {
- ITask task = (ITask) selectedElements.get(0);
- setEnabled(hasOutgoingChanges(task));
- } else {
- setEnabled(false);
- }
- }
-
- public AbstractTaskEditorPage getTaskEditorPage() {
- return taskEditorPage;
- }
-
- public void setTaskEditorPage(AbstractTaskEditorPage taskEditorPage) {
- this.taskEditorPage = taskEditorPage;
- }
-
- public static boolean hasOutgoingChanges(ITask task) {
- return task.getSynchronizationState().equals(SynchronizationState.OUTGOING)
- || task.getSynchronizationState().equals(SynchronizationState.CONFLICT);
- }
-
- @Override
- public void run() {
- ArrayList<AbstractTask> toClear = new ArrayList<AbstractTask>();
- for (Object selectedObject : selectedElements) {
- if (selectedObject instanceof ITask && hasOutgoingChanges((ITask) selectedObject)) {
- toClear.add(((AbstractTask) selectedObject));
- }
- }
- if (toClear.size() > 0) {
- AbstractTask task = toClear.get(0);
- boolean confirm = MessageDialog.openConfirm(
- null,
- Messages.ClearOutgoingAction_Confirm_discard, Messages.ClearOutgoingAction_Discard_all_outgoing_changes_ + "\n\n" //$NON-NLS-1$
- + task.getSummary());
- if (confirm) {
- if (taskEditorPage != null) {
- taskEditorPage.doSave(null);
- }
- try {
- TasksUi.getTaskDataManager().discardEdits(task);
- } catch (CoreException e) {
- TasksUiInternal.displayStatus(
- Messages.ClearOutgoingAction_Clear_outgoing_failed, e.getStatus());
- }
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CloneTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CloneTaskAction.java
deleted file mode 100644
index 8eb6f110f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CloneTaskAction.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Maarten Meijer 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:
- * Maarten Meijer - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DefaultTaskMapping;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Maarten Meijer
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class CloneTaskAction extends BaseSelectionListenerAction implements IViewActionDelegate {
-
- private static final String ID = "org.eclipse.mylyn.tasklist.actions.clone"; //$NON-NLS-1$
-
- protected ISelection selection;
-
- public CloneTaskAction() {
- super(Messages.CloneTaskAction_Clone_This_Task);
- setId(ID);
- setImageDescriptor(TasksUiImages.TASK_NEW);
- setAccelerator(SWT.MOD1 + 'd');
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- if (selection instanceof IStructuredSelection) {
- super.selectionChanged((IStructuredSelection) selection);
- }
- }
-
- public void run(IAction action) {
- run();
- }
-
- @Override
- public void run() {
- for (Object selectedObject : getStructuredSelection().toList()) {
- if (selectedObject instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) selectedObject;
-
- String description = Messages.CloneTaskAction_Cloned_from_ + CopyTaskDetailsAction.getTextForTask(task);
- if (task instanceof LocalTask) {
- String notes = task.getNotes();
- if (!"".equals(notes)) { //$NON-NLS-1$
- description += "\n\n" + notes; //$NON-NLS-1$
- }
- }
-
- ITaskMapping taskSelection = new DefaultTaskMapping();
- ((DefaultTaskMapping) taskSelection).setDescription(description);
-
- TaskData taskData;
- try {
- taskData = TasksUi.getTaskDataManager().getTaskData(task);
- } catch (CoreException e) {
- TasksUiInternal.displayStatus(Messages.CloneTaskAction_Clone_Task_Failed, e.getStatus());
- continue;
- }
-
- if (taskData != null) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(taskData.getConnectorKind());
- ITaskMapping mapping = connector.getTaskMapping(taskData);
- if (mapping.getDescription() != null) {
- ((DefaultTaskMapping) taskSelection).setDescription(description + "\n\n" //$NON-NLS-1$
- + mapping.getDescription());
- }
- mapping.merge(taskSelection);
- taskSelection = mapping;
- }
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (!TasksUiUtil.openNewTaskEditor(shell, taskSelection, null)) {
- // do not process other tasks if canceled
- return;
- }
- }
- }
- }
-
- public void init(IViewPart view) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CollapseAllAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CollapseAllAction.java
deleted file mode 100644
index 7da5d31d4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CollapseAllAction.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-
-/**
- * @author Mik Kersten
- */
-public class CollapseAllAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.collapse.all"; //$NON-NLS-1$
-
- private final TaskListView taskListView;
-
- public CollapseAllAction(TaskListView taskListView) {
- super(Messages.CollapseAllAction_Collapse_All);
- this.taskListView = taskListView;
- setId(ID);
- setText(Messages.CollapseAllAction_Collapse_All);
- setToolTipText(Messages.CollapseAllAction_Collapse_All);
- setImageDescriptor(CommonImages.COLLAPSE_ALL);
- }
-
- @Override
- public void run() {
- if (taskListView.getViewer() != null) {
- taskListView.getViewer().collapseAll();
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CommentActionGroup.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CommentActionGroup.java
deleted file mode 100644
index 0b7835552..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CommentActionGroup.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.IMenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionGroup;
-
-/**
- * @author Steffen Pingel
- */
-public class CommentActionGroup extends ActionGroup {
-
- private CopyCommentDetailsAction copyDetailsAction;
-
- private boolean initialized;
-
- private void initialize() {
- if (initialized) {
- return;
- }
- initialized = true;
- copyDetailsAction = new CopyCommentDetailsAction();
- }
-
- @Override
- public void fillContextMenu(IMenuManager manager) {
- updateActions();
- manager.add(copyDetailsAction);
- }
-
- private void updateActions() {
- initialize();
- IStructuredSelection selection = getStructuredSelection();
- copyDetailsAction.selectionChanged(selection);
- }
-
- public IStructuredSelection getStructuredSelection() {
- ActionContext context = getContext();
- if (context != null) {
- ISelection selection = context.getSelection();
- if (selection instanceof IStructuredSelection) {
- return (IStructuredSelection) selection;
- }
- }
- return StructuredSelection.EMPTY;
- }
-
- @Override
- public void dispose() {
- super.dispose();
- if (copyDetailsAction != null) {
- copyDetailsAction.dispose();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CompareAttachmentsAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CompareAttachmentsAction.java
deleted file mode 100644
index fa60a2717..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CompareAttachmentsAction.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.CompareUI;
-import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-import org.eclipse.ui.internal.WorkbenchImages;
-
-/**
- * @author Eugene Kuleshov
- */
-public class CompareAttachmentsAction extends BaseSelectionListenerAction implements IViewActionDelegate {
-
- private ISelection currentSelection;
-
- public CompareAttachmentsAction() {
- super(Messages.CompareAttachmentsAction_Compare_Attachments);
- }
-
- protected CompareAttachmentsAction(String text) {
- super(text);
- }
-
- public void init(IViewPart view) {
- // ignore
- }
-
- public void run(IAction action) {
- if (currentSelection instanceof IStructuredSelection) {
- IStructuredSelection selection = (IStructuredSelection) currentSelection;
- Object[] elements = selection.toArray();
- if (elements.length >= 2) {
- final ITaskAttachment attachment1 = (ITaskAttachment) elements[0];
- final ITaskAttachment attachment2 = (ITaskAttachment) elements[1];
-
- CompareConfiguration cc = new CompareConfiguration();
-
- cc.setLeftEditable(false);
- cc.setLeftLabel(attachment1.getFileName());
- cc.setLeftImage(getImage(attachment1));
-
- cc.setRightEditable(false);
- cc.setRightLabel(attachment2.getFileName());
- cc.setRightImage(getImage(attachment2));
-
- CompareEditorInput editorInput = new CompareEditorInput(cc) {
-
- @Override
- public String getTitle() {
- return Messages.CompareAttachmentsAction_Compare__ + attachment1.getFileName() + " - " + attachment2.getFileName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- @Override
- protected Object prepareInput(IProgressMonitor pm) throws InvocationTargetException {
- CompareItem left = new CompareItem(attachment1);
- CompareItem right = new CompareItem(attachment2);
- return new DiffNode(left, right);
- }
-
- };
-
- CompareUI.openCompareEditor(editorInput);
- }
- }
- }
-
- private static final String[] IMAGE_EXTENSIONS = { ".jpg", ".gif", ".png", ".tiff", ".tif", ".bmp" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-
- private Image getImage(ITaskAttachment attachment) {
- if (AttachmentUtil.isContext(attachment)) {
- return CommonImages.getImage(TasksUiImages.CONTEXT_TRANSFER);
- } else if (attachment.isPatch()) {
- return CommonImages.getImage(TasksUiImages.TASK_ATTACHMENT_PATCH);
- } else {
- String filename = attachment.getFileName();
- if (filename != null) {
- filename = filename.toLowerCase();
- for (String extension : IMAGE_EXTENSIONS) {
- if (filename.endsWith(extension)) {
- return CommonImages.getImage(CommonImages.IMAGE_FILE);
- }
- }
- }
- return WorkbenchImages.getImage(ISharedImages.IMG_OBJ_FILE);
- }
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- this.currentSelection = selection;
- }
-
- private class CompareItem implements IStreamContentAccessor, ITypedElement {
-
- private final ITaskAttachment attachment;
-
- public CompareItem(ITaskAttachment attachment) {
- this.attachment = attachment;
- }
-
- public InputStream getContents() throws CoreException {
- TaskAttribute attachmentAttribute = attachment.getTaskAttribute();
- if (attachmentAttribute == null) {
- throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.CompareAttachmentsAction_Failed_to_find_attachment + attachment.getUrl()));
- }
- TaskRepository taskRepository = attachment.getTaskRepository();
- ITask task = attachment.getTask();
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- AbstractTaskAttachmentHandler handler = connector.getTaskAttachmentHandler();
- return handler.getContent(taskRepository, task, attachmentAttribute, new NullProgressMonitor());
- }
-
- public Image getImage() {
- return null;
- }
-
- public String getName() {
- return attachment.getFileName();
- }
-
- public String getType() {
- // ImageMergeViewerCreator - gif,jpg,jpeg,png,bmp,ico,tif,tiff
- // BinaryCompareViewerCreator - class,exe,dll,binary,zip,jar
- // TextMergeViewerCreator - txt
- // PropertiesFileMergeViewerCreator - properties,properties2
- // JavaContentViewerCreator - java,java2"
- // RefactoringDescriptorCompareViewerCreator - refactoring_descriptor
- //
- String filename = attachment.getFileName();
- int n = filename.lastIndexOf('.');
- if (n > -1) {
- return filename.substring(n + 1);
- }
- return ITypedElement.TEXT_TYPE;
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyCommentDetailsAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyCommentDetailsAction.java
deleted file mode 100644
index 0cea6397f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyCommentDetailsAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.util.ClipboardCopier;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Steffen Pingel
- */
-public class CopyCommentDetailsAction extends BaseSelectionListenerAction {
-
- private final ClipboardCopier copier;
-
- public CopyCommentDetailsAction() {
- super(Messages.CopyCommentDetailsAction_Copy_User_ID);
- setToolTipText(Messages.CopyCommentDetailsAction_Copy_User_ID_Tooltip);
- setImageDescriptor(CommonImages.COPY);
- copier = new ClipboardCopier() {
- @Override
- protected String getTextForElement(Object element) {
- if (element instanceof ITaskComment) {
- ITaskComment comment = (ITaskComment) element;
- IRepositoryPerson author = comment.getAuthor();
- if (author != null) {
- return author.getPersonId();
- }
- }
- return null;
- }
- };
- }
-
- @Override
- public void run() {
- copier.copy(getStructuredSelection());
- }
-
- public void dispose() {
- copier.dispose();
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java
deleted file mode 100644
index afa336899..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.util.ClipboardCopier;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Mik Kersten
- */
-public class CopyTaskDetailsAction extends BaseSelectionListenerAction {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.copy"; //$NON-NLS-1$
-
- private final ClipboardCopier copier;
-
- public CopyTaskDetailsAction() {
- super(Messages.CopyTaskDetailsAction_Copy_Details);
- setToolTipText(Messages.CopyTaskDetailsAction_Copy_Details);
- setId(ID);
- setImageDescriptor(CommonImages.COPY);
- this.copier = new ClipboardCopier() {
- @Override
- protected String getTextForElement(Object element) {
- return getTextForTask(element);
- }
- };
- }
-
- @Override
- public void run() {
- copier.copy(getStructuredSelection());
- }
-
- public void dispose() {
- copier.dispose();
- }
-
- // TODO move to TasksUiUtil / into core
- public static String getTextForTask(Object object) {
- StringBuffer sb = new StringBuffer();
- if (object instanceof ITask) {
- AbstractTask task = (AbstractTask) object;
- if (task.getTaskKey() != null) {
- sb.append(task.getTaskKey());
- sb.append(": "); //$NON-NLS-1$
- }
-
- sb.append(task.getSummary());
- if (TasksUiInternal.isValidUrl(task.getUrl())) {
- sb.append(ClipboardCopier.LINE_SEPARATOR);
- sb.append(task.getUrl());
- }
- } else if (object instanceof IRepositoryQuery) {
- RepositoryQuery query = (RepositoryQuery) object;
- sb.append(query.getSummary());
- if (TasksUiInternal.isValidUrl(query.getUrl())) {
- sb.append(ClipboardCopier.LINE_SEPARATOR);
- sb.append(query.getUrl());
- }
- } else if (object instanceof IRepositoryElement) {
- IRepositoryElement element = (IRepositoryElement) object;
- sb.append(element.getSummary());
- }
- return sb.toString();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeactivateAllTasksAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeactivateAllTasksAction.java
deleted file mode 100644
index 548403c06..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeactivateAllTasksAction.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.actions.ActionDelegate;
-
-/**
- * @author Willian Mitsuda
- */
-public class DeactivateAllTasksAction extends ActionDelegate implements IWorkbenchWindowActionDelegate {
-
- public void init(IWorkbenchWindow window) {
- // ignore
- }
-
- @Override
- public void run(IAction action) {
- TasksUi.getTaskActivityManager().deactivateActiveTask();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteAction.java
deleted file mode 100644
index 8cdb58c96..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteAction.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Collection;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.ICoreRunnable;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AutomaticRepositoryTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * @author Mik Kersten
- */
-public class DeleteAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.delete"; //$NON-NLS-1$
-
- public DeleteAction() {
- setText(Messages.DeleteAction_Delete);
- setId(ID);
- setImageDescriptor(WorkbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
- setActionDefinitionId(IWorkbenchActionDefinitionIds.DELETE);
- }
-
- @Override
- public void run() {
- ISelection selection = TaskListView.getFromActivePerspective().getViewer().getSelection();
- doDelete(((IStructuredSelection) selection).toList());
- }
-
- protected void doDelete(final List<?> toDelete) {
- String elements = ""; //$NON-NLS-1$
- int i = 0;
- for (Object object : toDelete) {
- if (object instanceof UnmatchedTaskContainer) {
- continue;
- }
-
- i++;
- if (i < 20) {
- // TODO this action should be based on the action enablement and check if the container is user managed or not
- if (object instanceof IRepositoryElement) {
- elements += " " + ((IRepositoryElement) object).getSummary() + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- } else {
- elements += "..."; //$NON-NLS-1$
- break;
- }
- }
-
- String message;
-
- if (toDelete.size() == 1) {
- Object object = toDelete.get(0);
- if (object instanceof ITask) {
- if (((AbstractTask) object).isLocal()) {
- message = Messages.DeleteAction_Permanently_delete_the_task_listed_below;
- } else {
- message = Messages.DeleteAction_Delete_the_planning_information_and_context_for_the_repository_task;
- }
- } else if (object instanceof TaskCategory) {
- message = Messages.DeleteAction_Permanently_delete_the_category;
- } else if (object instanceof IRepositoryQuery) {
- message = Messages.DeleteAction_Permanently_delete_the_query;
- } else if (object instanceof UnmatchedTaskContainer) {
- message = Messages.DeleteAction_Delete_the_planning_information_and_context_of_all_unmatched_tasks;
- } else if (object instanceof UnsubmittedTaskContainer) {
- message = Messages.DeleteAction_Delete_all_of_the_unsubmitted_tasks;
- } else {
- message = Messages.DeleteAction_Permanently_delete_the_element_listed_below;
- }
- } else {
- message = Messages.DeleteAction_Delete_the_elements_listed_below;
- }
-
- message += "\n\n" + elements; //$NON-NLS-1$
-
- if (toDelete.isEmpty()) {
- MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.DeleteAction_Delete_failed, Messages.DeleteAction_Nothing_selected);
- } else {
- boolean deleteConfirmed = MessageDialog.openQuestion(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getShell(), Messages.DeleteAction_Confirm_Delete, message);
- if (deleteConfirmed) {
- ICoreRunnable op = new ICoreRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- monitor.beginTask(Messages.DeleteAction_Delete_in_progress, IProgressMonitor.UNKNOWN);
- prepareDeletion(toDelete);
- TasksUiPlugin.getTaskList().run(new ITaskListRunnable() {
- public void execute(IProgressMonitor monitor) throws CoreException {
- performDeletion(toDelete);
- }
- }, monitor);
- } finally {
- monitor.done();
- }
- }
- };
- try {
- CommonUiUtil.runInUi(op, null);
- } catch (CoreException e) {
- Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Problems encountered deleting task list elements: {0}", e.getMessage()), e); //$NON-NLS-1$
- TasksUiInternal.logAndDisplayStatus(
- Messages.DeleteTaskRepositoryAction_Delete_Task_Repository_Failed, status);
- } catch (OperationCanceledException e) {
- // canceled
- }
- }
- }
- }
-
- public static void prepareDeletion(Collection<?> toDelete) {
- for (Object selectedObject : toDelete) {
- if (selectedObject instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) selectedObject;
- TasksUi.getTaskActivityManager().deactivateTask(task);
- TasksUiInternal.closeTaskEditorInAllPages(task, false);
- } else if (selectedObject instanceof AutomaticRepositoryTaskContainer) {
- // support both the unmatched and the unsubmitted
- if (toDelete.size() == 1) {
- prepareDeletion(((AutomaticRepositoryTaskContainer) selectedObject).getChildren());
- }
- }
- }
- }
-
- public static void performDeletion(Collection<?> toDelete) {
- for (Object selectedObject : toDelete) {
- if (selectedObject instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) selectedObject;
- TasksUiInternal.getTaskList().deleteTask(task);
- try {
- TasksUiPlugin.getTaskDataManager().deleteTaskData(task);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to delete task data", //$NON-NLS-1$
- e));
- }
- ContextCore.getContextManager().deleteContext(task.getHandleIdentifier());
- } else if (selectedObject instanceof IRepositoryQuery) {
- TasksUiInternal.getTaskList().deleteQuery((RepositoryQuery) selectedObject);
- } else if (selectedObject instanceof TaskCategory) {
- TasksUiInternal.getTaskList().deleteCategory((TaskCategory) selectedObject);
- } else if (selectedObject instanceof AutomaticRepositoryTaskContainer) {
- // support both the unmatched and the unsubmitted
- if (toDelete.size() == 1) {
- // loop to ensure that all subtasks are deleted as well
- performDeletion(((AutomaticRepositoryTaskContainer) selectedObject).getChildren());
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskEditorAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskEditorAction.java
deleted file mode 100644
index 01277ff59..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskEditorAction.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Mik Kersten
- */
-public class DeleteTaskEditorAction extends DeleteAction {
-
- private final ITask task;
-
- public DeleteTaskEditorAction(ITask task) {
- this.task = task;
- //setHoverImageDescriptor(WorkbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
- setImageDescriptor(CommonImages.REMOVE);
- }
-
- @Override
- public void run() {
- doDelete(Collections.singletonList(task));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java
deleted file mode 100644
index b31a90a1f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.ICoreRunnable;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TaskRepositoryUtil;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * @author Mik Kersten
- * @author David Shepherd
- * @author Steffen Pingel
- */
-public class DeleteTaskRepositoryAction extends AbstractTaskRepositoryAction {
-
- private static final String ID = "org.eclipse.mylyn.tasklist.repositories.delete"; //$NON-NLS-1$
-
- public DeleteTaskRepositoryAction() {
- super(Messages.DeleteTaskRepositoryAction_Delete_Repository);
- setImageDescriptor(WorkbenchImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
- setId(ID);
- setEnabled(false);
- setActionDefinitionId(IWorkbenchActionDefinitionIds.DELETE);
- setSingleSelect(true);
- }
-
- public void init(IViewPart view) {
- // ignore
- }
-
- @Override
- public void run() {
- final TaskRepository repositoryToDelete = getTaskRepository(getStructuredSelection());
- if (repositoryToDelete == null) {
- return;
- }
- final List<IRepositoryQuery> queriesToDelete = new ArrayList<IRepositoryQuery>();
- final List<AbstractTask> tasksToDelete = new ArrayList<AbstractTask>();
-
- // check for queries over this repository
- Set<RepositoryQuery> queries = TasksUiInternal.getTaskList().getQueries();
- for (IRepositoryQuery query : queries) {
- if (repositoryToDelete.getRepositoryUrl().equals(query.getRepositoryUrl())
- && repositoryToDelete.getConnectorKind().equals(query.getConnectorKind())) {
- queriesToDelete.add(query);
- }
- }
-
- // check for tasks from this repository
- final Set<ITask> tasks = TasksUiPlugin.getTaskList().getTasks(repositoryToDelete.getRepositoryUrl());
- for (ITask task : tasks) {
- if (repositoryToDelete.getRepositoryUrl().equals(task.getRepositoryUrl())
- && repositoryToDelete.getConnectorKind().equals(task.getConnectorKind())) {
- tasksToDelete.add((AbstractTask) task);
- }
- }
-
- // add unsubmitted tasks
- UnsubmittedTaskContainer unsubmitted = TasksUiPlugin.getTaskList().getUnsubmittedContainer(
- repositoryToDelete.getRepositoryUrl());
- if (unsubmitted != null) {
- Collection<ITask> children = unsubmitted.getChildren();
- if (children != null) {
- for (ITask task : children) {
- tasksToDelete.add((AbstractTask) task);
- }
- }
- }
-
- // confirm that the user wants to delete all tasks and queries that are associated
- boolean deleteConfirmed;
- if (queriesToDelete.size() > 0 || tasksToDelete.size() > 0) {
- deleteConfirmed = MessageDialog.openQuestion(WorkbenchUtil.getShell(),
- Messages.DeleteTaskRepositoryAction_Confirm_Delete, NLS.bind(
- Messages.DeleteTaskRepositoryAction_Delete_the_selected_task_repositories, new Integer[] {
- tasksToDelete.size(), queriesToDelete.size() }));
- } else {
- deleteConfirmed = MessageDialog.openQuestion(WorkbenchUtil.getShell(),
- Messages.DeleteTaskRepositoryAction_Confirm_Delete, NLS.bind(
- Messages.DeleteTaskRepositoryAction_Delete_Specific_Task_Repository,
- new String[] { repositoryToDelete.getRepositoryLabel() }));
-
- }
- if (deleteConfirmed) {
- ICoreRunnable op = new ICoreRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- monitor.beginTask(Messages.DeleteTaskRepositoryAction_Delete_Repository_In_Progress,
- IProgressMonitor.UNKNOWN);
- DeleteAction.prepareDeletion(tasksToDelete);
- DeleteAction.prepareDeletion(queriesToDelete);
- TasksUiPlugin.getTaskList().run(new ITaskListRunnable() {
- public void execute(IProgressMonitor monitor) throws CoreException {
- // delete tasks
- DeleteAction.performDeletion(tasksToDelete);
- // delete queries
- DeleteAction.performDeletion(queriesToDelete);
- // delete repository
- TasksUiPlugin.getRepositoryManager().removeRepository(repositoryToDelete,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
- // if repository is contributed via template, ensure it isn't added again
- TaskRepositoryUtil.disableAddAutomatically(repositoryToDelete.getRepositoryUrl());
- }
- }, monitor);
- } finally {
- monitor.done();
- }
- }
- };
- try {
- CommonUiUtil.runInUi(op, null);
- } catch (CoreException e) {
- Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Problems encountered deleting task repository: {0}", e.getMessage()), e); //$NON-NLS-1$
- TasksUiInternal.logAndDisplayStatus(Messages.DeleteTaskRepositoryAction_Delete_Task_Repository_Failed,
- status);
- } catch (OperationCanceledException e) {
- // canceled
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DisconnectRepositoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DisconnectRepositoryAction.java
deleted file mode 100644
index c4708784f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DisconnectRepositoryAction.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.Messages;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Steffen Pingel
- */
-public class DisconnectRepositoryAction extends Action implements ISelectionChangedListener {
-
- public static final String LABEL = Messages.DisconnectRepositoryAction_Disconnected;
-
- private static final String ID = "org.eclipse.mylyn.tasklist.repositories.offline"; //$NON-NLS-1$
-
- private TaskRepository repository;
-
- public DisconnectRepositoryAction() {
- super(LABEL, IAction.AS_CHECK_BOX);
- setId(ID);
- setEnabled(false);
- }
-
- @Override
- public void run() {
- repository.setOffline(isChecked());
- TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(repository);
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof IStructuredSelection) {
- Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
- if (selectedObject instanceof TaskRepository) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- ((TaskRepository) selectedObject).getConnectorKind());
- if (connector.isUserManaged()) {
- this.repository = (TaskRepository) selectedObject;
- setChecked(this.repository.isOffline());
- setEnabled(true);
- return;
- }
- }
- }
- this.repository = null;
- setChecked(false);
- setEnabled(false);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/EditRepositoryPropertiesAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/EditRepositoryPropertiesAction.java
deleted file mode 100644
index 4d0e63c75..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/EditRepositoryPropertiesAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class EditRepositoryPropertiesAction extends AbstractTaskRepositoryAction implements IViewActionDelegate {
-
- private static final String ID = "org.eclipse.mylyn.tasklist.repositories.properties"; //$NON-NLS-1$
-
- public EditRepositoryPropertiesAction() {
- super(Messages.EditRepositoryPropertiesAction_Properties);
- setId(ID);
- setEnabled(false);
- }
-
- @Override
- public void run() {
- TaskRepository taskRepository = getTaskRepository(getStructuredSelection());
- if (taskRepository != null) {
- TasksUiUtil.openEditRepositoryWizard(taskRepository);
- }
- }
-
- public void init(IViewPart view) {
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- if (selection instanceof IStructuredSelection) {
- selectionChanged((IStructuredSelection) selection);
- action.setEnabled(this.isEnabled());
- } else {
- clearCache();
- action.setEnabled(false);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExpandAllAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExpandAllAction.java
deleted file mode 100644
index 601872225..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExpandAllAction.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-
-/**
- * @author Mik Kersten
- */
-public class ExpandAllAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.expand.all"; //$NON-NLS-1$
-
- private final TaskListView taskListView;
-
- public ExpandAllAction(TaskListView taskListView) {
- this.taskListView = taskListView;
- setId(ID);
- setText(Messages.ExpandAllAction_Expand_All);
- setToolTipText(Messages.ExpandAllAction_Expand_All);
- setImageDescriptor(CommonImages.EXPAND_ALL);
- }
-
- @Override
- public void run() {
- if (taskListView.getViewer() != null) {
- taskListView.getViewer().expandAll();
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExportAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExportAction.java
deleted file mode 100644
index 927ab5f5b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ExportAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.io.File;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.ImportExportUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Steffen Pingel
- */
-public class ExportAction implements IViewActionDelegate {
-
- private ISelection selection;
-
- public void init(IViewPart view) {
- // ignore
- }
-
- public void run(IAction action) {
- if (selection.isEmpty() || !(selection instanceof StructuredSelection)) {
- MessageDialog.openError(WorkbenchUtil.getShell(), Messages.ExportAction_Dialog_Title, Messages.ExportAction_Nothing_selected);
- return;
- }
-
- FileDialog dialog = new FileDialog(WorkbenchUtil.getShell(), SWT.PRIMARY_MODAL | SWT.SAVE);
- dialog.setText(Messages.ExportAction_Dialog_Title);
- ImportExportUtil.configureFilter(dialog);
- dialog.setFileName(ITasksCoreConstants.EXPORT_FILE_NAME + ITasksCoreConstants.FILE_EXTENSION);
- String path = dialog.open();
- if (path != null) {
- File file = new File(path);
- // Prompt the user to confirm if save operation will cause an overwrite
- if (file.exists()) {
- if (!MessageDialog.openConfirm(WorkbenchUtil.getShell(), Messages.ExportAction_Dialog_Title, NLS.bind(
- Messages.ExportAction_X_exists_Do_you_wish_to_overwrite, file.getPath()))) {
- return;
- }
- }
- try {
- ImportExportUtil.export(file, (IStructuredSelection) selection);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Problems encountered during export", e)); //$NON-NLS-1$
- TasksUiInternal.displayStatus(Messages.ExportAction_Dialog_Title, new MultiStatus(ITasksCoreConstants.ID_PLUGIN, 0,
- new IStatus[] { e.getStatus() },
- Messages.ExportAction_Problems_encountered, e));
- }
- }
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- this.selection = selection;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FilterCompletedTasksAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FilterCompletedTasksAction.java
deleted file mode 100644
index 4824f09d9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/FilterCompletedTasksAction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.commons.ui.CommonImages;
-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 Mik Kersten
- */
-public class FilterCompletedTasksAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.filter.completed"; //$NON-NLS-1$
-
- private final TaskListView view;
-
- public FilterCompletedTasksAction(TaskListView view) {
- this.view = view;
- setText(Messages.FilterCompletedTasksAction_Filter_Completed_Tasks);
- setToolTipText(Messages.FilterCompletedTasksAction_Filter_Completed_Tasks);
- setId(ID);
- setImageDescriptor(CommonImages.FILTER_COMPLETE);
- setChecked(TasksUiPlugin.getDefault().getPreferenceStore().contains(
- ITasksUiPreferenceConstants.FILTER_COMPLETE_MODE));
- }
-
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.FILTER_COMPLETE_MODE,
- isChecked());
- if (isChecked()) {
- view.addFilter(view.getCompleteFilter());
- } else {
- view.removeFilter(view.getCompleteFilter());
- }
- this.view.refresh();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoIntoAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoIntoAction.java
deleted file mode 100644
index 4ae2e11bb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoIntoAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Mik Kersten
- */
-public class GoIntoAction extends Action implements IViewActionDelegate {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.view.go.into"; //$NON-NLS-1$
-
- public GoIntoAction() {
- setId(ID);
- setText(Messages.GoIntoAction_Go_Into);
- setToolTipText(Messages.GoIntoAction_Go_Into);
- setImageDescriptor(CommonImages.GO_INTO);
- }
-
- public void init(IViewPart view) {
- // TODO Auto-generated method stub
- }
-
- @Override
- public void run() {
- if (TaskListView.getFromActivePerspective() != null) {
- TaskListView.getFromActivePerspective().getFilteredTree().setFilterText(""); //$NON-NLS-1$
- TaskListView.getFromActivePerspective().goIntoCategory();
- }
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoUpAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoUpAction.java
deleted file mode 100644
index 122c44fe7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GoUpAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.ui.part.DrillDownAdapter;
-
-/**
- * @author Mik Kersten
- */
-public class GoUpAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.view.go.up"; //$NON-NLS-1$
-
- public GoUpAction(DrillDownAdapter drillDownAdapter) {
- setText(Messages.GoUpAction_Go_Up_To_Root);
- setToolTipText(Messages.GoUpAction_Go_Up_To_Root);
- setId(ID);
- setImageDescriptor(CommonImages.GO_UP);
- }
-
- @Override
- public void run() {
- if (TaskListView.getFromActivePerspective() != null) {
- TaskListView.getFromActivePerspective().goUpToRoot();
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java
deleted file mode 100644
index 6086dc93b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class GroupSubTasksAction extends Action {
-
- 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;
- setText(Messages.GroupSubTasksAction_Group_Subtasks);
- setToolTipText(Messages.GroupSubTasksAction_Group_Subtasks);
- setId(ID);
- // setImageDescriptor(TasksUiImages.FILTER_COMPLETE);
- setChecked(TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.GROUP_SUBTASKS));
- }
-
- @Override
- public void run() {
- 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);
-// }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ImportAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ImportAction.java
deleted file mode 100644
index 70b9dd244..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ImportAction.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.io.File;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TransferList;
-import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.ImportExportUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Steffen Pingel
- */
-public class ImportAction implements IViewActionDelegate {
-
- public void init(IViewPart view) {
- // ignore
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-
- public void run(IAction action) {
- FileDialog dialog = new FileDialog(WorkbenchUtil.getShell());
- dialog.setText(Messages.ImportAction_Dialog_Title);
- ImportExportUtil.configureFilter(dialog);
- String path = dialog.open();
- if (path != null) {
- File file = new File(path);
- if (file.isFile()) {
- IStatus result = importElements(file);
- if (!result.isOK()) {
- StatusHandler.log(result);
- TasksUiInternal.displayStatus(Messages.ImportAction_Dialog_Title, new MultiStatus(ITasksCoreConstants.ID_PLUGIN, 0,
- new IStatus[] { result },
- Messages.ImportAction_Problems_encountered, null));
- }
- }
- }
- }
-
- private IStatus importElements(File file) {
- MultiStatus result = new MultiStatus(ITasksCoreConstants.ID_PLUGIN, 0,
- "Problems encounted during importing", null); //$NON-NLS-1$
-
- TransferList list = new TransferList();
- TaskListExternalizer externalizer = TasksUiPlugin.getDefault().createTaskListExternalizer();
- try {
- externalizer.readTaskList(list, file);
- } catch (CoreException e) {
- result.add(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Problems encountered reading import file", e)); //$NON-NLS-1$
- }
-
- TaskList taskList = TasksUiPlugin.getTaskList();
- for (AbstractTask task : list.getAllTasks()) {
- if (!validateRepository(task.getConnectorKind(), task.getRepositoryUrl())) {
- result.add(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Task {0} ignored, unknown connector", task.getSummary()))); //$NON-NLS-1$
- continue;
- }
-
- if (taskList.getTask(task.getHandleIdentifier()) != null) {
- result.add(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Task {0} ignored, already exists in Task List", task.getSummary()))); //$NON-NLS-1$
- } else {
- // need to deactivate since activation is managed centrally
- task.setActive(false);
- taskList.addTask(task);
- // TODO support importing of contexts
- //ContextCore.getContextStore().importContext(task.getHandleIdentifier(), zipFile);
- }
- }
-
- for (RepositoryQuery query : list.getQueries()) {
- if (!validateRepository(query.getConnectorKind(), query.getRepositoryUrl())) {
- result.add(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Query {0} ignored, unknown connector", query.getSummary()))); //$NON-NLS-1$
- continue;
- }
-
- if (taskList.getQueries().contains(query)) {
- query.setHandleIdentifier(taskList.getUniqueHandleIdentifier());
- }
- taskList.addQuery(query);
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- query.getConnectorKind());
- if (connector != null) {
- TasksUiInternal.synchronizeQuery(connector, query, null, true);
- }
- }
-
- return result;
- }
-
- private boolean validateRepository(String connectorKind, String repositoryUrl) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl);
- if (repository == null) {
- if (TasksUi.getRepositoryConnector(connectorKind) == null) {
- return false;
- }
- repository = new TaskRepository(connectorKind, repositoryUrl);
- TasksUi.getRepositoryManager().addRepository(repository);
- }
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/LinkWithEditorAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/LinkWithEditorAction.java
deleted file mode 100644
index b3fa99ca6..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/LinkWithEditorAction.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-
-/**
- * @author Willian Mitsuda
- */
-public class LinkWithEditorAction extends Action {
-
- private final TaskListView taskListView;
-
- public LinkWithEditorAction(TaskListView taskListView) {
- super(Messages.LinkWithEditorAction_Link_with_Editor, IAction.AS_CHECK_BOX);
- this.taskListView = taskListView;
- setImageDescriptor(CommonImages.LINK_EDITOR);
- }
-
- @Override
- public void run() {
- taskListView.setLinkWithEditor(isChecked());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java
deleted file mode 100644
index f4183d8e3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.actions.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String AbstractChangeCompletionAction_Mark_selected_local_tasks_X;
-
- public static String ActivateTaskDialogAction_Activate_Task;
-
- public static String ActivateTaskDialogAction_Select_a_task_to_activate__;
-
- public static String ActivateTaskHistoryDropDownAction_Activate_Previous_Task;
-
- public static String AddRepositoryAction_Add_new_query;
-
- public static String AddRepositoryAction_Add_a_query_to_the_Task_List;
-
- public static String AddRepositoryAction_Add_Task_Repository;
-
- public static String AddRepositoryAction_Do_not_show_again;
-
- public static String ClearOutgoingAction_Clear_outgoing;
-
- public static String ClearOutgoingAction_Clear_outgoing_failed;
-
- public static String ClearOutgoingAction_Confirm_discard;
-
- public static String ClearOutgoingAction_Discard_all_outgoing_changes_;
-
- public static String CloneTaskAction_Clone_Task_Failed;
-
- public static String CloneTaskAction_Clone_This_Task;
-
- public static String CloneTaskAction_Cloned_from_;
-
- public static String CollapseAllAction_Collapse_All;
-
- public static String CompareAttachmentsAction_Compare__;
-
- public static String CompareAttachmentsAction_Compare_Attachments;
-
- public static String CompareAttachmentsAction_Failed_to_find_attachment;
-
- public static String CopyCommentDetailsAction_Copy_User_ID;
-
- public static String CopyCommentDetailsAction_Copy_User_ID_Tooltip;
-
- public static String CopyTaskDetailsAction_Copy_Details;
-
- public static String DeleteAction_Confirm_Delete;
-
- public static String DeleteAction_Delete;
-
- public static String DeleteAction_Delete_all_of_the_unsubmitted_tasks;
-
- public static String DeleteAction_Delete_the_elements_listed_below;
-
- public static String DeleteAction_Delete_failed;
-
- public static String DeleteAction_Delete_in_progress;
-
- public static String DeleteAction_Delete_the_planning_information_and_context_for_the_repository_task;
-
- public static String DeleteAction_Delete_the_planning_information_and_context_of_all_unmatched_tasks;
-
- public static String DeleteAction_Nothing_selected;
-
- public static String DeleteAction_Permanently_delete_the_category;
-
- public static String DeleteAction_Permanently_delete_the_element_listed_below;
-
- public static String DeleteAction_Permanently_delete_the_query;
-
- public static String DeleteAction_Permanently_delete_the_task_listed_below;
-
- public static String DeleteTaskRepositoryAction_Confirm_Delete;
-
- public static String DeleteTaskRepositoryAction_Delete_Specific_Task_Repository;
-
- public static String DeleteTaskRepositoryAction_Delete_Repository;
-
- public static String DeleteTaskRepositoryAction_Delete_the_selected_task_repositories;
-
- public static String DeleteTaskRepositoryAction_Delete_Repository_In_Progress;
-
- public static String DeleteTaskRepositoryAction_Delete_Task_Repository_Failed;
-
- public static String EditRepositoryPropertiesAction_Properties;
-
- public static String ExpandAllAction_Expand_All;
-
- public static String ExportAction_Dialog_Title;
-
- public static String ExportAction_Nothing_selected;
-
- public static String ExportAction_Problems_encountered;
-
- public static String ExportAction_X_exists_Do_you_wish_to_overwrite;
-
- public static String FilterCompletedTasksAction_Filter_Completed_Tasks;
-
- public static String GoIntoAction_Go_Into;
-
- public static String GoUpAction_Go_Up_To_Root;
-
- public static String GroupSubTasksAction_Group_Subtasks;
-
- public static String ImportAction_Dialog_Title;
-
- public static String ImportAction_Problems_encountered;
-
- public static String LinkWithEditorAction_Link_with_Editor;
-
- public static String NewCategoryAction_A_category_with_this_name_already_exists;
-
- public static String NewCategoryAction_Enter_name;
-
- public static String NewCategoryAction_Enter_a_name_for_the_Category;
-
- public static String NewCategoryAction_New_Category;
-
- public static String NewCategoryAction_New_Category_;
-
- public static String NewCategoryAction_A_query_with_this_name_already_exists;
-
- public static String NewQueryAction_new_query_;
-
- public static String NewSubTaskAction_The_connector_does_not_support_creating_subtasks_for_this_task;
-
- public static String NewSubTaskAction_Could_not_initialize_sub_task_data_for_task_;
-
- public static String NewSubTaskAction_Could_not_retrieve_task_data_for_task_;
-
- public static String NewSubTaskAction_Create_a_new_subtask;
-
- public static String NewSubTaskAction_Failed_to_create_new_sub_task_;
-
- public static String NewSubTaskAction_Subtask;
-
- public static String NewSubTaskAction_Unable_to_create_subtask;
-
- public static String NewTaskAction_new_task;
-
- public static String NewTaskFromSelectionAction_Comment_;
-
- public static String NewTaskFromSelectionAction____Created_from_Comment___;
-
- public static String NewTaskFromSelectionAction_New_Task_from_Selection;
-
- public static String NewTaskFromSelectionAction_Nothing_selected_to_create_task_from;
-
- public static String NewTaskFromSelectionAction_URL_;
-
- public static String OpenRepositoryTask_Could_not_find_matching_repository_task;
-
- public static String OpenRepositoryTask_Open_Repository_Task;
-
- public static String OpenRepositoryTask_Open_Task;
-
- public static String OpenTaskAction_Open_Task;
-
- public static String OpenTaskAction_Select_a_task_to_open__;
-
- public static String OpenTaskListElementAction_Open;
-
- public static String OpenTaskListElementAction_Open_Task_List_Element;
-
- public static String OpenTasksUiPreferencesAction_Preferences_;
-
- public static String OpenWithBrowserAction_Open_with_Browser;
-
- public static String PresentationDropDownSelectionAction_Task_Presentation;
-
- public static String QueryCloneAction_Clone_Query;
-
- public static String QueryCloneAction_Copy_of_X;
-
- public static String QueryCloneAction_No_query_selected;
-
- public static String RefreshRepositoryTasksAction_Refresh_All_Tasks;
-
- public static String RemoveFromCategoryAction_Remove_From_Category;
-
- public static String RenameAction_Rename;
-
- public static String ShowInSearchViewAction_Open_in_Search_Label;
-
- public static String ShowInTaskListAction_Show_In_Task_List;
-
- public static String SynchronizeAutomaticallyAction_Synchronize_Automatically;
-
- public static String SynchronizeEditorAction_Synchronize;
-
- public static String SynchronizeEditorAction_Synchronize_Incoming_Changes;
-
- public static String TaskActivateAction_Activate;
-
- public static String TaskDeactivateAction_Deactivate;
-
- public static String TaskListSortAction_Sort_;
-
- public static String TaskSelectionDialog__matches;
-
- public static String TaskSelectionDialog_Deselect_Working_Set;
-
- public static String TaskSelectionDialog_Edit_Active_Working_Set_;
-
- public static String TaskSelectionDialog_New_Task_;
-
- public static String TaskSelectionDialog_Open_with_Browser;
-
- public static String TaskSelectionDialog_Scanning_tasks;
-
- public static String TaskSelectionDialog_Search_for_tasks;
-
- public static String TaskSelectionDialog_Select_Working_Set_;
-
- public static String TaskSelectionDialog_Selected_item_is_not_a_task;
-
- public static String TaskSelectionDialog_Show_Completed_Tasks;
-
- public static String TaskWorkingSetAction_All;
-
- public static String TaskWorkingSetAction_Deselect_All;
-
- public static String TaskWorkingSetAction_Edit_Label;
-
- public static String TaskWorkingSetAction_Select_and_Edit_Working_Sets;
-
- public static String TaskWorkingSetAction_Sets;
-
- public static String ToggleAllWorkingSetsAction_Show_All;
-
- public static String ToggleTaskActivationAction_Activate_Task;
-
- public static String ToggleTaskActivationAction_Deactivate_Task;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewCategoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewCategoryAction.java
deleted file mode 100644
index 3242693b3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewCategoryAction.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Set;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- */
-public class NewCategoryAction extends Action implements IViewActionDelegate {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.create.category"; //$NON-NLS-1$
-
- public NewCategoryAction() {
- setText(Messages.NewCategoryAction_New_Category_);
- setToolTipText(Messages.NewCategoryAction_New_Category_);
- setId(ID);
- setImageDescriptor(TasksUiImages.CATEGORY_NEW);
- }
-
- public void init(IViewPart view) {
- }
-
- public void run(IAction action) {
- run();
- }
-
- @Override
- public void run() {
- createCategory();
- }
-
- public TaskCategory createCategory() {
- InputDialog dialog = new InputDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.NewCategoryAction_Enter_name, Messages.NewCategoryAction_Enter_a_name_for_the_Category, "", null); //$NON-NLS-1$
- int dialogResult = dialog.open();
- if (dialogResult == Window.OK) {
- String name = dialog.getValue();
- Set<RepositoryQuery> queries = TasksUiInternal.getTaskList().getQueries();
- Set<AbstractTaskCategory> categories = TasksUiInternal.getTaskList().getCategories();
-
- for (AbstractTaskCategory category : categories) {
- if (name != null && name.equals(category.getSummary())) {
- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.NewCategoryAction_New_Category,
- Messages.NewCategoryAction_A_category_with_this_name_already_exists);
- return null;
- }
- }
- for (RepositoryQuery query : queries) {
- if (name != null && name.equals(query.getSummary())) {
- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.NewCategoryAction_New_Category,
- Messages.NewCategoryAction_A_query_with_this_name_already_exists);
- return null;
- }
- }
-
- TaskCategory category = new TaskCategory(TasksUiPlugin.getTaskList().getUniqueHandleIdentifier(), name);
- TasksUiPlugin.getTaskList().addCategory(category);
- return category;
- }
- return null;
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java
deleted file mode 100644
index fd6117699..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.LocalRepositoryConnectorUi;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewQueryWizard;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Eugene Kuleshov
- */
-public class NewQueryAction extends Action implements IViewActionDelegate, IExecutableExtension {
-
- private final String ID = "org.eclipse.mylyn.tasks.ui.new.query"; //$NON-NLS-1$
-
- private final String LABEL_NEW_QUERY = Messages.NewQueryAction_new_query_;
-
- private boolean skipRepositoryPage;
-
- public NewQueryAction() {
- setText(LABEL_NEW_QUERY);
- setToolTipText(LABEL_NEW_QUERY);
- setId(ID);
- setImageDescriptor(TasksUiImages.QUERY_NEW);
- }
-
- public void run(IAction action) {
- run();
- }
-
- @Override
- public void run() {
- IWizard wizard = null;
- /* Disabled for bug 275204 to make it more simple to discover ui for installing additional connectors
- List<TaskRepository> repositories = TasksUi.getRepositoryManager().getAllRepositories();
- if (repositories.size() == 2) {
- // NOTE: this click-saving should be generalized
- for (TaskRepository taskRepository : repositories) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
- if (!(connectorUi instanceof LocalRepositoryConnectorUi)) {
- wizard = connectorUi.getQueryWizard(taskRepository, null);
- if (wizard == null) {
- continue;
- }
- ((Wizard) wizard).setForcePreviousAndNextButtons(true);
- }
- }
- } else */
- if (skipRepositoryPage) {
- TaskRepository taskRepository = TasksUiUtil.getSelectedRepository();
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
- wizard = connectorUi.getQueryWizard(taskRepository, null);
- ((Wizard) wizard).setForcePreviousAndNextButtons(true);
- if (connectorUi instanceof LocalRepositoryConnectorUi) {
- wizard.performFinish();
- return;
- }
- } else {
- wizard = new NewQueryWizard();
- }
-
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (shell != null && !shell.isDisposed()) {
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.create();
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Window.CANCEL) {
- dialog.close();
- return;
- }
- }
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- }
-
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
- throws CoreException {
- if ("skipFirstPage".equals(data)) { //$NON-NLS-1$
- this.skipRepositoryPage = true;
- }
- }
-
- public void init(IViewPart view) {
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewSubTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewSubTaskAction.java
deleted file mode 100644
index 8c8fae1fa..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewSubTaskAction.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * @author Steffen Pingel
- */
-public class NewSubTaskAction extends Action implements IViewActionDelegate, IExecutableExtension {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.new.subtask"; //$NON-NLS-1$
-
- private AbstractTask selectedTask;
-
- public NewSubTaskAction() {
- super(Messages.NewSubTaskAction_Subtask);
- setToolTipText(Messages.NewSubTaskAction_Create_a_new_subtask);
- setId(ID);
- setImageDescriptor(TasksUiImages.TASK_NEW_SUB);
- }
-
- @Override
- public void run() {
- if (selectedTask == null) {
- return;
- }
-
- if (selectedTask instanceof LocalTask) {
- // XXX code copied from NewLocalTaskWizard.performFinish() and TaskListManager.createNewLocalTask()
- TaskList taskList = TasksUiPlugin.getTaskList();
- LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), //$NON-NLS-1$
- LocalRepositoryConnector.DEFAULT_SUMMARY);
- newTask.setPriority(PriorityLevel.P3.toString());
- TasksUiPlugin.getTaskActivityManager().scheduleNewTask(newTask);
- taskList.addTask(newTask, selectedTask);
- TasksUiUtil.openTask(newTask);
- return;
- }
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- selectedTask.getConnectorKind());
- TaskData taskData = createTaskData(connector);
- if (taskData != null) {
- try {
- TasksUiInternal.createAndOpenNewTask(taskData);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to open new sub task", e)); //$NON-NLS-1$
- TasksUiInternal.displayStatus(Messages.NewSubTaskAction_Unable_to_create_subtask, new Status(
- IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.NewSubTaskAction_Failed_to_create_new_sub_task_ + e.getMessage()));
- }
- }
- }
-
- private TaskData createTaskData(AbstractRepositoryConnector connector) {
- final AbstractTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- if (taskDataHandler == null) {
- return null;
- }
-
- String repositoryUrl = selectedTask.getRepositoryUrl();
- TaskData parentTaskData = null;
- try {
- parentTaskData = TasksUi.getTaskDataManager().getTaskData(selectedTask);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not retrieve task data for task:" + selectedTask.getUrl(), e)); //$NON-NLS-1$
- }
- if (parentTaskData == null) {
- TasksUiInternal.displayStatus(Messages.NewSubTaskAction_Unable_to_create_subtask, new Status(
- IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- Messages.NewSubTaskAction_Could_not_retrieve_task_data_for_task_ + selectedTask.getUrl()));
- return null;
- }
-
- final TaskRepository taskRepository = TasksUiPlugin.getRepositoryManager().getRepository(repositoryUrl);
- if (!taskDataHandler.canInitializeSubTaskData(taskRepository, selectedTask)) {
- return null;
- }
-
- final TaskData selectedTaskData = parentTaskData;
- final TaskAttributeMapper attributeMapper = taskDataHandler.getAttributeMapper(taskRepository);
- final TaskData taskData = new TaskData(attributeMapper, taskRepository.getConnectorKind(),
- taskRepository.getRepositoryUrl(), ""); //$NON-NLS-1$
- final boolean[] result = new boolean[1];
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- try {
- service.busyCursorWhile(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- result[0] = taskDataHandler.initializeSubTaskData(taskRepository, taskData, selectedTaskData,
- new NullProgressMonitor());
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InvocationTargetException e) {
- if (e.getCause() instanceof CoreException) {
- TasksUiInternal.displayStatus(Messages.NewSubTaskAction_Unable_to_create_subtask,
- ((CoreException) e.getCause()).getStatus());
- } else {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.NewSubTaskAction_Could_not_initialize_sub_task_data_for_task_ + selectedTask.getUrl(),
- e));
- }
- return null;
- } catch (InterruptedException e) {
- // canceled
- return null;
- }
-
- if (result[0]) {
- // open editor
- return taskData;
- } else {
- TasksUiInternal.displayStatus(Messages.NewSubTaskAction_Unable_to_create_subtask, new Status(IStatus.INFO,
- TasksUiPlugin.ID_PLUGIN,
- Messages.NewSubTaskAction_The_connector_does_not_support_creating_subtasks_for_this_task));
- }
- return null;
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void init(IViewPart view) {
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- selectedTask = null;
- if (selection instanceof StructuredSelection) {
- Object selectedObject = ((StructuredSelection) selection).getFirstElement();
- if (selectedObject instanceof LocalTask) {
- selectedTask = (AbstractTask) selectedObject;
- } else if (selectedObject instanceof ITask) {
- selectedTask = (AbstractTask) selectedObject;
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- selectedTask.getConnectorKind());
- AbstractTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- if (taskDataHandler == null || !taskDataHandler.canInitializeSubTaskData(null, selectedTask)) {
- selectedTask = null;
- }
- }
- }
-
- action.setEnabled(selectedTask != null);
- }
-
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
- throws CoreException {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java
deleted file mode 100644
index 663f96765..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.commons.ui.TaskListImageDescriptor;
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Mik Kersten
- * @author Eugene Kuleshov
- * @author Steffen Pingel
- * @author Rob Elves
- */
-@SuppressWarnings("restriction")
-public class NewTaskAction extends BaseSelectionListenerAction implements IMenuCreator, IViewActionDelegate,
- IExecutableExtension {
-
- private static final String LABEL_NEW_TASK = Messages.NewTaskAction_new_task;
-
- public static final String ID = "org.eclipse.mylyn.tasklist.ui.repositories.actions.create"; //$NON-NLS-1$
-
- private boolean skipRepositoryPage = false;
-
- private boolean localTask = false;
-
- private Menu dropDownMenu;
-
- public NewTaskAction() {
- super(LABEL_NEW_TASK);
- setMenuCreator(this);
- setText(LABEL_NEW_TASK);
- setToolTipText(LABEL_NEW_TASK);
- setId(ID);
- setEnabled(true);
- setImageDescriptor(TasksUiImages.TASK_NEW);
- }
-
- @Override
- public void run() {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (shell != null && !shell.isDisposed()) {
- if (localTask) {
- TasksUiUtil.openNewLocalTaskEditor(shell, null);
- } else {
- if (skipRepositoryPage) {
- TasksUiUtil.openNewTaskEditor(shell, null, TasksUiUtil.getSelectedRepository());
- } else {
- TasksUiUtil.openNewTaskEditor(shell, null, null);
- }
- }
- }
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void init(IViewPart view) {
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
- throws CoreException {
- if ("skipFirstPage".equals(data)) { //$NON-NLS-1$
- this.skipRepositoryPage = true;
- }
- if ("local".equals(data)) { //$NON-NLS-1$
- this.localTask = true;
- }
- }
-
- public void dispose() {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- dropDownMenu = null;
- }
- }
-
- public Menu getMenu(Control parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- public Menu getMenu(Menu parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- private void addActionsToMenu() {
- Set<TaskRepository> includedRepositories = new HashSet<TaskRepository>();
- TaskRepository localRepository = TasksUi.getRepositoryManager().getRepository(
- LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL);
-
- addRepositoryAction(localRepository);
-
- IWorkingSet workingSet = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage()
- .getAggregateWorkingSet();
- if (workingSet != null && !workingSet.isEmpty()) {
- // only add repositories in working set
- for (IAdaptable iterable_element : workingSet.getElements()) {
- if (iterable_element instanceof RepositoryQuery) {
- String repositoryUrl = ((RepositoryQuery) iterable_element).getRepositoryUrl();
- String connectorKind = ((RepositoryQuery) iterable_element).getConnectorKind();
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(connectorKind,
- repositoryUrl);
- markForInclusion(includedRepositories, repository);
-
- }
- }
- }
-
- if (includedRepositories.isEmpty()) {
- // No repositories were added from working sets so show all
- for (TaskRepository repository : TasksUi.getRepositoryManager().getAllRepositories()) {
- markForInclusion(includedRepositories, repository);
- }
- }
-
- if (!includedRepositories.isEmpty()) {
- new Separator().fill(dropDownMenu, -1);
- ArrayList<TaskRepository> listOfRepositories = new ArrayList<TaskRepository>(includedRepositories);
- final TaskRepositoriesSorter comparator = new TaskRepositoriesSorter();
- Collections.sort(listOfRepositories, new Comparator<TaskRepository>() {
-
- public int compare(TaskRepository arg0, TaskRepository arg1) {
- return comparator.compare(null, arg0, arg1);
- }
- });
- for (TaskRepository taskRepository : listOfRepositories) {
- addRepositoryAction(taskRepository);
- }
- }
- new Separator().fill(dropDownMenu, -1);
- new ActionContributionItem(new NewQueryAction()).fill(dropDownMenu, -1);
- new ActionContributionItem(new NewCategoryAction()).fill(dropDownMenu, -1);
- new Separator().fill(dropDownMenu, -1);
- new ActionContributionItem(new AddRepositoryAction()).fill(dropDownMenu, -1);
- new Separator(IWorkbenchActionConstants.MB_ADDITIONS);
- }
-
- private void markForInclusion(Set<TaskRepository> includedRepositories, TaskRepository repository) {
- if (repository != null && !repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND)) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(repository.getConnectorKind());
- if (connector != null) {
- if (ITaskRepositoryFilter.CAN_CREATE_NEW_TASK.accept(repository, connector)) {
- includedRepositories.add(repository);
- }
- }
- }
- }
-
- private RepositorySelectionAction addRepositoryAction(TaskRepository repository) {
- if (repository == null) {
- return null;
- }
- RepositorySelectionAction action = new RepositorySelectionAction(repository);
- ActionContributionItem item = new ActionContributionItem(action);
- action.setText(repository.getRepositoryLabel());
- ImageDescriptor overlay = TasksUiPlugin.getDefault().getOverlayIcon(repository.getConnectorKind());
- ImageDescriptor compositeDescriptor = new TaskListImageDescriptor(TasksUiImages.TASK_NEW, overlay, false, false);
- action.setImageDescriptor(compositeDescriptor);
- item.fill(dropDownMenu, -1);
- return action;
- }
-
- private class RepositorySelectionAction extends Action {
-
- private final TaskRepository repository;
-
- public RepositorySelectionAction(TaskRepository repository) {
- this.repository = repository;
- setText(repository.getRepositoryLabel());
- }
-
- @Override
- public void run() {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (repository.getConnectorKind().equalsIgnoreCase(LocalRepositoryConnector.CONNECTOR_KIND)) {
- TasksUiUtil.openNewLocalTaskEditor(shell, null);
- } else {
- TasksUiUtil.openNewTaskEditor(shell, null, repository);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskFromSelectionAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskFromSelectionAction.java
deleted file mode 100644
index 0d8aaab82..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskFromSelectionAction.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class NewTaskFromSelectionAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.newTaskFromSelection"; //$NON-NLS-1$
-
- private ITaskMapping taskMapping;
-
- public NewTaskFromSelectionAction() {
- super(Messages.NewTaskFromSelectionAction_New_Task_from_Selection);
- setId(ID);
- setImageDescriptor(TasksUiImages.TASK_NEW);
- }
-
- public ITaskMapping getTaskMapping() {
- return taskMapping;
- }
-
- public void run(IAction action) {
- run();
- }
-
- @Override
- public void run() {
- if (taskMapping == null) {
- MessageDialog.openError(null, Messages.NewTaskFromSelectionAction_New_Task_from_Selection, Messages.NewTaskFromSelectionAction_Nothing_selected_to_create_task_from);
- return;
- }
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- TasksUiUtil.openNewTaskEditor(shell, taskMapping, null);
- }
-
- public void selectionChanged(ISelection selection) {
- if (selection instanceof TextSelection) {
- TextSelection textSelection = (TextSelection) selection;
- final String text = textSelection.getText();
- if (text != null && text.length() > 0) {
- taskMapping = new TaskMapping() {
- @Override
- public String getDescription() {
- return text;
- }
- };
- } else {
- taskMapping = null;
- }
-// } else if (selection instanceof RepositoryTaskSelection) {
-// RepositoryTaskSelection repositoryTaskSelection = (RepositoryTaskSelection) selection;
-// IRepositoryManager repositoryManager = TasksUi.getRepositoryManager();
-// AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repositoryTaskSelection.getRepositoryKind());
-//
-// TaskComment comment = repositoryTaskSelection.getComment();
-// if (comment != null) {
-// StringBuilder sb = new StringBuilder();
-// sb.append("\n-- Created from Comment --");
-// if (connector != null) {
-// sb.append("\nURL: ");
-// sb.append(connector.getTaskUrl(repositoryTaskSelection.getRepositoryUrl(),
-// repositoryTaskSelection.getId()));
-// }
-// sb.append("\nComment: ");
-// sb.append(comment.getNumber());
-//
-// sb.append("\n\n");
-// if (taskSelection != null) {
-// // if text was selected, prefer that
-// sb.append(taskSelection.getLegacyTaskData().getDescription());
-// } else {
-// sb.append(comment.getText());
-// }
-//
-// taskSelection = new TaskSelection("", sb.toString());
-// } else if (taskSelection != null) {
-// StringBuilder sb = new StringBuilder();
-// if (connector != null) {
-// sb.append("\n-- Created from Task --");
-// sb.append("\nURL: ");
-// sb.append(connector.getTaskUrl(repositoryTaskSelection.getRepositoryUrl(),
-// repositoryTaskSelection.getId()));
-// }
-//
-// sb.append("\n\n");
-// sb.append(taskSelection.getLegacyTaskData().getDescription());
-//
-// taskSelection = new TaskSelection("", sb.toString());
-// }
- } else if (selection instanceof StructuredSelection) {
- Object element = ((StructuredSelection) selection).getFirstElement();
- if (element instanceof ITaskComment) {
- ITaskComment comment = (ITaskComment) element;
- final StringBuilder sb = new StringBuilder();
- sb.append("\n" + Messages.NewTaskFromSelectionAction____Created_from_Comment___); //$NON-NLS-1$
- if (comment.getUrl() == null) {
- sb.append("\n" + Messages.NewTaskFromSelectionAction_URL_); //$NON-NLS-1$
- sb.append(comment.getTask().getUrl());
- sb.append("\n" + Messages.NewTaskFromSelectionAction_Comment_); //$NON-NLS-1$
- sb.append(comment.getNumber());
- } else {
- sb.append("\n" + Messages.NewTaskFromSelectionAction_URL_); //$NON-NLS-1$
- sb.append(comment.getUrl());
- }
-
- sb.append("\n\n"); //$NON-NLS-1$
- sb.append(comment.getText());
- taskMapping = new TaskMapping() {
- @Override
- public String getDescription() {
- return sb.toString();
- }
- };
- }
- }
- setEnabled(taskMapping != null);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenRepositoryTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenRepositoryTaskAction.java
deleted file mode 100644
index 070db876b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenRepositoryTaskAction.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.ui.AddExistingTaskJob;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.commands.RemoteTaskSelectionDialog;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * @author Mik Kersten
- */
-public class OpenRepositoryTaskAction extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate {
-
- private static final String OPEN_REMOTE_TASK_DIALOG_DIALOG_SETTINGS = "org.eclipse.mylyn.tasks.ui.open.remote"; //$NON-NLS-1$
-
- public void run(IAction action) {
- RemoteTaskSelectionDialog dlg = new RemoteTaskSelectionDialog(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getShell());
- dlg.setTitle(Messages.OpenRepositoryTask_Open_Repository_Task);
-
- IDialogSettings settings = TasksUiPlugin.getDefault().getDialogSettings();
- IDialogSettings dlgSettings = settings.getSection(OPEN_REMOTE_TASK_DIALOG_DIALOG_SETTINGS);
- if (dlgSettings == null) {
- dlgSettings = settings.addNewSection(OPEN_REMOTE_TASK_DIALOG_DIALOG_SETTINGS);
- }
- dlg.setDialogBoundsSettings(dlgSettings, Dialog.DIALOG_PERSISTLOCATION | Dialog.DIALOG_PERSISTSIZE);
-
- if (dlg.open() == Window.OK) {
- if (dlg.getSelectedTask() != null) {
- openExistingTask(dlg);
- } else {
- openRemoteTask(dlg);
- }
- }
- }
-
- /**
- * Selected a existing task; handle category move, if needed
- */
- private void openExistingTask(RemoteTaskSelectionDialog dlg) {
- if (dlg.shouldAddToTaskList()) {
- TasksUiInternal.getTaskList().addTask(dlg.getSelectedTask(), dlg.getSelectedCategory());
- }
- TasksUiInternal.refreshAndOpenTaskListElement(dlg.getSelectedTask());
- }
-
- /**
- * Selected a repository, so try to obtain the task using taskId
- */
- private void openRemoteTask(RemoteTaskSelectionDialog dlg) {
- String[] selectedIds = dlg.getSelectedIds();
- if (dlg.shouldAddToTaskList()) {
- for (String id : selectedIds) {
- final IProgressService svc = PlatformUI.getWorkbench().getProgressService();
- final AddExistingTaskJob job = new AddExistingTaskJob(dlg.getSelectedTaskRepository(), id,
- dlg.getSelectedCategory());
- job.schedule();
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-
- public void run() {
- svc.showInDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), job);
- }
-
- });
- }
- } else {
- boolean openSuccessful = false;
- for (String id : selectedIds) {
- boolean opened = TasksUiUtil.openTask(dlg.getSelectedTaskRepository(), id);
- if (opened) {
- openSuccessful = true;
- }
- }
- if (!openSuccessful) {
- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.OpenRepositoryTask_Open_Task,
- Messages.OpenRepositoryTask_Could_not_find_matching_repository_task);
- }
- }
- }
-
- public void dispose() {
- }
-
- public void init(IWorkbenchWindow window) {
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
- public void init(IViewPart view) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java
deleted file mode 100644
index 8b8975326..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.actions.ActionDelegate;
-
-/**
- * @author Willian Mitsuda
- */
-public class OpenTaskAction extends ActionDelegate implements IWorkbenchWindowActionDelegate {
-
- private IWorkbenchWindow window;
-
- public void init(IWorkbenchWindow window) {
- this.window = window;
- }
-
- @Override
- public void run(IAction action) {
- TaskSelectionDialog dlg = new TaskSelectionDialog(window.getShell());
- dlg.setTitle(Messages.OpenTaskAction_Open_Task);
- dlg.setMessage(Messages.OpenTaskAction_Select_a_task_to_open__);
- dlg.setShowExtendedOpeningOptions(true);
-
- if (dlg.open() != Window.OK) {
- return;
- }
-
- Object result = dlg.getFirstResult();
- if (result instanceof ITask) {
- AbstractTask task = (AbstractTask) result;
- if (dlg.getOpenInBrowser()) {
- if (TasksUiInternal.isValidUrl(task.getUrl())) {
- TasksUiUtil.openUrl(task.getUrl());
- }
- } else {
- TasksUiInternal.refreshAndOpenTaskListElement(task);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskListElementAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskListElementAction.java
deleted file mode 100644
index 314426077..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskListElementAction.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * @author Mik Kersten
- */
-public class OpenTaskListElementAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.open"; //$NON-NLS-1$
-
- private final TreeViewer viewer;
-
- public OpenTaskListElementAction(TreeViewer view) {
- this.viewer = view;
- setText(Messages.OpenTaskListElementAction_Open);
- setToolTipText(Messages.OpenTaskListElementAction_Open_Task_List_Element);
- setId(ID);
- }
-
- @Override
- public void run() {
- runWithEvent(null);
- }
-
- @Override
- public void runWithEvent(Event event) {
- ISelection selection = viewer.getSelection();
- List<?> list = ((IStructuredSelection) selection).toList();
- for (Object element : list) {
- if (element instanceof ITask && event != null && (event.keyCode & SWT.MOD1) != 0) {
- TasksUiInternal.openTaskInBackground((AbstractTask) element, true);
- } else if (element instanceof ITask) {
- TasksUiInternal.refreshAndOpenTaskListElement((ITask) element);
- } else {
- if (viewer.getExpandedState(element)) {
- viewer.collapseToLevel(element, 1);
- } else {
- viewer.expandToLevel(element, 1);
- }
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskSearchAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskSearchAction.java
deleted file mode 100644
index 0c6f858b6..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskSearchAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.TaskSearchPage;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class OpenTaskSearchAction extends Action implements IViewActionDelegate {
-
- public OpenTaskSearchAction() {
- }
-
- public void init(IViewPart view) {
- // ignore
- }
-
- @Override
- public void run() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- NewSearchUI.openSearchDialog(window, TaskSearchPage.ID);
- }
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTasksUiPreferencesAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTasksUiPreferencesAction.java
deleted file mode 100644
index 013f3b434..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTasksUiPreferencesAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.preference.PreferenceDialog;
-import org.eclipse.mylyn.internal.tasks.ui.preferences.TasksUiPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-
-/**
- * @author Mik Kersten
- */
-public class OpenTasksUiPreferencesAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.preferences.open"; //$NON-NLS-1$
-
- public OpenTasksUiPreferencesAction() {
- setText(Messages.OpenTasksUiPreferencesAction_Preferences_);
- setToolTipText(Messages.OpenTasksUiPreferencesAction_Preferences_);
- setId(ID);
- }
-
- @Override
- public void run() {
- PreferenceDialog dlg = PreferencesUtil.createPreferenceDialogOn(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getShell(), TasksUiPreferencePage.ID, new String[] { TasksUiPreferencePage.ID }, null);
- dlg.open();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java
deleted file mode 100644
index 262123e19..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Iterator;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class OpenWithBrowserAction extends BaseSelectionListenerAction {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.open.browser"; //$NON-NLS-1$
-
- public OpenWithBrowserAction() {
- super(Messages.OpenWithBrowserAction_Open_with_Browser);
- setToolTipText(Messages.OpenWithBrowserAction_Open_with_Browser);
- setId(ID);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void run() {
- if (super.getStructuredSelection() != null) {
- for (Iterator iter = super.getStructuredSelection().iterator(); iter.hasNext();) {
- runWithSelection(iter.next());
- }
- }
- }
-
- private void runWithSelection(Object selectedObject) {
- String urlString = null;
- if (selectedObject instanceof ITask) {
- AbstractTask task = (AbstractTask) selectedObject;
- if (TasksUiInternal.isValidUrl(task.getUrl())) {
- urlString = task.getUrl();
- }
- } else if (selectedObject instanceof IRepositoryElement) {
- IRepositoryElement query = (IRepositoryElement) selectedObject;
- urlString = query.getUrl();
- }
-
- if (urlString != null) {
- TasksUiUtil.openUrl(urlString);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PresentationDropDownSelectionAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PresentationDropDownSelectionAction.java
deleted file mode 100644
index 628c38335..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PresentationDropDownSelectionAction.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class PresentationDropDownSelectionAction extends Action implements IMenuCreator {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.presentationselection"; //$NON-NLS-1$
-
- private final TaskListView view;
-
- private Menu dropDownMenu;
-
- public PresentationDropDownSelectionAction(TaskListView view) {
- this.view = view;
- setMenuCreator(this);
- setText(Messages.PresentationDropDownSelectionAction_Task_Presentation);
- setToolTipText(Messages.PresentationDropDownSelectionAction_Task_Presentation);
- setId(ID);
- setEnabled(true);
- setImageDescriptor(CommonImages.PRESENTATION);
- }
-
- private void addActionsToMenu() {
- for (AbstractTaskListPresentation presentation : TaskListView.getPresentations()) {
- if (presentation.isPrimary()) {
- PresentationSelectionAction action = new PresentationSelectionAction(presentation);
- ActionContributionItem item = new ActionContributionItem(action);
- action.setText(presentation.getName());
- action.setImageDescriptor(presentation.getImageDescriptor());
- action.setChecked(view.getCurrentPresentation().getId().equals(presentation.getId()));
- item.fill(dropDownMenu, -1);
- }
- }
-
- boolean separatorAdded = false;
-
- for (AbstractTaskListPresentation presentation : TaskListView.getPresentations()) {
- if (WorkbenchUtil.allowUseOf(presentation)) {
- if (!presentation.isPrimary()) {
- if (!separatorAdded) {
- new Separator().fill(dropDownMenu, -1);
- separatorAdded = true;
- }
-
- PresentationSelectionAction action = new PresentationSelectionAction(presentation);
- ActionContributionItem item = new ActionContributionItem(action);
- action.setText(presentation.getName());
- action.setImageDescriptor(presentation.getImageDescriptor());
- action.setChecked(view.getCurrentPresentation().getId().equals(presentation.getId()));
- item.fill(dropDownMenu, -1);
- }
- }
- }
- }
-
- @Override
- public void run() {
- AbstractTaskListPresentation current = view.getCurrentPresentation();
- List<AbstractTaskListPresentation> all = TaskListView.getPresentations();
- int size = all.size();
- if (size == 0) {
- return;
- }
-
- // cycle between primary presentations
- int index = all.indexOf(current) + 1;
- for (int i = 0; i < size; i++) {
- AbstractTaskListPresentation presentation = all.get(index % size);
- if (presentation.isPrimary()) {
- view.applyPresentation(presentation);
- return;
- }
- index++;
- }
-
- // fall back to next presentation in list
- index = all.indexOf(current) + 1;
- if (index < size) {
- view.applyPresentation(all.get(index));
- } else {
- view.applyPresentation(all.get(0));
- }
- }
-
- public void dispose() {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- dropDownMenu = null;
- }
- }
-
- public Menu getMenu(Control parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- public Menu getMenu(Menu parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- private class PresentationSelectionAction extends Action {
-
- private final AbstractTaskListPresentation presentation;
-
- public PresentationSelectionAction(AbstractTaskListPresentation presentation) {
- this.presentation = presentation;
- setText(presentation.getName());
- }
-
- @Override
- public void run() {
- view.applyPresentation(presentation);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/QueryCloneAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/QueryCloneAction.java
deleted file mode 100644
index 770ac92bc..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/QueryCloneAction.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jevgeni Holodkov 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:
- * Jevgeni Holodkov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Allow to clone a selected query.
- *
- * @author Jevgeni Holodkov
- */
-public class QueryCloneAction extends Action implements IViewActionDelegate {
-
- protected ISelection selection;
-
- public void init(IViewPart view) {
- // ignore
- }
-
- public void run(IAction action) {
- run(getSelectedQuery(selection));
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- this.selection = selection;
- IRepositoryQuery selectedQuery = getSelectedQuery(selection);
- action.setEnabled(true);
- if (selectedQuery != null) {
- action.setEnabled(true);
- } else {
- action.setEnabled(false);
- }
- }
-
- protected RepositoryQuery getSelectedQuery(ISelection newSelection) {
- if (selection instanceof StructuredSelection) {
- // allow to select only one element
- if (((StructuredSelection) selection).size() == 1) {
- Object selectedObject = ((StructuredSelection) selection).getFirstElement();
- if (selectedObject instanceof IRepositoryQuery) {
- return (RepositoryQuery) selectedObject;
- }
- }
- }
- return null;
- }
-
- public void run(RepositoryQuery selectedQuery) {
- if (selectedQuery == null) {
- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- Messages.QueryCloneAction_Clone_Query, Messages.QueryCloneAction_No_query_selected);
- return;
- }
-
- List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
- queries.add(selectedQuery);
-
- List<RepositoryQuery> clonedQueries = new ArrayList<RepositoryQuery>(queries.size());
- for (RepositoryQuery query : queries) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(),
- query.getRepositoryUrl());
- RepositoryQuery clonedQuery = (RepositoryQuery) TasksUi.getRepositoryModel().createRepositoryQuery(
- repository);
- clonedQuery.setSummary(NLS.bind(Messages.QueryCloneAction_Copy_of_X, query.getSummary()));
- clonedQuery.setUrl(query.getUrl());
- Map<String, String> attributes = query.getAttributes();
- for (Map.Entry<String, String> entry : attributes.entrySet()) {
- clonedQuery.setAttribute(entry.getKey(), entry.getValue());
- }
- clonedQueries.add(clonedQuery);
- }
- for (RepositoryQuery query : clonedQueries) {
- TasksUiPlugin.getTaskList().addQuery(query);
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(query.getConnectorKind());
- TasksUiInternal.openEditQueryDialog(connectorUi, query);
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RefreshRepositoryTasksAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RefreshRepositoryTasksAction.java
deleted file mode 100644
index 7d760656d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RefreshRepositoryTasksAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Steffen Pingel
- */
-public class RefreshRepositoryTasksAction extends AbstractTaskRepositoryAction implements IViewActionDelegate {
-
- private static final String ID = "org.eclipse.mylyn.tasklist.repositories.refreshAllTasks"; //$NON-NLS-1$
-
- public RefreshRepositoryTasksAction() {
- super(Messages.RefreshRepositoryTasksAction_Refresh_All_Tasks);
- setId(ID);
- setEnabled(false);
- }
-
- @Override
- public void run() {
- IStructuredSelection selection = getStructuredSelection();
- for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
- Object selectedObject = iter.next();
- if (selectedObject instanceof TaskRepository) {
- TaskRepository repository = (TaskRepository) selectedObject;
- synchronizeAllTasks(repository);
- }
- }
- }
-
- private void synchronizeAllTasks(TaskRepository repository) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- if (connector != null) {
- Set<ITask> repositoryTasks = TasksUiPlugin.getTaskList().getTasks(repository.getRepositoryUrl());
- TasksUiInternal.synchronizeTasks(connector, repositoryTasks, true, null);
- }
- }
-
- public void init(IViewPart view) {
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- selectionChanged((IStructuredSelection) selection);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java
deleted file mode 100644
index ecdcc46b5..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Ken Sueda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Ken Sueda
- * @author Mik Kersten
- */
-public class RemoveFromCategoryAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.remove"; //$NON-NLS-1$
-
- private final TaskListView view;
-
- public RemoveFromCategoryAction(TaskListView view) {
- this.view = view;
- setText(Messages.RemoveFromCategoryAction_Remove_From_Category);
- setId(ID);
- setImageDescriptor(CommonImages.REMOVE);
- }
-
- @Override
- public void run() {
- ISelection selection = view.getViewer().getSelection();
- for (Object selectedObject : ((IStructuredSelection) selection).toList()) {
- if (selectedObject instanceof ITask) {
- AbstractTask task = (AbstractTask) selectedObject;
- AbstractTaskCategory category = TaskCategory.getParentTaskCategory(task);
- if (category != null) {
- TasksUiInternal.getTaskList().removeFromContainer(category, task);
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java
deleted file mode 100644
index e7629d0cb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Mik Kersten
- */
-public class RenameAction extends BaseSelectionListenerAction {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.rename"; //$NON-NLS-1$
-
- private final TaskListView view;
-
- public RenameAction(TaskListView view) {
- super(Messages.RenameAction_Rename);
- this.view = view;
- setId(ID);
- setAccelerator(SWT.F2);
- }
-
- @Override
- public void run() {
- Object selectedObject = ((IStructuredSelection) this.view.getViewer().getSelection()).getFirstElement();
- if (selectedObject instanceof IRepositoryElement) {
- IRepositoryElement element = (IRepositoryElement) selectedObject;
- view.setInRenameAction(true);
- view.getViewer().editElement(element, 0);
- view.setInRenameAction(false);
- }
- }
-
- @Override
- protected boolean updateSelection(IStructuredSelection selection) {
- Object selectedObject = selection.getFirstElement();
- if (selectedObject instanceof AbstractTaskCategory) {
- AbstractTaskCategory container = (AbstractTaskCategory) selectedObject;
- return container.isUserManaged();
- } else if (selectedObject instanceof IRepositoryQuery) {
- return true;
- }
- return (selectedObject instanceof LocalTask);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RestoreTaskListAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RestoreTaskListAction.java
deleted file mode 100644
index 544209f99..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RestoreTaskListAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataImportWizard;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- */
-public class RestoreTaskListAction extends Action implements IViewActionDelegate, IWorkbenchWindowActionDelegate {
-
- public void init(IViewPart view) {
- }
-
- public void run(IAction action) {
- run();
- }
-
- @Override
- public void run() {
- try {
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (shell != null && !shell.isDisposed()) {
- IWizard wizard = new TaskDataImportWizard();
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.create();
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Window.CANCEL) {
- dialog.close();
- return;
- }
- }
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
- public void dispose() {
- // ignore
-
- }
-
- public void init(IWorkbenchWindow window) {
- // ignore
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SearchForRepositoryTask.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SearchForRepositoryTask.java
deleted file mode 100644
index 24fbc9c63..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SearchForRepositoryTask.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.TaskSearchPage;
-import org.eclipse.search.internal.ui.SearchDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- */
-public class SearchForRepositoryTask extends Action implements IWorkbenchWindowActionDelegate, IViewActionDelegate {
-
- public void run(IAction action) {
- new SearchDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow(), TaskSearchPage.ID).open();
- }
-
- public void dispose() {
- }
-
- public void init(IWorkbenchWindow window) {
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
- public void init(IViewPart view) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInSearchViewAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInSearchViewAction.java
deleted file mode 100644
index dd2c14893..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInSearchViewAction.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Iterator;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchHitCollector;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Steffen Pingel
- */
-public class ShowInSearchViewAction extends BaseSelectionListenerAction {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.open.browser"; //$NON-NLS-1$
-
- public ShowInSearchViewAction() {
- super(Messages.ShowInSearchViewAction_Open_in_Search_Label);
- setId(ID);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void run() {
- if (super.getStructuredSelection() != null) {
- for (Iterator iter = super.getStructuredSelection().iterator(); iter.hasNext();) {
- runWithSelection(iter.next());
- }
- }
- }
-
- private void runWithSelection(Object selectedObject) {
- if (selectedObject instanceof IRepositoryQuery) {
- IRepositoryQuery query = (IRepositoryQuery) selectedObject;
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- query.getConnectorKind());
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(),
- query.getRepositoryUrl());
- if (connector != null) {
- SearchHitCollector collector = new SearchHitCollector(TasksUiInternal.getTaskList(), taskRepository,
- query);
- NewSearchUI.runQueryInBackground(collector);
- }
- }
- }
-
- @Override
- protected boolean updateSelection(IStructuredSelection selection) {
- return selection.size() == 1 && selection.getFirstElement() instanceof IRepositoryQuery;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInTaskListAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInTaskListAction.java
deleted file mode 100644
index 8c2967f0b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowInTaskListAction.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Willian Mitsuda
- */
-public class ShowInTaskListAction extends BaseSelectionListenerAction {
-
- public ShowInTaskListAction() {
- super(Messages.ShowInTaskListAction_Show_In_Task_List);
- }
-
- @Override
- public void run() {
- IStructuredSelection struSel = getStructuredSelection();
- if (!struSel.isEmpty()) {
- Object element = struSel.getFirstElement();
- if (element instanceof ITask) {
- TasksUiUtil.openTasksViewInActivePerspective();
- TaskListView.getFromActivePerspective().selectedAndFocusTask((AbstractTask) element);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTaskRepositoriesViewAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTaskRepositoriesViewAction.java
deleted file mode 100644
index dde0dc1e8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTaskRepositoriesViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesView;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Mik Kersten
- */
-public class ShowTaskRepositoriesViewAction implements IViewActionDelegate {
-
- public void init(IViewPart view) {
- }
-
- public void run(IAction action) {
- TaskRepositoriesView.openInActivePerspective();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTasksUiLegendAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTasksUiLegendAction.java
deleted file mode 100644
index 22fcd3b72..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowTasksUiLegendAction.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.dialogs.UiLegendDialog;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.intro.IIntroManager;
-import org.eclipse.ui.intro.IIntroPart;
-
-/**
- * @author Mik Kersten
- * @author Leo Dos Santos
- */
-public class ShowTasksUiLegendAction implements IWorkbenchWindowActionDelegate, IViewActionDelegate {
-
- private IWorkbenchWindow wbWindow;
-
- public void dispose() {
- // ignore
- }
-
- public void init(IWorkbenchWindow window) {
- wbWindow = window;
- }
-
- public void run(IAction action) {
- IIntroManager introMgr = wbWindow.getWorkbench().getIntroManager();
- IIntroPart intro = introMgr.getIntro();
- if (intro != null) {
- introMgr.setIntroStandby(intro, true);
- }
-
- TasksUiUtil.openTasksViewInActivePerspective();
- Shell parentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- UiLegendDialog uiLegendDialog = new UiLegendDialog(parentShell);
- uiLegendDialog.open();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-
- public void init(IViewPart view) {
- wbWindow = view.getViewSite().getWorkbenchWindow();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAllAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAllAction.java
deleted file mode 100644
index 0dc2f4763..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAllAction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class SynchronizeAllAction implements IViewActionDelegate {
-
- public void init(IViewPart view) {
- // ignore
- }
-
- public void run(IAction action) {
- TasksUiInternal.synchronizeAllRepositories(true);
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAutomaticallyAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAutomaticallyAction.java
deleted file mode 100644
index a84949799..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeAutomaticallyAction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 Mik Kersten
- */
-public class SynchronizeAutomaticallyAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.synchronize.background"; //$NON-NLS-1$
-
- public SynchronizeAutomaticallyAction() {
- setText(Messages.SynchronizeAutomaticallyAction_Synchronize_Automatically);
- setToolTipText(Messages.SynchronizeAutomaticallyAction_Synchronize_Automatically);
- setId(ID);
- setChecked(TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED));
- }
-
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED, isChecked());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeEditorAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeEditorAction.java
deleted file mode 100644
index 69f7967b3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeEditorAction.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Iterator;
-
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-
-/**
- * @author Rob Elves
- */
-public class SynchronizeEditorAction extends BaseSelectionListenerAction {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.synchronize.editor"; //$NON-NLS-1$
-
- public SynchronizeEditorAction() {
- super(Messages.SynchronizeEditorAction_Synchronize);
- setToolTipText(Messages.SynchronizeEditorAction_Synchronize_Incoming_Changes);
- setId(ID);
- setImageDescriptor(CommonImages.REFRESH_SMALL);
- // setAccelerator(SWT.MOD1 + 'r');
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void run() {
- if (getStructuredSelection() != null) {
- for (Iterator it = getStructuredSelection().iterator(); it.hasNext();) {
- runWithSelection(it.next());
- }
- }
- }
-
- private void runWithSelection(final Object selectedObject) {
- final TaskEditor editor;
- final ITask task;
- if (selectedObject instanceof TaskEditor) {
- editor = (TaskEditor) selectedObject;
- task = editor.getTaskEditorInput().getTask();
- } else {
- return;
- }
-
- if (task != null) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- task.getConnectorKind());
- if (connector != null) {
- TasksUiInternal.synchronizeTask(connector, task, true, new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- try {
- if (selectedObject instanceof TaskEditor) {
- TaskEditor editor = (TaskEditor) selectedObject;
- editor.refreshPages();
- }
- } finally {
- if (editor != null) {
- editor.showBusy(false);
- }
- }
- }
- });
- }
- });
- }
- if (editor != null) {
- editor.showBusy(true);
- }
- }
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java
deleted file mode 100644
index 7e35e8435..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.actions.ActionDelegate;
-import org.eclipse.ui.actions.ActionFactory;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class SynchronizeSelectedAction extends ActionDelegate implements IViewActionDelegate {
-
- private final Map<AbstractRepositoryConnector, List<RepositoryQuery>> queriesToSyncMap = new LinkedHashMap<AbstractRepositoryConnector, List<RepositoryQuery>>();
-
- private final Map<AbstractRepositoryConnector, List<ITask>> tasksToSyncMap = new LinkedHashMap<AbstractRepositoryConnector, List<ITask>>();
-
- @Override
- public void run(IAction action) {
-
- if (TaskListView.getFromActivePerspective() != null) {
-
- ISelection selection = TaskListView.getFromActivePerspective().getViewer().getSelection();
- for (Object obj : ((IStructuredSelection) selection).toList()) {
- if (obj instanceof IRepositoryQuery) {
- final RepositoryQuery repositoryQuery = (RepositoryQuery) obj;
- AbstractRepositoryConnector client = TasksUi.getRepositoryManager().getRepositoryConnector(
- repositoryQuery.getConnectorKind());
- if (client != null) {
- List<RepositoryQuery> queriesToSync = queriesToSyncMap.get(client);
- if (queriesToSync == null) {
- queriesToSync = new ArrayList<RepositoryQuery>();
- queriesToSyncMap.put(client, queriesToSync);
- }
- queriesToSync.add(repositoryQuery);
- }
- } else if (obj instanceof TaskCategory) {
- TaskCategory cat = (TaskCategory) obj;
- for (ITask task : cat.getChildren()) {
- AbstractRepositoryConnector client = TasksUi.getRepositoryManager().getRepositoryConnector(
- task.getConnectorKind());
- addTaskToSync(client, task);
- }
- } else if (obj instanceof ITask) {
- AbstractTask repositoryTask = (AbstractTask) obj;
- AbstractRepositoryConnector client = TasksUi.getRepositoryManager().getRepositoryConnector(
- repositoryTask.getConnectorKind());
- addTaskToSync(client, repositoryTask);
- }
- }
-
- if (!queriesToSyncMap.isEmpty()) {
- // determine which repositories to synch changed tasks for
- HashMap<TaskRepository, Set<RepositoryQuery>> repositoriesToSync = new HashMap<TaskRepository, Set<RepositoryQuery>>();
- for (AbstractRepositoryConnector connector : queriesToSyncMap.keySet()) {
- List<RepositoryQuery> queriesToSync = queriesToSyncMap.get(connector);
- if (queriesToSync == null || queriesToSync.isEmpty()) {
- continue;
- }
-
- for (RepositoryQuery query : queriesToSync) {
- TaskRepository repos = TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(),
- query.getRepositoryUrl());
- Set<RepositoryQuery> queries = repositoriesToSync.get(repos);
- if (queries == null) {
- queries = new HashSet<RepositoryQuery>();
- repositoriesToSync.put(repos, queries);
- }
- queries.add(query);
- }
- }
-
- for (Map.Entry<TaskRepository, Set<RepositoryQuery>> entry : repositoriesToSync.entrySet()) {
- TaskRepository repository = entry.getKey();
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- Set<RepositoryQuery> queries = entry.getValue();
- TasksUiInternal.synchronizeQueries(connector, repository, queries, null, true);
- }
- }
- if (!tasksToSyncMap.isEmpty()) {
- for (AbstractRepositoryConnector connector : tasksToSyncMap.keySet()) {
- List<ITask> tasksToSync = tasksToSyncMap.get(connector);
- if (tasksToSync != null && tasksToSync.size() > 0) {
- TasksUiInternal.synchronizeTasks(connector, new HashSet<ITask>(tasksToSync), true, null);
- }
- }
- }
-
- }
-
- queriesToSyncMap.clear();
- tasksToSyncMap.clear();
- }
-
- private void addTaskToSync(AbstractRepositoryConnector connector, ITask task) {
- if (connector == null //
- || task instanceof LocalTask //
- || task.getSynchronizationState() == SynchronizationState.OUTGOING_NEW) {
- return;
- }
-
- List<ITask> tasksToSync = tasksToSyncMap.get(connector);
- if (tasksToSync == null) {
- tasksToSync = new ArrayList<ITask>();
- tasksToSyncMap.put(connector, tasksToSync);
- }
- tasksToSync.add(task);
- }
-
- private IAction action;
-
- @Override
- public void init(IAction action) {
- this.action = action;
- }
-
- public void init(IViewPart view) {
- IActionBars actionBars = view.getViewSite().getActionBars();
- actionBars.setGlobalActionHandler(ActionFactory.REFRESH.getId(), action);
- actionBars.updateActionBars();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskActivateAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskActivateAction.java
deleted file mode 100644
index 5e6259636..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskActivateAction.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @author Mik Kersten
- */
-public class TaskActivateAction extends Action implements IViewActionDelegate {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.context.activate"; //$NON-NLS-1$
-
- public TaskActivateAction() {
- setId(ID);
- setText(Messages.TaskActivateAction_Activate);
- setImageDescriptor(TasksUiImages.CONTEXT_ACTIVE_CENTERED);
- }
-
- public void init(IViewPart view) {
- // ignore
- }
-
- @Override
- public void run() {
- run(TaskListView.getFromActivePerspective().getSelectedTask());
- }
-
- public void run(ITask task) {
- if (task != null && !task.isActive()) {
- TasksUi.getTaskActivityManager().activateTask(task);
- }
- }
-
- public void run(IAction action) {
- run();
- }
-
- public void selectionChanged(IAction action, ISelection selection) {
- // ignore
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskDeactivateAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskDeactivateAction.java
deleted file mode 100644
index 46fe058f3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskDeactivateAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-
-/**
- * @author Mik Kersten
- */
-public class TaskDeactivateAction extends Action {
-
- public static final String ID = "org.eclipse.mylyn.tasklist.actions.context.deactivate"; //$NON-NLS-1$
-
- public TaskDeactivateAction() {
- setId(ID);
- setText(Messages.TaskDeactivateAction_Deactivate);
- setImageDescriptor(TasksUiImages.CONTEXT_INACTIVE_EMPTY);
- }
-
- public void run(ITask task) {
- try {
- if (task != null) {
- TasksUi.getTaskActivityManager().deactivateTask(task);
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Closing task editor on task deactivation failed", e)); //$NON-NLS-1$
- }
- }
-
- @Override
- public void run() {
- run(TaskListView.getFromActivePerspective().getSelectedTask());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorCopyAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorCopyAction.java
deleted file mode 100644
index afdfbfea5..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorCopyAction.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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;
-
-/**
- * TODO: delete?
- *
- * @author Mik Kersten
- */
-public class TaskEditorCopyAction extends Action {
-
- public TaskEditorCopyAction() {
- setText("TaskInfoEditor.copy.text"); //$NON-NLS-1$
- }
-
- @Override
- public void run() {
- // if (editorPart instanceof TaskInfoEditor)
- // ((TaskInfoEditor)editorPart).getCurrentText().copy();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorScheduleAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorScheduleAction.java
deleted file mode 100644
index 77fa4ac3a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskEditorScheduleAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.Action;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.ui.ScheduleTaskMenuContributor;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * @author Mik Kersten
- */
-public class TaskEditorScheduleAction extends Action implements IMenuCreator {
-
- private final ITask task;
-
- private MenuManager menuManager;
-
- private final ScheduleTaskMenuContributor scheduleMenuContributor = new ScheduleTaskMenuContributor();
-
- public TaskEditorScheduleAction(ITask task) {
- this.task = task;
- this.setImageDescriptor(CommonImages.SCHEDULE_DAY);
- setMenuCreator(this);
- }
-
- @Override
- public void run() {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor((AbstractTask) task,
- TaskActivityUtil.getCurrentWeek().getToday());
- }
-
- public Menu getMenu(Control parent) {
- if (menuManager != null) {
- menuManager.dispose();
- }
- menuManager = scheduleMenuContributor.getSubMenuManager(Collections.singletonList((IRepositoryElement) task));
- menuManager.createContextMenu(parent);
- return menuManager.getMenu();
- }
-
- public Menu getMenu(Menu parent) {
- if (menuManager != null) {
- return menuManager.getMenu();
- }
- return null;
- }
-
- public void dispose() {
- if (menuManager != null) {
- menuManager.dispose();
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListSortAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListSortAction.java
deleted file mode 100644
index 0d6ee8f5a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListSortAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.ui.dialogs.TaskListSortDialog;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-/**
- * @author Mik Kersten
- */
-public class TaskListSortAction extends Action {
-
- private final TaskListSortDialog dialog;
-
- private final TaskListView taskListView;
-
- public TaskListSortAction(IWorkbenchPartSite site, TaskListView taskListView) {
- super(Messages.TaskListSortAction_Sort_);
- this.taskListView = taskListView;
- setEnabled(true);
- dialog = new TaskListSortDialog(site, taskListView);
- }
-
- @Override
- public void run() {
- if (dialog.open() == Window.OK) {
- taskListView.getViewer().refresh();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java
deleted file mode 100644
index f529b4c54..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java
+++ /dev/null
@@ -1,728 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Tasktop Technologies - improvements
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-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;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TaskSearchPage;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskDetailLabelProvider;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListFilteredTree;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.WorkingSetLabelComparator;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.search.internal.ui.SearchDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-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.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
-import org.eclipse.ui.dialogs.IWorkingSetEditWizard;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.ui.dialogs.SearchPattern;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-
-/**
- * @author Willian Mitsuda
- * @author Mik Kersten
- * @author Eugene Kuleshov
- * @author Shawn Minto
- */
-public class TaskSelectionDialog extends FilteredItemsSelectionDialog {
-
- private class DeselectWorkingSetAction extends Action {
-
- public DeselectWorkingSetAction() {
- super(Messages.TaskSelectionDialog_Deselect_Working_Set, IAction.AS_PUSH_BUTTON);
- }
-
- @Override
- public void run() {
- setSelectedWorkingSet(null);
- }
- }
-
- private class EditWorkingSetAction extends Action {
-
- public EditWorkingSetAction() {
- super(Messages.TaskSelectionDialog_Edit_Active_Working_Set_, IAction.AS_PUSH_BUTTON);
- }
-
- @Override
- public void run() {
- IWorkingSetEditWizard wizard = PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSetEditWizard(
- selectedWorkingSet);
- if (wizard != null) {
- WizardDialog dlg = new WizardDialog(getShell(), wizard);
- dlg.open();
- }
- }
- }
-
- private class FilterWorkingSetAction extends Action {
-
- private final IWorkingSet workingSet;
-
- public FilterWorkingSetAction(IWorkingSet workingSet, int shortcutKeyNumber) {
- super("", IAction.AS_RADIO_BUTTON); //$NON-NLS-1$
- this.workingSet = workingSet;
- if (shortcutKeyNumber >= 1 && shortcutKeyNumber <= 9) {
- setText("&" + String.valueOf(shortcutKeyNumber) + " " + workingSet.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- setText(workingSet.getLabel());
- }
- setImageDescriptor(workingSet.getImageDescriptor());
- }
-
- @Override
- public void run() {
- setSelectedWorkingSet(workingSet);
- }
- }
-
- private class SelectWorkingSetAction extends Action {
-
- public SelectWorkingSetAction() {
- super(Messages.TaskSelectionDialog_Select_Working_Set_, IAction.AS_PUSH_BUTTON);
- }
-
- @Override
- public void run() {
- IWorkingSetSelectionDialog dlg = PlatformUI.getWorkbench()
- .getWorkingSetManager()
- .createWorkingSetSelectionDialog(getShell(), false,
- new String[] { TaskWorkingSetUpdater.ID_TASK_WORKING_SET });
- if (selectedWorkingSet != null) {
- dlg.setSelection(new IWorkingSet[] { selectedWorkingSet });
- }
- if (dlg.open() == Window.OK) {
- IWorkingSet[] selection = dlg.getSelection();
- if (selection.length == 0) {
- setSelectedWorkingSet(null);
- } else {
- setSelectedWorkingSet(selection[0]);
- }
- }
- }
- }
-
- private class ShowCompletedTasksAction extends Action {
-
- public ShowCompletedTasksAction() {
- super(Messages.TaskSelectionDialog_Show_Completed_Tasks, IAction.AS_CHECK_BOX);
- }
-
- @Override
- public void run() {
- showCompletedTasks = isChecked();
- applyFilter();
- }
-
- }
-
- private class TaskHistoryItemsComparator implements Comparator<Object> {
-
- Map<AbstractTask, Integer> positionByTask = new HashMap<AbstractTask, Integer>();
-
- public TaskHistoryItemsComparator(List<AbstractTask> history) {
- for (int i = 0; i < history.size(); i++) {
- positionByTask.put(history.get(i), i);
- }
- }
-
- public int compare(Object o1, Object o2) {
- Integer p1 = positionByTask.get(o1);
- Integer p2 = positionByTask.get(o2);
- if (p1 != null && p2 != null) {
- return p2.compareTo(p1);
- }
- return labelProvider.getText(o1).compareTo(labelProvider.getText(o2));
- }
-
- }
-
- /**
- * Integrates {@link FilteredItemsSelectionDialog} history management with Mylyn's task list activation history
- * <p>
- * Due to {@link SelectionHistory} use of memento-based history storage, many methods are overridden
- */
- private class TaskSelectionHistory extends SelectionHistory {
-
- @Override
- public synchronized void accessed(Object object) {
- // ignore, handled by TaskActivationHistory
- }
-
- @Override
- public synchronized boolean contains(Object object) {
- return history.contains(object);
- }
-
- @Override
- public synchronized Object[] getHistoryItems() {
- return history.toArray();
- }
-
- @Override
- public synchronized boolean isEmpty() {
- return history.isEmpty();
- }
-
- @Override
- public void load(IMemento memento) {
- // do nothing because tasklist history handles this
- }
-
- @Override
- public synchronized boolean remove(Object object) {
- taskActivationHistory.removeTask((ITask) object);
- return history.remove(object);
- }
-
- @Override
- protected Object restoreItemFromMemento(IMemento memento) {
- // do nothing because tasklist history handles this
- return null;
- }
-
- @Override
- public void save(IMemento memento) {
- // do nothing because tasklist history handles this
- }
-
- @Override
- protected void storeItemToMemento(Object item, IMemento memento) {
- // do nothing because tasklist history handles this
- }
- }
-
- /**
- * Supports filtering of completed tasks.
- */
- private class TasksFilter extends ItemsFilter {
-
- private Set<ITask> allTasksFromWorkingSets;
-
- /**
- * Stores the task containers from selected working set; empty, which can come from no working set selection or
- * working set with no task containers selected, means no filtering
- */
- private final Set<AbstractTaskContainer> elements;
-
- private final boolean showCompletedTasks;
-
- public TasksFilter(boolean showCompletedTasks, IWorkingSet selectedWorkingSet) {
- super(new SearchPattern());
- // Little hack to force always a match inside any part of task text
- patternMatcher.setPattern("*" + patternMatcher.getPattern()); //$NON-NLS-1$
- this.showCompletedTasks = showCompletedTasks;
-
- elements = new HashSet<AbstractTaskContainer>();
- if (selectedWorkingSet != null) {
- for (IAdaptable adaptable : selectedWorkingSet.getElements()) {
- AbstractTaskContainer container = (AbstractTaskContainer) adaptable.getAdapter(AbstractTaskContainer.class);
- if (container != null) {
- elements.add(container);
- }
- }
- }
- }
-
- @Override
- public boolean equalsFilter(ItemsFilter filter) {
- if (!super.equalsFilter(filter)) {
- return false;
- }
- if (filter instanceof TasksFilter) {
- TasksFilter tasksFilter = (TasksFilter) filter;
- if (showCompletedTasks != tasksFilter.showCompletedTasks) {
- return false;
- }
- return elements.equals(tasksFilter.elements);
- }
- return true;
- }
-
- @Override
- public boolean isConsistentItem(Object item) {
- return item instanceof ITask;
- }
-
- @Override
- public boolean isSubFilter(ItemsFilter filter) {
- if (!super.isSubFilter(filter)) {
- return false;
- }
- if (filter instanceof TasksFilter) {
- TasksFilter tasksFilter = (TasksFilter) filter;
- if (!showCompletedTasks && tasksFilter.showCompletedTasks) {
- return false;
- }
- if (elements.isEmpty()) {
- return true;
- }
- if (tasksFilter.elements.isEmpty()) {
- return false;
- }
- return elements.containsAll(tasksFilter.elements);
- }
- return true;
- }
-
- @Override
- public boolean matchItem(Object item) {
- if (!(item instanceof ITask)) {
- return false;
- }
- if (!showCompletedTasks && ((ITask) item).isCompleted()) {
- return false;
- }
- if (!elements.isEmpty()) {
- if (allTasksFromWorkingSets == null) {
- populateTasksFromWorkingSets();
- }
- if (!allTasksFromWorkingSets.contains(item)) {
- return false;
- }
- }
- return matches(labelProvider.getText(item));
- }
-
- private void populateTasksFromWorkingSets() {
- allTasksFromWorkingSets = new HashSet<ITask>(1000);
- for (ITaskContainer container : elements) {
- allTasksFromWorkingSets.addAll(container.getChildren());
- }
- }
- }
-
- private static final int SEARCH_ID = IDialogConstants.CLIENT_ID + 1;
-
- private static final int CREATE_ID = SEARCH_ID + 1;
-
- private static final String IS_USING_WINDOW_WORKING_SET_SETTING = "IsUsingWindowWorkingSet"; //$NON-NLS-1$
-
- private static final String OPEN_IN_BROWSER_SETTING = "OpenInBrowser"; //$NON-NLS-1$
-
- private static final String SHOW_COMPLETED_TASKS_SETTING = "ShowCompletedTasks"; //$NON-NLS-1$
-
- private static final String TASK_SELECTION_DIALOG_SECTION = "TaskSelectionDialogSection"; //$NON-NLS-1$
-
- private static final String WORKING_SET_NAME_SETTING = "WorkingSetName"; //$NON-NLS-1$
-
- /**
- * Caches all tasks; populated at first access
- */
- private Set<AbstractTask> allTasks;
-
- private Button createTaskButton;
-
- /**
- * Mylyn's task activation history
- */
- private final LinkedHashSet<AbstractTask> history;
-
- private final TaskHistoryItemsComparator itemsComparator;
-
- private final TaskElementLabelProvider labelProvider;
-
- private boolean needsCreateTask;
-
- private boolean openInBrowser;
-
- private Button openInBrowserCheck;
-
- /**
- * Set of filtered working sets
- */
- private IWorkingSet selectedWorkingSet;
-
- private boolean showCompletedTasks;
-
- private final ShowCompletedTasksAction showCompletedTasksAction;
-
- private boolean showExtendedOpeningOptions;
-
- /**
- * Caches the window working set
- */
- private final IWorkingSet windowWorkingSet;
-
- /**
- * Refilters if the current working set content has changed
- */
- private final IPropertyChangeListener workingSetListener = new IPropertyChangeListener() {
-
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE)) {
- if (event.getNewValue().equals(selectedWorkingSet)) {
- applyFilter();
- }
- }
- }
-
- };
-
- private final TaskActivationHistory taskActivationHistory;
-
- public TaskSelectionDialog(Shell parent) {
- super(parent);
- this.taskActivationHistory = TasksUiPlugin.getTaskActivityManager().getTaskActivationHistory();
- this.history = new LinkedHashSet<AbstractTask>(taskActivationHistory.getPreviousTasks());
- this.itemsComparator = new TaskHistoryItemsComparator(new ArrayList<AbstractTask>(history));
- this.needsCreateTask = true;
- this.labelProvider = new TaskElementLabelProvider(false);
- this.showCompletedTasksAction = new ShowCompletedTasksAction();
-
- setSelectionHistory(new TaskSelectionHistory());
- setListLabelProvider(labelProvider);
-
-// setListLabelProvider(new DecoratingLabelProvider(labelProvider, PlatformUI.getWorkbench()
-// .getDecoratorManager()
-// .getLabelDecorator()));
- setDetailsLabelProvider(new TaskDetailLabelProvider());
- setSeparatorLabel(TaskListView.LABEL_VIEW + Messages.TaskSelectionDialog__matches);
-
- // If there is a text selection, use it as the initial filter
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- ISelection selection = window.getSelectionService().getSelection();
- if (selection instanceof ITextSelection) {
- // Get only get first line
- String text = ((ITextSelection) selection).getText();
- int n = text.indexOf('\n');
- if (n > -1) {
- text.substring(0, n);
- }
- setInitialPattern(text);
- }
-
- windowWorkingSet = window.getActivePage().getAggregateWorkingSet();
- selectedWorkingSet = windowWorkingSet;
-
- PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(workingSetListener);
- }
-
- @Override
- public boolean close() {
- PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(workingSetListener);
- if (openInBrowserCheck != null) {
- openInBrowser = openInBrowserCheck.getSelection();
- }
- return super.close();
- }
-
- @Override
- protected Control createButtonBar(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 0; // create
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // create help control if needed
- if (isHelpAvailable()) {
- createHelpControl(composite);
- }
- if (needsCreateTask) {
- createTaskButton = createButton(composite, CREATE_ID, Messages.TaskSelectionDialog_New_Task_, true);
- createTaskButton.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
-
- public void widgetSelected(SelectionEvent e) {
- close();
- new NewTaskAction().run();
- }
- });
- }
-
- Label filler = new Label(composite, SWT.NONE);
- filler.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
- layout.numColumns++;
- super.createButtonsForButtonBar(composite); // cancel button
-
- return composite;
- }
-
- @Override
- protected Control createExtendedContentArea(Composite parent) {
- if (!showExtendedOpeningOptions) {
- return null;
- }
-
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(GridLayoutFactory.swtDefaults().margins(0, 5).create());
- composite.setLayoutData(GridDataFactory.fillDefaults().create());
-
- openInBrowserCheck = new Button(composite, SWT.CHECK);
- openInBrowserCheck.setText(Messages.TaskSelectionDialog_Open_with_Browser);
- openInBrowserCheck.setSelection(openInBrowser);
-
- ImageHyperlink openHyperlink = new ImageHyperlink(composite, SWT.NONE);
- openHyperlink.setText(TaskListFilteredTree.LABEL_SEARCH);
- openHyperlink.setForeground(CommonColors.HYPERLINK_WIDGET);
- openHyperlink.setUnderlined(true);
- openHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
-
- @Override
- public void linkActivated(HyperlinkEvent e) {
- getShell().close();
- new SearchDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow(), TaskSearchPage.ID).open();
- }
-
- });
-
- return composite;
- }
-
- @Override
- protected ItemsFilter createFilter() {
- return new TasksFilter(showCompletedTasks, selectedWorkingSet);
- }
-
- @Override
- protected void fillContentProvider(AbstractContentProvider contentProvider, ItemsFilter itemsFilter,
- IProgressMonitor progressMonitor) throws CoreException {
- progressMonitor.beginTask(Messages.TaskSelectionDialog_Search_for_tasks, 100);
-
- if (allTasks == null) {
- allTasks = new HashSet<AbstractTask>();
- TaskList taskList = TasksUiPlugin.getTaskList();
- allTasks.addAll(taskList.getAllTasks());
- }
- progressMonitor.worked(10);
-
- SubProgressMonitor subMonitor = new SubProgressMonitor(progressMonitor, 90);
- subMonitor.beginTask(Messages.TaskSelectionDialog_Scanning_tasks, allTasks.size());
- for (ITask task : allTasks) {
- contentProvider.add(task, itemsFilter);
- subMonitor.worked(1);
- }
- subMonitor.done();
-
- progressMonitor.done();
- }
-
- @Override
- protected void fillViewMenu(IMenuManager menuManager) {
- super.fillViewMenu(menuManager);
- menuManager.add(showCompletedTasksAction);
- menuManager.add(new Separator());
-
- // Fill existing tasks working sets
- menuManager.add(new SelectWorkingSetAction());
- final DeselectWorkingSetAction deselectAction = new DeselectWorkingSetAction();
- menuManager.add(deselectAction);
- final EditWorkingSetAction editAction = new EditWorkingSetAction();
- menuManager.add(editAction);
- menuManager.add(new Separator("lruActions")); //$NON-NLS-1$
- final FilterWorkingSetAction windowWorkingSetAction = new FilterWorkingSetAction(windowWorkingSet, 1);
- menuManager.add(windowWorkingSetAction);
-
- menuManager.addMenuListener(new IMenuListener() {
-
- private final List<ActionContributionItem> lruActions = new ArrayList<ActionContributionItem>();
-
- public void menuAboutToShow(IMenuManager manager) {
- deselectAction.setEnabled(selectedWorkingSet != null);
- editAction.setEnabled(selectedWorkingSet != null && selectedWorkingSet.isEditable());
-
- // Remove previous LRU actions
- for (ActionContributionItem action : lruActions) {
- manager.remove(action);
- }
- lruActions.clear();
-
- // Adds actual LRU actions
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getRecentWorkingSets();
- Arrays.sort(workingSets, new WorkingSetLabelComparator());
- int count = 2;
- for (IWorkingSet workingSet : workingSets) {
- if (workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- IAction action = new FilterWorkingSetAction(workingSet, count++);
- if (workingSet.equals(selectedWorkingSet)) {
- action.setChecked(true);
- }
- ActionContributionItem ci = new ActionContributionItem(action);
- lruActions.add(ci);
- manager.appendToGroup("lruActions", ci); //$NON-NLS-1$
- }
- }
- windowWorkingSetAction.setChecked(windowWorkingSet.equals(selectedWorkingSet));
- }
-
- });
- }
-
- @Override
- protected IDialogSettings getDialogSettings() {
- IDialogSettings settings = TasksUiPlugin.getDefault().getDialogSettings();
- IDialogSettings section = settings.getSection(TASK_SELECTION_DIALOG_SECTION);
- if (section == null) {
- section = settings.addNewSection(TASK_SELECTION_DIALOG_SECTION);
- section.put(OPEN_IN_BROWSER_SETTING, false);
- section.put(SHOW_COMPLETED_TASKS_SETTING, true);
- section.put(IS_USING_WINDOW_WORKING_SET_SETTING, true);
- section.put(WORKING_SET_NAME_SETTING, ""); //$NON-NLS-1$
- }
- return section;
- }
-
- @Override
- public String getElementName(Object item) {
- return labelProvider.getText(item);
- }
-
- /**
- * Sort tasks by summary
- */
- @SuppressWarnings("unchecked")
- @Override
- protected Comparator getItemsComparator() {
- return itemsComparator;
- }
-
- public boolean getOpenInBrowser() {
- return openInBrowser;
- }
-
- public boolean getShowExtendedOpeningOptions() {
- return showExtendedOpeningOptions;
- }
-
- public boolean needsCreateTask() {
- return needsCreateTask;
- }
-
- @Override
- protected void restoreDialog(IDialogSettings settings) {
- openInBrowser = settings.getBoolean(OPEN_IN_BROWSER_SETTING);
- showCompletedTasks = settings.getBoolean(SHOW_COMPLETED_TASKS_SETTING);
- showCompletedTasksAction.setChecked(showCompletedTasks);
- boolean isUsingWindowWorkingSet = settings.getBoolean(IS_USING_WINDOW_WORKING_SET_SETTING);
- if (isUsingWindowWorkingSet) {
- selectedWorkingSet = windowWorkingSet;
- } else {
- String workingSetName = settings.get(WORKING_SET_NAME_SETTING);
- if (workingSetName != null) {
- selectedWorkingSet = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(workingSetName);
- }
- }
- super.restoreDialog(settings);
- }
-
- public void setNeedsCreateTask(boolean value) {
- needsCreateTask = value;
- }
-
- public void setOpenInBrowser(boolean openInBrowser) {
- this.openInBrowser = openInBrowser;
- }
-
- /**
- * All working set filter changes should be made through this method; ensures proper history handling and triggers
- * refiltering
- */
- private void setSelectedWorkingSet(IWorkingSet workingSet) {
- selectedWorkingSet = workingSet;
- if (workingSet != null) {
- PlatformUI.getWorkbench().getWorkingSetManager().addRecentWorkingSet(workingSet);
- }
- applyFilter();
- }
-
- public void setShowExtendedOpeningOptions(boolean showExtendedOpeningOptions) {
- this.showExtendedOpeningOptions = showExtendedOpeningOptions;
- }
-
- @Override
- protected void storeDialog(IDialogSettings settings) {
- settings.put(OPEN_IN_BROWSER_SETTING, openInBrowser);
- settings.put(SHOW_COMPLETED_TASKS_SETTING, showCompletedTasks);
- settings.put(IS_USING_WINDOW_WORKING_SET_SETTING, selectedWorkingSet == windowWorkingSet);
- if (selectedWorkingSet == null) {
- settings.put(WORKING_SET_NAME_SETTING, ""); //$NON-NLS-1$
- } else {
- settings.put(WORKING_SET_NAME_SETTING, selectedWorkingSet.getName());
- }
- super.storeDialog(settings);
- }
-
- @Override
- protected IStatus validateItem(Object item) {
- if (item instanceof ITask) {
- return Status.OK_STATUS;
- }
- return new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, Messages.TaskSelectionDialog_Selected_item_is_not_a_task);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java
deleted file mode 100644
index 59b9ab889..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.actions;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.tasks.ui.dialogs.AbstractWorkingSetDialogCOPY;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetEditWizard;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkingSetComparator;
-import org.eclipse.ui.internal.dialogs.WorkingSetFilter;
-import org.eclipse.ui.internal.dialogs.WorkingSetLabelProvider;
-
-/**
- * Derived from SelectWorkingSetsAction
- *
- * @author Leo Dos Santos
- * @author Mik Kersten
- */
-public class TaskWorkingSetAction extends Action implements IMenuCreator {
-
- public static final String LABEL_SETS_NONE = Messages.TaskWorkingSetAction_All;
-
- private Menu dropDownMenu;
-
- public TaskWorkingSetAction() {
- setText(Messages.TaskWorkingSetAction_Sets);
- setToolTipText(Messages.TaskWorkingSetAction_Select_and_Edit_Working_Sets);
- setImageDescriptor(TasksUiImages.TASK_WORKING_SET);
- setEnabled(true);
- setMenuCreator(this);
- }
-
- public void dispose() {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- dropDownMenu = null;
- }
- }
-
- public Menu getMenu(Control parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- public Menu getMenu(Menu parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- @SuppressWarnings("unchecked")
- private void addActionsToMenu() {
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
-
- if (doTaskWorkingSetsExist()) {
- ActionContributionItem itemAll = new ActionContributionItem(new ToggleAllWorkingSetsAction());
-// ActionContributionItem itemNone = new ActionContributionItem(new ToggleNoWorkingSetsAction());
-
- List<IWorkingSet> sortedWorkingSets = Arrays.asList(workingSets);
- Collections.sort(sortedWorkingSets, new WorkingSetComparator());
-
- Iterator<IWorkingSet> iter = sortedWorkingSets.iterator();
- while (iter.hasNext()) {
- IWorkingSet workingSet = iter.next();
- if (workingSet != null
- && workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- ActionContributionItem itemSet = new ActionContributionItem(new ToggleWorkingSetAction(workingSet));
- itemSet.fill(dropDownMenu, -1);
- }
- }
-
- Separator separator = new Separator();
- separator.fill(dropDownMenu, -1);
- itemAll.fill(dropDownMenu, -1);
- }
-
- ActionContributionItem editItem = new ActionContributionItem(new ManageWorkingSetsAction());
- editItem.fill(dropDownMenu, -1);
- }
-
- private boolean doTaskWorkingSetsExist() {
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (IWorkingSet workingSet : workingSets) {
- if (workingSet != null && workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public void run() {
- String[] ids = new String[1];
- ids[0] = TaskWorkingSetUpdater.ID_TASK_WORKING_SET;
- ConfigureWindowWorkingSetsDialog dialog = new ConfigureWindowWorkingSetsDialog(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow(), ids);
- dialog.open();
- }
-
- public void run(IAction action) {
- this.run();
- }
-
- public void run(IWorkingSet editWorkingSet) {
- IWorkingSetManager manager = WorkbenchPlugin.getDefault().getWorkingSetManager();
- IWorkingSetEditWizard wizard = manager.createWorkingSetEditWizard(editWorkingSet);
- WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
-
-// dialog.create();
- dialog.open();
-// PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
-// IWorkbenchHelpContextIds.WORKING_SET_EDIT_WIZARD);
-// if (dialog.open() == Window.OK) {
-// editWorkingSet = wizard.getSelection();
-// availableWorkingSetsChanged();
-// // make sure ok button is enabled when the selected working set
-// // is edited. Fixes bug 33386.
-// updateButtonAvailability();
-// }
-// editedWorkingSets.put(editWorkingSet, originalWorkingSet);
- }
-
- private class ManageWorkingSetsAction extends Action {
- ManageWorkingSetsAction() {
- super(Messages.TaskWorkingSetAction_Edit_Label);
- }
-
- @Override
- public void run() {
- TaskWorkingSetAction.this.run(this);
- }
- }
-
- // TODO: remove?
- protected class ToggleEnableAllSetsAction extends Action {
-
- ToggleEnableAllSetsAction() {
- super(Messages.TaskWorkingSetAction_Deselect_All, IAction.AS_CHECK_BOX);
-// setImageDescriptor(TasksUiImages.TASK_WORKING_SET);
-// setChecked(!areAllTaskWorkingSetsEnabled());
- }
-
- @Override
- public void runWithEvent(Event event) {
- Set<IWorkingSet> newList = new HashSet<IWorkingSet>(Arrays.asList(TaskWorkingSetUpdater.getEnabledSets()));
-
- Set<IWorkingSet> tempList = new HashSet<IWorkingSet>();
- Iterator<IWorkingSet> iter = newList.iterator();
- while (iter.hasNext()) {
- IWorkingSet workingSet = iter.next();
- if (workingSet != null
- && workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- tempList.add(workingSet);
- }
- }
- newList.removeAll(tempList);
-
- if (isChecked()) {
- IWorkingSet[] allWorkingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (IWorkingSet workingSet : allWorkingSets) {
- if (workingSet != null
- && workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- newList.add(workingSet);
- }
- }
- }
-
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(newList);
- }
-
- }
-
- class ConfigureWindowWorkingSetsDialog extends AbstractWorkingSetDialogCOPY {
-
- private final static int SIZING_SELECTION_WIDGET_HEIGHT = 200;
-
- private final static int SIZING_SELECTION_WIDGET_WIDTH = 50;
-
- private final IWorkbenchWindow window;
-
- private CheckboxTableViewer viewer;
-
- private Set<String> taskWorkingSetIds;
-
- protected ConfigureWindowWorkingSetsDialog(IWorkbenchWindow window, String[] workingSetIds) {
- super(window.getShell(), workingSetIds, true);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- this.window = window;
- //setTitle(WorkbenchMessages.WorkingSetSelectionDialog_title_multiSelect);
- setTitle(Messages.TaskWorkingSetAction_Select_and_Edit_Working_Sets);
- setMessage(""); //$NON-NLS-1$
-
- if (workingSetIds == null || workingSetIds.length == 0) {
- taskWorkingSetIds = null;
- } else {
- taskWorkingSetIds = new HashSet<String>();
- for (String id : workingSetIds) {
- taskWorkingSetIds.add(id);
- }
- }
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- initializeDialogUnits(parent);
-
- Composite composite = (Composite) super.createDialogArea(parent);
-
- Composite viewerComposite = new Composite(composite, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = layout.marginWidth = 0;
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- viewerComposite.setLayout(layout);
-
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
- data.widthHint = SIZING_SELECTION_WIDGET_WIDTH + 300; // fudge? I like fudge.
- viewerComposite.setLayoutData(data);
-
- viewer = CheckboxTableViewer.newCheckList(viewerComposite, SWT.BORDER);
- viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
- viewer.setLabelProvider(new WorkingSetLabelProvider());
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.addFilter(new WorkingSetFilter(taskWorkingSetIds));
- viewer.setInput(window.getWorkbench().getWorkingSetManager().getWorkingSets());
-
- viewer.setCheckedElements(TaskWorkingSetUpdater.getActiveWorkingSets(window).toArray());
-
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- handleSelectionChanged();
- }
- });
-
- data = new GridData(GridData.FILL_BOTH);
- data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
- data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
-
- viewer.getControl().setLayoutData(data);
- addModifyButtons(viewerComposite);
-
- addSelectionButtons(composite);
-
- availableWorkingSetsChanged();
-
- Dialog.applyDialogFont(composite);
-
- return composite;
- }
-
- @Override
- protected void okPressed() {
- Set<IWorkingSet> newList = new HashSet<IWorkingSet>(Arrays.asList(TaskWorkingSetUpdater.getEnabledSets()));
- Set<IWorkingSet> tempList = new HashSet<IWorkingSet>();
- for (IWorkingSet workingSet : newList) {
- for (String id : taskWorkingSetIds) {
- if (workingSet.getId().equalsIgnoreCase(id)) {
- tempList.add(workingSet);
- }
- }
- }
- newList.removeAll(tempList);
-
- Object[] selection = viewer.getCheckedElements();
- IWorkingSet[] setsToEnable = new IWorkingSet[selection.length];
- System.arraycopy(selection, 0, setsToEnable, 0, selection.length);
- newList.addAll(new HashSet<IWorkingSet>(Arrays.asList(setsToEnable)));
-
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(newList);
- super.okPressed();
- }
-
- @Override
- protected List<?> getSelectedWorkingSets() {
- ISelection selection = viewer.getSelection();
- if (selection instanceof IStructuredSelection) {
- return ((IStructuredSelection) selection).toList();
- }
- return null;
- }
-
- @Override
- protected void availableWorkingSetsChanged() {
- viewer.setInput(window.getWorkbench().getWorkingSetManager().getWorkingSets());
- super.availableWorkingSetsChanged();
- }
-
- /**
- * Called when the selection has changed.
- */
- void handleSelectionChanged() {
- updateButtonAvailability();
- }
-
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- }
-
- @Override
- protected void selectAllSets() {
- viewer.setCheckedElements(window.getWorkbench().getWorkingSetManager().getWorkingSets());
- updateButtonAvailability();
- }
-
- @Override
- protected void deselectAllSets() {
- viewer.setCheckedElements(new Object[0]);
- updateButtonAvailability();
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleAllWorkingSetsAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleAllWorkingSetsAction.java
deleted file mode 100644
index 2f8f69d6e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleAllWorkingSetsAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IWorkingSet;
-
-/**
- * @author Mik Kersten
- */
-public class ToggleAllWorkingSetsAction extends Action {
-
- public ToggleAllWorkingSetsAction() {
- super(Messages.ToggleAllWorkingSetsAction_Show_All, IAction.AS_CHECK_BOX);
- super.setChecked(TaskWorkingSetUpdater.areNoTaskWorkingSetsEnabled());
- }
-
- @Override
- public void run() {
- Set<IWorkingSet> newList = new HashSet<IWorkingSet>(Arrays.asList(TaskWorkingSetUpdater.getEnabledSets()));
-
- Set<IWorkingSet> tempList = new HashSet<IWorkingSet>();
- Iterator<IWorkingSet> iter = newList.iterator();
- while (iter.hasNext()) {
- IWorkingSet workingSet = iter.next();
- if (workingSet != null && workingSet.getId() != null
- && workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- tempList.add(workingSet);
- }
- }
- newList.removeAll(tempList);
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(newList);
- }
-
- @Override
- public void runWithEvent(Event event) {
- run();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleTaskActivationAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleTaskActivationAction.java
deleted file mode 100644
index f049297c8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleTaskActivationAction.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.core.runtime.Assert;
-import org.eclipse.jface.action.Action;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivationListener;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-
-/**
- * @author Mik Kersten
- */
-public class ToggleTaskActivationAction extends Action implements ITaskActivationListener {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.task.activation.toggle"; //$NON-NLS-1$
-
- private final ITask task;
-
- /**
- * @param task
- * cannot be null
- * @param toolBarManager
- * cannot be null
- */
- public ToggleTaskActivationAction(ITask task) {
- Assert.isNotNull(task);
- this.task = task;
- setId(ID);
- setImageDescriptor(TasksUiImages.CONTEXT_ACTIVE_CENTERED);
- update();
- TasksUi.getTaskActivityManager().addActivationListener(this);
- }
-
- public void dispose() {
- TasksUi.getTaskActivityManager().removeActivationListener(this);
- }
-
- private void update() {
- setChecked(task.isActive());
- if (task.isActive()) {
- setText(Messages.ToggleTaskActivationAction_Deactivate_Task);
- setToolTipText(Messages.ToggleTaskActivationAction_Deactivate_Task);
- } else {
- setText(Messages.ToggleTaskActivationAction_Activate_Task);
- setToolTipText(Messages.ToggleTaskActivationAction_Activate_Task);
- }
- }
-
- @Override
- public void run() {
- if (!task.isActive()) {
- TasksUi.getTaskActivityManager().activateTask(task);
- } else {
- TasksUi.getTaskActivityManager().deactivateTask(task);
- }
- update();
- }
-
- public void taskActivated(ITask task) {
- update();
- }
-
- public void taskDeactivated(ITask task) {
- update();
- }
-
- public void preTaskActivated(ITask task) {
- // ignore
- }
-
- public void preTaskDeactivated(ITask task) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleWorkingSetAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleWorkingSetAction.java
deleted file mode 100644
index 04970e1a4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ToggleWorkingSetAction.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IWorkingSet;
-
-/**
- * @author Mik Kersten
- */
-public class ToggleWorkingSetAction extends Action {
-
- private final IWorkingSet workingSet;
-
- public ToggleWorkingSetAction(IWorkingSet set) {
- super(set.getLabel(), IAction.AS_CHECK_BOX);
- setImageDescriptor(set.getImageDescriptor());
- this.workingSet = set;
- setChecked(TaskWorkingSetUpdater.isWorkingSetEnabled(set));
- }
-
- @Override
- public void run() {
- runWithEvent(null);
- }
-
- @Override
- public void runWithEvent(Event event) {
- Set<IWorkingSet> newList = new HashSet<IWorkingSet>(Arrays.asList(TaskWorkingSetUpdater.getEnabledSets()));
-
- boolean modified = false;
- if (event != null) {
- modified = (event.stateMask & KeyLookupFactory.getDefault().formalModifierLookup(IKeyLookup.M1_NAME)) != 0;
- }
-
- if (!modified) {
- // Default behavior is to act as a radio button.
- Set<IWorkingSet> tempList = new HashSet<IWorkingSet>();
- Iterator<IWorkingSet> iter = newList.iterator();
- while (iter.hasNext()) {
- IWorkingSet workingSet = iter.next();
- if (workingSet != null && workingSet.getId() != null
- && workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- tempList.add(workingSet);
- }
- }
- newList.removeAll(tempList);
-
- if (isChecked()) {
- newList.add(workingSet);
- } else {
- // If multiples were previously selected, make this action active
- if (!TaskWorkingSetUpdater.isOnlyTaskWorkingSetEnabled(workingSet)) {
- newList.add(workingSet);
- }
- }
- } else {
- // If modifier key is pressed, de/selections are additive.
- if (isChecked()) {
- newList.add(workingSet);
- } else {
- newList.remove(workingSet);
- }
- }
-
- TaskWorkingSetUpdater.applyWorkingSetsToAllWindows(newList);
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties
deleted file mode 100644
index ffbc4a6e6..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties
+++ /dev/null
@@ -1,157 +0,0 @@
-AbstractChangeCompletionAction_Mark_selected_local_tasks_X=Mark selected local tasks {0}?
-ActivateTaskDialogAction_Activate_Task=Activate Task
-ActivateTaskDialogAction_Select_a_task_to_activate__=&Select a task to activate (? = any character, * = any String):
-
-ActivateTaskHistoryDropDownAction_Activate_Previous_Task=Activate Previous Task
-
-AddRepositoryAction_Add_new_query=Add new query
-
-AddRepositoryAction_Add_a_query_to_the_Task_List=Would you like to add a query to the Task List for this repository?
-AddRepositoryAction_Add_Task_Repository=Add Task Repository...
-AddRepositoryAction_Do_not_show_again=Do not show again
-
-ClearOutgoingAction_Clear_outgoing=Clear outgoing
-ClearOutgoingAction_Clear_outgoing_failed=Clear outgoing failed
-ClearOutgoingAction_Confirm_discard=Confirm discard
-ClearOutgoingAction_Discard_all_outgoing_changes_=Discard all outgoing changes?
-
-CloneTaskAction_Clone_Task_Failed=Clone Task Failed
-CloneTaskAction_Clone_This_Task=Clone This Task
-CloneTaskAction_Cloned_from_=Cloned from\:\
-
-CollapseAllAction_Collapse_All=Collapse All
-
-CompareAttachmentsAction_Compare__=Compare (
-CompareAttachmentsAction_Compare_Attachments=Compare Attachments
-CompareAttachmentsAction_Failed_to_find_attachment=Failed to find attachment\:\
-
-CopyCommentDetailsAction_Copy_User_ID=Copy User ID
-CopyCommentDetailsAction_Copy_User_ID_Tooltip=Copy User ID of Comment Author to Clipboard
-CopyTaskDetailsAction_Copy_Details=Copy Details
-
-DeleteAction_Confirm_Delete=Confirm Delete
-DeleteAction_Delete=Delete
-DeleteAction_Delete_all_of_the_unsubmitted_tasks=Delete all of the unsubmitted tasks?
-DeleteAction_Delete_the_elements_listed_below=Delete the elements listed below? If categories or queries are selected contained tasks will not be deleted. Contexts will be deleted for selected tasks.
-DeleteAction_Delete_failed=Delete failed
-DeleteAction_Delete_in_progress=Deleting task list elements
-DeleteAction_Delete_the_planning_information_and_context_for_the_repository_task=Delete the planning information and context for the repository task? The server copy will not be deleted and the task will remain in queries that match it.
-DeleteAction_Delete_the_planning_information_and_context_of_all_unmatched_tasks=Delete the planning information and context of all unmatched tasks? The server copy of these tasks will not be deleted and the task will remain in queries that match it.
-DeleteAction_Nothing_selected=Nothing selected.
-DeleteAction_Permanently_delete_the_category=Permanently delete the category? Local tasks will be moved to the Uncategorized folder. Repository tasks will be moved to the Unmatched folder.
-DeleteAction_Permanently_delete_the_element_listed_below=Permanently delete the element listed below?
-DeleteAction_Permanently_delete_the_query=Permanently delete the query? Contained tasks will be moved to the Unmatched folder.
-DeleteAction_Permanently_delete_the_task_listed_below=Permanently delete the task listed below?
-
-
-DeleteTaskRepositoryAction_Confirm_Delete=Confirm Delete
-DeleteTaskRepositoryAction_Delete_Specific_Task_Repository=Are you sure you want to delete task repository "{0}"?
-DeleteTaskRepositoryAction_Delete_Repository=Delete Repository
-DeleteTaskRepositoryAction_Delete_Repository_In_Progress=Deleting repository and related artifacts
-DeleteTaskRepositoryAction_Delete_the_selected_task_repositories=This repository is being used by {0} tasks and {1} queries. Do you wish to delete the repository, tasks, and queries?
-DeleteTaskRepositoryAction_Delete_Task_Repository_Failed=Delete Task Repository Failed
-
-EditRepositoryPropertiesAction_Properties=Properties
-
-ExpandAllAction_Expand_All=Expand All
-ExportAction_Dialog_Title=Task List Export
-ExportAction_Nothing_selected=Nothing selected.
-ExportAction_Problems_encountered=Problems encountered during export. See error log for details.
-ExportAction_X_exists_Do_you_wish_to_overwrite={0} exists. Do you wish to overwrite?
-
-FilterCompletedTasksAction_Filter_Completed_Tasks=Filter Completed Tasks
-
-GoIntoAction_Go_Into=Go Into
-
-GoUpAction_Go_Up_To_Root=Go Up To Root
-
-GroupSubTasksAction_Group_Subtasks=Group Subtasks
-ImportAction_Dialog_Title=Task List Import
-ImportAction_Problems_encountered=Problems encountered during importing. See error log for details
-
-LinkWithEditorAction_Link_with_Editor=&Link with Editor
-
-NewCategoryAction_A_category_with_this_name_already_exists=A category with this name already exists, please choose another name.
-NewCategoryAction_Enter_name=Enter name
-NewCategoryAction_Enter_a_name_for_the_Category=Enter a name for the Category\:\
-NewCategoryAction_New_Category=New Category
-NewCategoryAction_New_Category_=New Category...
-NewCategoryAction_A_query_with_this_name_already_exists=A query with this name already exists, please choose another name.
-NewQueryAction_new_query_=New Query...
-
-NewSubTaskAction_The_connector_does_not_support_creating_subtasks_for_this_task=The connector does not support creating subtasks for this task
-NewSubTaskAction_Could_not_initialize_sub_task_data_for_task_=Could not initialize sub task data for task\:\
-NewSubTaskAction_Could_not_retrieve_task_data_for_task_=Could not retrieve task data for task:
-NewSubTaskAction_Create_a_new_subtask=Create a new subtask
-NewSubTaskAction_Failed_to_create_new_sub_task_=Failed to create new sub task:
-NewSubTaskAction_Subtask=Subtask
-NewSubTaskAction_Unable_to_create_subtask=Unable to create subtask
-
-NewTaskAction_new_task=New Task
-NewTaskFromSelectionAction_Comment_=Comment\:\
-NewTaskFromSelectionAction____Created_from_Comment___=-- Created from Comment --
-NewTaskFromSelectionAction_New_Task_from_Selection=New Task from Selection
-NewTaskFromSelectionAction_Nothing_selected_to_create_task_from=Nothing selected to create task from.
-NewTaskFromSelectionAction_URL_=URL\:\
-
-OpenRepositoryTask_Could_not_find_matching_repository_task=Could not find matching repository task.
-OpenRepositoryTask_Open_Repository_Task=Open Repository Task
-OpenRepositoryTask_Open_Task=Open Task
-
-OpenTaskAction_Open_Task=Open Task
-OpenTaskAction_Select_a_task_to_open__=&Select a task to open (? = any character, * = any String)\:
-
-OpenTaskListElementAction_Open=Open
-OpenTaskListElementAction_Open_Task_List_Element=Open Task List Element
-
-OpenTasksUiPreferencesAction_Preferences_=Preferences...
-
-OpenWithBrowserAction_Open_with_Browser=Open with Browser
-
-PresentationDropDownSelectionAction_Task_Presentation=Task Presentation
-
-QueryCloneAction_Clone_Query=Clone Query
-QueryCloneAction_Copy_of_X=Copy of {0}
-QueryCloneAction_No_query_selected=No query selected.
-
-RefreshRepositoryTasksAction_Refresh_All_Tasks=Refresh All Tasks
-
-RemoveFromCategoryAction_Remove_From_Category=Remove From Category
-
-RenameAction_Rename=Rename
-
-ShowInSearchViewAction_Open_in_Search_Label=Open in Search
-ShowInTaskListAction_Show_In_Task_List=&Show In Task List
-
-SynchronizeAutomaticallyAction_Synchronize_Automatically=Synchronize Automatically
-
-SynchronizeEditorAction_Synchronize=Synchronize
-SynchronizeEditorAction_Synchronize_Incoming_Changes=Synchronize Incoming Changes
-
-TaskActivateAction_Activate=Activate
-
-TaskDeactivateAction_Deactivate=Deactivate
-
-TaskListSortAction_Sort_=Sort...
-
-TaskSelectionDialog__matches=\ matches
-TaskSelectionDialog_Deselect_Working_Set=&Deselect Working Set
-TaskSelectionDialog_Edit_Active_Working_Set_=&Edit Active Working Set...
-TaskSelectionDialog_New_Task_=&New Task...
-TaskSelectionDialog_Open_with_Browser=Open with &Browser
-TaskSelectionDialog_Scanning_tasks=Scanning tasks
-TaskSelectionDialog_Search_for_tasks=Search for tasks
-TaskSelectionDialog_Select_Working_Set_=Select &Working Set...
-TaskSelectionDialog_Selected_item_is_not_a_task=Selected item is not a task
-TaskSelectionDialog_Show_Completed_Tasks=Show &Completed Tasks
-
-TaskWorkingSetAction_All=All
-TaskWorkingSetAction_Deselect_All=Deselect All
-TaskWorkingSetAction_Edit_Label=&Edit...
-TaskWorkingSetAction_Select_and_Edit_Working_Sets=Select and Edit Working Sets
-TaskWorkingSetAction_Sets=Sets
-
-ToggleAllWorkingSetsAction_Show_All=Show All
-
-ToggleTaskActivationAction_Activate_Task=Activate Task
-ToggleTaskActivationAction_Deactivate_Task=Deactivate Task
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java
deleted file mode 100644
index 39666096b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class AbstractTaskHandler extends AbstractHandler {
-
- protected boolean recurse;
-
- public AbstractTaskHandler() {
- }
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof IStructuredSelection) {
- Object[] items = ((IStructuredSelection) selection).toArray();
- for (Object item : items) {
- process(event, item, recurse);
- }
- }
- return null;
- }
-
- private void process(ExecutionEvent event, Object item, boolean recurse) throws ExecutionException {
- if (item instanceof ITask) {
- execute(event, (ITask) item);
- }
- if (item instanceof ITaskContainer && (recurse || !(item instanceof AbstractTask))) {
- execute(event, (ITaskContainer) item);
- }
- }
-
- protected void execute(ExecutionEvent event, ITaskContainer item) throws ExecutionException {
- for (ITask task : item.getChildren()) {
- process(event, task, true);
- }
- }
-
- protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskListViewHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskListViewHandler.java
deleted file mode 100644
index 7f833b34d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskListViewHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import java.util.Iterator;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class AbstractTaskListViewHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchSite site = HandlerUtil.getActiveSite(event);
- if (site instanceof IViewSite) {
- IViewSite viewSite = (IViewSite) site;
- IWorkbenchPart part = viewSite.getPart();
- if (part instanceof TaskListView) {
- TaskListView taskListView = (TaskListView) part;
- execute(event, taskListView);
- }
- }
- return null;
- }
-
- protected void execute(ExecutionEvent event, TaskListView taskListView) throws ExecutionException {
- ITreeSelection selection = (ITreeSelection) taskListView.getViewer().getSelection();
- for (Iterator<?> it = selection.iterator(); it.hasNext();) {
- Object item = it.next();
- if (item instanceof IRepositoryElement) {
- execute(event, taskListView, (IRepositoryElement) item);
- }
- }
- }
-
- protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item)
- throws ExecutionException {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AddTaskRepositoryHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AddTaskRepositoryHandler.java
deleted file mode 100644
index 4217f8149..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AddTaskRepositoryHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Tasktop Technologies - improvements
- * Peter Stibrany - fix for parameter name (bug 247077)
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewRepositoryWizard;
-import org.eclipse.mylyn.tasks.ui.wizards.TaskRepositoryWizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Displays a wizard dialog for adding a new task repository.
- *
- * @author Willian Mitsuda
- * @author Steffen Pingel
- */
-public class AddTaskRepositoryHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- Shell shell = HandlerUtil.getActiveShell(event);
- if (shell != null && !shell.isDisposed()) {
- String connectorKind = event.getParameter("connectorKind"); //$NON-NLS-1$
- NewRepositoryWizard repositoryWizard = new NewRepositoryWizard(connectorKind);
-
- WizardDialog repositoryDialog = new TaskRepositoryWizardDialog(shell, repositoryWizard);
- repositoryDialog.create();
- repositoryDialog.getShell().setText(Messages.AddTaskRepositoryHandler_Add_Task_Repository);
- repositoryDialog.setBlockOnOpen(true);
- repositoryDialog.open();
- if (repositoryDialog.getReturnCode() == Window.OK) {
- return repositoryWizard.getTaskRepository();
- }
- }
-
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/CollapseAllHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/CollapseAllHandler.java
deleted file mode 100644
index 0aed92281..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/CollapseAllHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-
-/**
- * @author Steffen Pingel
- */
-// TODO e3.4 replace with org.eclipse.ui.handlers.CollapseAllHandler
-public class CollapseAllHandler extends AbstractHandler {
-
- public static final String ID_COMMAND = "org.eclipse.ui.navigate.collapseAll"; //$NON-NLS-1$
-
- private final AbstractTreeViewer treeViewer;
-
- public CollapseAllHandler(AbstractTreeViewer treeViewer) {
- Assert.isNotNull(treeViewer);
- this.treeViewer = treeViewer;
- }
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- treeViewer.collapseAll();
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/GoToUnreadTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/GoToUnreadTaskHandler.java
deleted file mode 100644
index 1723ac970..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/GoToUnreadTaskHandler.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker;
-import org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker.Direction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker.TreeVisitor;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class GoToUnreadTaskHandler extends AbstractTaskListViewHandler {
-
- public static final String ID_NEXT = "org.eclipse.mylyn.tasklist.actions.goToNextUnread"; //$NON-NLS-1$
-
- public static final String ID_PREVIOUS = "org.eclipse.mylyn.tasklist.actions.goToPreviousUnread"; //$NON-NLS-1$
-
- private Direction direction = Direction.DOWN;
-
- public Direction getDirection() {
- return direction;
- }
-
- private TreePath getUnreadItem(TreeViewer treeViewer, Tree tree) {
- TreeItem[] selection = tree.getSelection();
- TreeItem selectedItem = (selection.length > 0) ? selection[0] : null;
-
- TreeVisitor visitor = new TreeVisitor() {
- @Override
- public boolean visit(Object object) {
- if (object instanceof ITask) {
- ITask task = (ITask) object;
- if (task.getSynchronizationState().isIncoming()) {
- return true;
- }
- }
- return false;
- }
- };
-
- TreeWalker treeWalker = new TreeWalker(treeViewer);
- treeWalker.setDirection(direction);
- treeWalker.setExpandNodes(true);
- return treeWalker.walk(visitor, selectedItem);
- }
-
- @Override
- protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item) {
- TreeViewer treeViewer = taskListView.getViewer();
- Tree tree = treeViewer.getTree();
-
- // need to expand nodes to traverse the tree, disable redraw to avoid flickering
- TreePath treePath = null;
- try {
- tree.setRedraw(false);
- treePath = getUnreadItem(treeViewer, tree);
- } finally {
- tree.setRedraw(true);
- }
-
- if (treePath != null) {
- treeViewer.expandToLevel(treePath, 0);
- treeViewer.setSelection(new TreeSelection(treePath), true);
- }
- }
-
- public void setDirection(Direction direction) {
- this.direction = direction;
- }
-
- public static void execute(ExecutionEvent event, Direction direction) throws ExecutionException {
- GoToUnreadTaskHandler handler = new GoToUnreadTaskHandler() {
- };
- handler.setDirection(direction);
- handler.execute(event);
- }
-
- public static class GoToNextUnreadTaskHandler extends GoToUnreadTaskHandler {
-
- public GoToNextUnreadTaskHandler() {
- setDirection(Direction.DOWN);
- }
-
- }
-
- public static class GoToPreviousUnreadTaskHandler extends GoToUnreadTaskHandler {
-
- public GoToPreviousUnreadTaskHandler() {
- setDirection(Direction.UP);
- }
-
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java
deleted file mode 100644
index 57e024d94..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import java.util.Collections;
-import java.util.Date;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ClearOutgoingAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class MarkTaskHandler extends AbstractTaskHandler {
-
- public static class ClearOutgoingHandler extends AbstractTaskHandler {
- @Override
- protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
- ClearOutgoingAction action = new ClearOutgoingAction(Collections.singletonList((IRepositoryElement) task));
- if (action.isEnabled()) {
- action.run();
- }
- }
- }
-
- public static class MarkTaskCompleteHandler extends AbstractTaskHandler {
-
- public static final String ID_COMMAND = "org.eclipse.mylyn.tasks.ui.command.markTaskComplete"; //$NON-NLS-1$
-
- @Override
- protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
- if (TasksUiInternal.hasLocalCompletionState(task)) {
- task.setCompletionDate(new Date());
- TasksUiPlugin.getTaskList().notifyElementChanged(task);
- }
- }
- }
-
- public static class MarkTaskIncompleteHandler extends AbstractTaskHandler {
- @Override
- protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
- if (TasksUiInternal.hasLocalCompletionState(task)) {
- task.setCompletionDate(null);
- TasksUiPlugin.getTaskList().notifyElementChanged(task);
- }
- }
- }
-
- public static class MarkTaskReadHandler extends AbstractTaskHandler {
- @Override
- protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- }
- }
-
- public static class MarkTaskUnreadHandler extends AbstractTaskHandler {
- @Override
- protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, false);
- }
- }
-
- public static class MarkTaskReadGoToNextUnreadTaskHandler extends AbstractTaskListViewHandler {
- @Override
- protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item)
- throws ExecutionException {
- if (item instanceof ITask) {
- ITask task = (ITask) item;
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- GoToUnreadTaskHandler.execute(event, org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker.Direction.DOWN);
- }
- }
- }
-
- public static class MarkTaskReadGoToPreviousUnreadTaskHandler extends AbstractTaskListViewHandler {
- @Override
- protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item)
- throws ExecutionException {
- if (item instanceof ITask) {
- ITask task = (ITask) item;
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- GoToUnreadTaskHandler.execute(event, org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker.Direction.UP);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MaximizePartHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MaximizePartHandler.java
deleted file mode 100644
index f1ad5170f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MaximizePartHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jingwen Ou 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:
- * Jingwen Ou - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author
- */
-public class MaximizePartHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchSite site = HandlerUtil.getActiveSite(event);
- if (site instanceof IEditorSite) {
- IWorkbenchPart part = ((IEditorSite) site).getPart();
- if (part instanceof FormEditor) {
- IFormPage page = ((FormEditor) part).getActivePageInstance();
- Control focusedControl = EditorUtil.getFocusControl(page);
- if (focusedControl != null) {
- Object data = focusedControl.getData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION);
- if (data instanceof IAction) {
- IAction action = (IAction) data;
- action.setChecked(!action.isChecked());
- action.run();
- }
- }
- }
- }
-
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/Messages.java
deleted file mode 100644
index f00f90ffd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/Messages.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.commands.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String AddTaskRepositoryHandler_Add_Task_Repository;
-
- public static String NewLocalTaskHandler_Could_not_create_local_task;
-
- public static String OpenTaskAttachmentInDefaultEditorHandler_Failed_to_open_editor;
-
- public static String OpenTaskAttachmentInDefaultEditorHandler_No_default_editor_for_X_found;
-
- public static String OpenTaskAttachmentInDefaultEditorHandler_Open_Attachment_Failed;
-
- public static String RemoteTaskSelectionDialog_Add_;
-
- public static String RemoteTaskSelectionDialog_Add_to_Task_List_category;
-
- public static String RemoteTaskSelectionDialog_Enter_Key_ID__use_comma_for_multiple_;
-
- public static String RemoteTaskSelectionDialog_Enter_a_valid_task_ID;
-
- public static String RemoteTaskSelectionDialog_Matching_tasks;
-
- public static String RemoteTaskSelectionDialog_Select_a_task_or_repository;
-
- public static String RemoteTaskSelectionDialog_Select_a_task_repository;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewLocalTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewLocalTaskHandler.java
deleted file mode 100644
index 524bf3390..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewLocalTaskHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class NewLocalTaskHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchSite site = HandlerUtil.getActiveSite(event);
- if (site instanceof IViewSite) {
- IViewSite viewSite = (IViewSite) site;
- IWorkbenchPart part = viewSite.getPart();
- if (part instanceof TaskListView) {
- TaskListView taskListView = (TaskListView) part;
- NewTaskAction action = new NewTaskAction();
- try {
- action.setInitializationData(null, null, "local"); //$NON-NLS-1$
- } catch (CoreException e) {
- throw new ExecutionException(Messages.NewLocalTaskHandler_Could_not_create_local_task, e);
- }
- action.selectionChanged(action, taskListView.getViewer().getSelection());
- if (action.isEnabled()) {
- action.run();
- }
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewSubTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewSubTaskHandler.java
deleted file mode 100644
index 90ca64726..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/NewSubTaskHandler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewSubTaskAction;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Shawn Minto
- */
-public class NewSubTaskHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchSite site = HandlerUtil.getActiveSite(event);
- if (site instanceof IViewSite) {
- IViewSite viewSite = (IViewSite) site;
- IWorkbenchPart part = viewSite.getPart();
- if (part instanceof TaskListView) {
- TaskListView taskListView = (TaskListView) part;
- NewSubTaskAction action = new NewSubTaskAction();
- action.selectionChanged(action, taskListView.getViewer().getSelection());
- if (action.isEnabled()) {
- action.run();
- }
- return null;
- }
- }
- return null;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenRepositoryTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenRepositoryTaskHandler.java
deleted file mode 100644
index 24b119ebd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenRepositoryTaskHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenRepositoryTaskAction;
-
-/**
- * @author Steffen Pingel
- */
-public class OpenRepositoryTaskHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- new OpenRepositoryTaskAction().run(null);
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenSelectedTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenSelectedTaskHandler.java
deleted file mode 100644
index 7cf87c323..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenSelectedTaskHandler.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Steffen Pingel
- */
-public class OpenSelectedTaskHandler extends AbstractTaskListViewHandler {
-
- @Override
- protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item) {
- if (item instanceof ITask) {
- TasksUiInternal.openTaskInBackground((AbstractTask) item, true);
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInBrowserHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInBrowserHandler.java
deleted file mode 100644
index 5922bfaa9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInBrowserHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class OpenTaskAttachmentInBrowserHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof IStructuredSelection) {
- List<?> items = ((IStructuredSelection) selection).toList();
- for (Object item : items) {
- if (item instanceof ITaskAttachment) {
- TasksUiUtil.openUrl(((ITaskAttachment) item).getUrl());
- }
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInDefaultEditorHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInDefaultEditorHandler.java
deleted file mode 100644
index 2d8969a11..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskAttachmentInDefaultEditorHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskAttachmentEditorInput;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class OpenTaskAttachmentInDefaultEditorHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchPage page = null;
- ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof IStructuredSelection) {
- List<?> items = ((IStructuredSelection) selection).toList();
- for (Object item : items) {
- if (item instanceof ITaskAttachment) {
- if (page == null) {
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
- page = window.getActivePage();
- if (page == null) {
- throw new ExecutionException("No active workbench page"); //$NON-NLS-1$
- }
- }
- openAttachment(page, (ITaskAttachment) item);
- }
- }
- }
- return null;
- }
-
- private void openAttachment(IWorkbenchPage page, ITaskAttachment attachment) throws ExecutionException {
- TaskAttachmentEditorInput input = new TaskAttachmentEditorInput(attachment);
- IEditorDescriptor description = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(input.getName());
- if (description == null) {
- TasksUiInternal.displayStatus(Messages.OpenTaskAttachmentInDefaultEditorHandler_Open_Attachment_Failed,
- new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN, MessageFormat.format(
- Messages.OpenTaskAttachmentInDefaultEditorHandler_No_default_editor_for_X_found,
- input.getName())));
- } else {
- try {
- page.openEditor(input, description.getId());
- } catch (PartInitException e) {
- throw new ExecutionException(Messages.OpenTaskAttachmentInDefaultEditorHandler_Failed_to_open_editor, e);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskListElementPropertiesHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskListElementPropertiesHandler.java
deleted file mode 100644
index 2a5fc492a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskListElementPropertiesHandler.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-
-/**
- * @author Steffen Pingel
- */
-public class OpenTaskListElementPropertiesHandler extends AbstractTaskListViewHandler {
-
- @Override
- protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item) {
- if (item instanceof TaskCategory || item instanceof IRepositoryQuery) {
- TasksUiInternal.refreshAndOpenTaskListElement(item);
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskRepositoryPropertiesHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskRepositoryPropertiesHandler.java
deleted file mode 100644
index 957cba00f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/OpenTaskRepositoryPropertiesHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class OpenTaskRepositoryPropertiesHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof IStructuredSelection) {
- Object item = ((IStructuredSelection) selection).getFirstElement();
- if (item instanceof TaskRepository) {
- TasksUiUtil.openEditRepositoryWizard((TaskRepository) item);
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java
deleted file mode 100644
index e0a6dab14..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Tasktop Technologies - improvements
- * Tomasz Zarna, IBM Corporation - improvements for bug 261648
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.commands;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-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.ITaskRepositoryFilter;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.ITaskCommandIds;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionStatusDialog;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * @author Willian Mitsuda
- */
-public class RemoteTaskSelectionDialog extends SelectionStatusDialog {
-
- public RemoteTaskSelectionDialog(Shell parent) {
- super(parent);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- setStatusLineAboveButtons(true);
- }
-
- private Text idText;
-
- private TableViewer tasksViewer;
-
- private ComboViewer repositoriesViewer;
-
- private Button addToTaskListCheck;
-
- private ComboViewer categoryViewer;
-
- // TODO: copy'n pasted code; make API?
- private List<TaskRepository> getTaskRepositories() {
- List<TaskRepository> repositories = new ArrayList<TaskRepository>();
- TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
- for (AbstractRepositoryConnector connector : repositoryManager.getRepositoryConnectors()) {
- Set<TaskRepository> connectorRepositories = repositoryManager.getRepositories(connector.getConnectorKind());
- for (TaskRepository repository : connectorRepositories) {
- if (ITaskRepositoryFilter.CAN_CREATE_TASK_FROM_KEY.accept(repository, connector)) {
- repositories.add(repository);
- }
- }
- }
- return repositories;
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite area = (Composite) super.createDialogArea(parent);
-
- Label idLabel = new Label(area, SWT.NULL);
- idLabel.setText(Messages.RemoteTaskSelectionDialog_Enter_Key_ID__use_comma_for_multiple_);
- idText = new Text(area, SWT.BORDER);
- idText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
- Label matchingTasksLabel = new Label(area, SWT.NONE);
- matchingTasksLabel.setText(Messages.RemoteTaskSelectionDialog_Matching_tasks);
- tasksViewer = new TableViewer(area, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- tasksViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 200).create());
- tasksViewer.setLabelProvider(new DecoratingLabelProvider(new TaskElementLabelProvider(true),
- PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
- tasksViewer.setContentProvider(new ArrayContentProvider());
- tasksViewer.addFilter(new ViewerFilter() {
-
- @Override
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (selectedIds == null) {
- return false;
- }
-
- // Only shows exact task matches
- if (!(element instanceof ITask)) {
- return false;
- }
- ITask task = (ITask) element;
- String taskId = task.getTaskKey();
- for (String id : selectedIds) {
- if (id.equals(taskId)) {
- return true;
- }
- }
- return false;
- }
-
- });
- tasksViewer.setInput(TasksUiPlugin.getTaskList().getAllTasks());
- idText.addModifyListener(new ModifyListener() {
-
- public void modifyText(ModifyEvent e) {
- computeIds();
- validate();
- tasksViewer.refresh(false);
- }
-
- });
- tasksViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
- public void selectionChanged(SelectionChangedEvent event) {
- validate();
- }
-
- });
- tasksViewer.addOpenListener(new IOpenListener() {
-
- public void open(OpenEvent event) {
- if (getOkButton().getEnabled()) {
- okPressed();
- }
- }
-
- });
- Table table = tasksViewer.getTable();
- table.showSelection();
-
- Composite repositoriesComposite = new Composite(area, SWT.NONE);
- repositoriesComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
- repositoriesComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());
-
- Label repositoriesLabel = new Label(repositoriesComposite, SWT.NONE);
- repositoriesLabel.setText(Messages.RemoteTaskSelectionDialog_Select_a_task_repository);
-
- repositoriesViewer = new ComboViewer(repositoriesComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
- repositoriesViewer.setLabelProvider(new TaskRepositoryLabelProvider());
- repositoriesViewer.setContentProvider(new ArrayContentProvider());
- List<TaskRepository> taskRepositories = getTaskRepositories();
- repositoriesViewer.setInput(taskRepositories);
- if (taskRepositories.size() == 1) {
- repositoriesViewer.setSelection(new StructuredSelection(taskRepositories.get(0)));
- }
- TaskRepository currentRepository = TasksUiUtil.getSelectedRepository(null);
- if (currentRepository != null) {
- repositoriesViewer.setSelection(new StructuredSelection(currentRepository), true);
- }
- repositoriesViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
- repositoriesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
- public void selectionChanged(SelectionChangedEvent event) {
- tasksViewer.setSelection(StructuredSelection.EMPTY);
- validate();
- }
-
- });
-
- Button addRepositoryButton = new Button(repositoriesComposite, SWT.NONE);
- addRepositoryButton.setText(Messages.RemoteTaskSelectionDialog_Add_);
- addRepositoryButton.setEnabled(TasksUiPlugin.getRepositoryManager().hasUserManagedRepositoryConnectors());
- addRepositoryButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- IHandlerService hndSvc = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
- try {
- hndSvc.executeCommand(ITaskCommandIds.ADD_TASK_REPOSITORY, null);
- repositoriesViewer.setInput(getTaskRepositories());
- } catch (CommandException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- }
- });
-
- Composite addToTaskListComposite = new Composite(area, SWT.NONE);
- addToTaskListComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());
-
- addToTaskListCheck = new Button(addToTaskListComposite, SWT.CHECK);
- addToTaskListCheck.setText(Messages.RemoteTaskSelectionDialog_Add_to_Task_List_category);
-
- categoryViewer = new ComboViewer(addToTaskListComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
- categoryViewer.setContentProvider(new ArrayContentProvider());
- TaskList taskList = TasksUiPlugin.getTaskList();
- LinkedList<AbstractTaskContainer> categories = new LinkedList<AbstractTaskContainer>(taskList.getCategories());
- categories.addFirst(taskList.getDefaultCategory());
- categoryViewer.setInput(categories);
- categoryViewer.setLabelProvider(new LabelProvider() {
-
- @Override
- public String getText(Object element) {
- if (element instanceof IRepositoryElement) {
- return ((IRepositoryElement) element).getSummary();
- }
- return super.getText(element);
- }
-
- });
- categoryViewer.setSelection(new StructuredSelection(taskList.getDefaultCategory()));
-
- categoryViewer.getControl().setEnabled(addToTaskListCheck.getSelection());
- addToTaskListCheck.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- categoryViewer.getControl().setEnabled(addToTaskListCheck.getSelection());
- }
-
- });
-
- idText.addKeyListener(new KeyAdapter() {
-
- @Override
- public void keyPressed(KeyEvent e) {
- if (e.keyCode == SWT.ARROW_DOWN) {
- tasksViewer.getControl().setFocus();
- }
- }
-
- });
-
- return area;
- }
-
- private void validate() {
- if (idText.getText().trim().equals("")) { //$NON-NLS-1$
- updateStatus(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, 0,
- Messages.RemoteTaskSelectionDialog_Enter_a_valid_task_ID, null));
- return;
- }
- if (tasksViewer.getSelection().isEmpty() && repositoriesViewer.getSelection().isEmpty()) {
- updateStatus(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, 0,
- Messages.RemoteTaskSelectionDialog_Select_a_task_or_repository, null));
- return;
- }
- updateStatus(new Status(IStatus.OK, TasksUiPlugin.ID_PLUGIN, 0, "", null)); //$NON-NLS-1$
- }
-
- private String[] selectedIds;
-
- private TaskRepository selectedRepository;
-
- private AbstractTask selectedTask;
-
- private boolean shouldAddToTaskList;
-
- private AbstractTaskCategory selectedCategory;
-
- public String[] getSelectedIds() {
- return selectedIds;
- }
-
- public TaskRepository getSelectedTaskRepository() {
- return selectedRepository;
- }
-
- public AbstractTask getSelectedTask() {
- return selectedTask;
- }
-
- public boolean shouldAddToTaskList() {
- return shouldAddToTaskList;
- }
-
- public AbstractTaskCategory getSelectedCategory() {
- return selectedCategory;
- }
-
- @Override
- protected void computeResult() {
- computeIds();
-
- ISelection taskSelection = tasksViewer.getSelection();
- if (!taskSelection.isEmpty()) {
- selectedTask = (AbstractTask) ((IStructuredSelection) taskSelection).getFirstElement();
- } else {
- selectedRepository = (TaskRepository) ((IStructuredSelection) repositoriesViewer.getSelection()).getFirstElement();
- }
- shouldAddToTaskList = addToTaskListCheck.getSelection();
- if (shouldAddToTaskList) {
- selectedCategory = (AbstractTaskCategory) ((IStructuredSelection) categoryViewer.getSelection()).getFirstElement();
- }
- }
-
- private void computeIds() {
- selectedIds = idText.getText().split(","); //$NON-NLS-1$
- for (String id : selectedIds) {
- id = id.trim();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/SubmitTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/SubmitTaskHandler.java
deleted file mode 100644
index 9e6460d77..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/SubmitTaskHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class SubmitTaskHandler extends AbstractHandler {
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchSite site = HandlerUtil.getActiveSite(event);
- if (site instanceof IEditorSite) {
- IWorkbenchPart part = ((IEditorSite) site).getPart();
- if (part instanceof FormEditor) {
- IFormPage page = ((FormEditor) part).getActivePageInstance();
- if (page instanceof AbstractTaskEditorPage) {
- ((AbstractTaskEditorPage) page).doSubmit();
- }
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskListToolTipHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskListToolTipHandler.java
deleted file mode 100644
index 21f59f006..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskListToolTipHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.commands;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListToolTip;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskListToolTipHandler extends AbstractTaskListViewHandler {
-
- @Override
- protected void execute(ExecutionEvent event, TaskListView taskListView) throws ExecutionException {
- TaskListToolTip toolTip = taskListView.getToolTip();
- if (toolTip.isVisible()) {
- toolTip.hide();
- } else {
- taskListView.getViewer().getControl().getBounds();
- Tree tree = taskListView.getViewer().getTree();
- TreeItem[] selection = tree.getSelection();
- if (selection.length > 0) {
- toolTip.show(new Point(selection[0].getBounds().x + 1, selection[0].getBounds().y + 1));
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskRepositoryParameterValues.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskRepositoryParameterValues.java
deleted file mode 100644
index 78509b4bf..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/TaskRepositoryParameterValues.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.commands;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.IParameterValues;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * Compute repository connectors type/label map
- *
- * @author Willian Mitsuda
- */
-public class TaskRepositoryParameterValues implements IParameterValues {
-
- public Map<String, String> getParameterValues() {
- Collection<AbstractRepositoryConnector> connectors = TasksUi.getRepositoryManager().getRepositoryConnectors();
- Map<String, String> values = new HashMap<String, String>();
- for (AbstractRepositoryConnector connector : connectors) {
- values.put(connector.getConnectorKind(), connector.getLabel());
- }
- return values;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/ViewSourceHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/ViewSourceHandler.java
deleted file mode 100644
index be06428bd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/ViewSourceHandler.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jingwen Ou 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:
- * Jingwen Ou - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.commands;
-
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.HandlerEvent;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.menus.UIElement;
-
-/**
- * @author Jingwen Ou
- * @author Steffen Pingel
- */
-public class ViewSourceHandler extends AbstractHandler implements IElementUpdater {
-
- private static boolean checked;
-
- private static ViewSourceHandler instance;
-
- public ViewSourceHandler() {
- instance = this;
- }
-
- public boolean isChecked() {
- return checked;
- }
-
- public static void setChecked(boolean checked) {
- ViewSourceHandler.checked = checked;
- if (instance != null) {
- instance.fireHandlerChanged(new HandlerEvent(instance, true, false));
- }
- }
-
- private Control getFocusControl() {
- return PlatformUI.getWorkbench().getDisplay().getFocusControl();
- }
-
- @Override
- public boolean isEnabled() {
- Control focusControl = getFocusControl();
- if (focusControl instanceof StyledText && focusControl.getData(VIEW_SOURCE_ACTION) instanceof IAction) {
- return true;
- }
-
- return false;
- }
-
- public static final String VIEW_SOURCE_ACTION = "viewSourceAction"; //$NON-NLS-1$
-
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchSite site = HandlerUtil.getActiveSite(event);
- if (site instanceof IEditorSite) {
- IWorkbenchPart part = ((IEditorSite) site).getPart();
- if (part instanceof FormEditor) {
- IFormPage page = ((FormEditor) part).getActivePageInstance();
- Control focusedControl = EditorUtil.getFocusControl(page);
- if (focusedControl != null) {
- Object data = focusedControl.getData(VIEW_SOURCE_ACTION);
- if (data instanceof IAction) {
- IAction action = (IAction) data;
- action.setChecked(!action.isChecked());
- action.run();
- setChecked(action.isChecked());
- }
- }
- }
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- public void updateElement(UIElement element, Map parameters) {
- element.setChecked(checked);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/messages.properties
deleted file mode 100644
index 36acfab29..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-AddTaskRepositoryHandler_Add_Task_Repository=Add Task Repository
-
-NewLocalTaskHandler_Could_not_create_local_task=Could not create local task
-
-OpenTaskAttachmentInDefaultEditorHandler_Failed_to_open_editor=Failed to open editor
-OpenTaskAttachmentInDefaultEditorHandler_No_default_editor_for_X_found=No default editor for "{0}" found
-OpenTaskAttachmentInDefaultEditorHandler_Open_Attachment_Failed=Open Attachment Failed
-
-RemoteTaskSelectionDialog_Add_=&Add...
-RemoteTaskSelectionDialog_Add_to_Task_List_category=Add to Task &List category\:
-RemoteTaskSelectionDialog_Enter_Key_ID__use_comma_for_multiple_=Enter Key/&ID (use comma for multiple)\:\
-RemoteTaskSelectionDialog_Enter_a_valid_task_ID=Enter a valid task ID
-RemoteTaskSelectionDialog_Matching_tasks=&Matching tasks:
-RemoteTaskSelectionDialog_Select_a_task_or_repository=Select a task or repository
-RemoteTaskSelectionDialog_Select_a_task_repository=&Select a task repository\:
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/AbstractWorkingSetDialogCOPY.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/AbstractWorkingSetDialogCOPY.java
deleted file mode 100644
index aa1dbdc67..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/AbstractWorkingSetDialogCOPY.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- * Sebastian Davids <sdavids@gmx.de> - Fix for bug 19346 - Dialog font
- * should be activated and used by other components.
- *******************************************************************************/
-package org.eclipse.mylyn.internal.tasks.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetEditWizard;
-import org.eclipse.ui.dialogs.IWorkingSetNewWizard;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkingSet;
-import org.eclipse.ui.internal.registry.WorkingSetRegistry;
-
-/**
- * Abstract baseclass for various working set dialogs.
- *
- * COPIED FROM: AbstractWorkingSetDialog
- */
-@SuppressWarnings( { "unchecked", "null" })
-public abstract class AbstractWorkingSetDialogCOPY extends SelectionDialog implements IWorkingSetSelectionDialog {
-
- private static final int ID_NEW = IDialogConstants.CLIENT_ID + 1;
-
- private static final int ID_DETAILS = ID_NEW + 1;
-
- private static final int ID_REMOVE = ID_DETAILS + 1;
-
- private static final int ID_SELECTALL = ID_REMOVE + 1;
-
- private static final int ID_DESELECTALL = ID_SELECTALL + 1;
-
- private Button newButton;
-
- private Button detailsButton;
-
- private Button removeButton;
-
- private Button selectAllButton;
-
- private Button deselectAllButton;
-
- private IWorkingSet[] result;
-
- private List addedWorkingSets;
-
- private List removedWorkingSets;
-
- private Map editedWorkingSets;
-
- private List removedMRUWorkingSets;
-
- private Set workingSetIds;
-
- private final boolean canEdit;
-
- protected AbstractWorkingSetDialogCOPY(Shell parentShell, String[] workingSetIds, boolean canEdit) {
- super(parentShell);
- if (workingSetIds != null) {
- this.workingSetIds = new HashSet();
- for (String workingSetId : workingSetIds) {
- this.workingSetIds.add(workingSetId);
- }
- }
- this.canEdit = canEdit;
- }
-
- /**
- * Return the set of supported working set types.
- *
- * @return the supported working set types
- */
- protected Set getSupportedWorkingSetIds() {
- return workingSetIds;
- }
-
- /**
- * Adds the modify buttons to the dialog.
- *
- * @param composite
- * Composite to add the buttons to
- */
- protected void addModifyButtons(Composite composite) {
- Composite buttonComposite = new Composite(composite, SWT.RIGHT);
- GridLayout layout = new GridLayout();
- layout.marginHeight = layout.marginWidth = 0;
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- buttonComposite.setLayout(layout);
- GridData data = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.GRAB_VERTICAL);
- buttonComposite.setLayoutData(data);
-
- newButton = createButton(buttonComposite, ID_NEW, WorkbenchMessages.WorkingSetSelectionDialog_newButton_label,
- false);
- newButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- createWorkingSet();
- }
- });
-
- if (canEdit) {
- detailsButton = createButton(buttonComposite, ID_DETAILS,
- WorkbenchMessages.WorkingSetSelectionDialog_detailsButton_label, false);
- detailsButton.setEnabled(false);
- detailsButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- editSelectedWorkingSet();
- }
- });
-
- removeButton = createButton(buttonComposite, ID_REMOVE,
- WorkbenchMessages.WorkingSetSelectionDialog_removeButton_label, false);
- removeButton.setEnabled(false);
- removeButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- removeSelectedWorkingSets();
- }
- });
- }
-
- layout.numColumns = 1; // must manually reset the number of columns because createButton increments it - we want these buttons to be laid out vertically.
- }
-
- /**
- * Add the select/deselect buttons.
- *
- * @param composite
- * Composite to add the buttons to
- */
- protected void addSelectionButtons(Composite composite) {
- Composite buttonComposite = new Composite(composite, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = layout.marginWidth = 0;
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- buttonComposite.setLayout(layout);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- buttonComposite.setLayoutData(data);
-
- selectAllButton = createButton(buttonComposite, ID_SELECTALL, WorkbenchMessages.SelectionDialog_selectLabel,
- false);
- selectAllButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- selectAllSets();
- }
- });
-
- deselectAllButton = createButton(buttonComposite, ID_DESELECTALL,
- WorkbenchMessages.SelectionDialog_deselectLabel, false);
- deselectAllButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- deselectAllSets();
- }
- });
- }
-
- /**
- * Select all working sets.
- */
- protected abstract void selectAllSets();
-
- /**
- * Deselect all working sets.
- */
- protected abstract void deselectAllSets();
-
- /**
- * Opens a working set wizard for editing the currently selected working set.
- *
- * @see org.eclipse.ui.dialogs.IWorkingSetPage
- */
- void editSelectedWorkingSet() {
- IWorkingSetManager manager = WorkbenchPlugin.getDefault().getWorkingSetManager();
- IWorkingSet editWorkingSet = (IWorkingSet) getSelectedWorkingSets().get(0);
- IWorkingSetEditWizard wizard = manager.createWorkingSetEditWizard(editWorkingSet);
- WizardDialog dialog = new WizardDialog(getShell(), wizard);
- IWorkingSet originalWorkingSet = (IWorkingSet) editedWorkingSets.get(editWorkingSet);
- boolean firstEdit = originalWorkingSet == null;
-
- // save the original working set values for restoration when selection
- // dialog is cancelled.
- if (firstEdit) {
- originalWorkingSet = new WorkingSet(editWorkingSet.getName(), editWorkingSet.getLabel(),
- editWorkingSet.getElements());
- } else {
- editedWorkingSets.remove(editWorkingSet);
- }
- dialog.create();
- PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
- IWorkbenchHelpContextIds.WORKING_SET_EDIT_WIZARD);
- if (dialog.open() == Window.OK) {
- editWorkingSet = wizard.getSelection();
- availableWorkingSetsChanged();
- // make sure ok button is enabled when the selected working set
- // is edited. Fixes bug 33386.
- updateButtonAvailability();
- }
- editedWorkingSets.put(editWorkingSet, originalWorkingSet);
- }
-
- /**
- * Opens a working set wizard for creating a new working set.
- */
- void createWorkingSet() {
- IWorkingSetManager manager = WorkbenchPlugin.getDefault().getWorkingSetManager();
- String ids[] = null;
- if (workingSetIds != null) {
- ids = (String[]) workingSetIds.toArray(new String[workingSetIds.size()]);
- }
- IWorkingSetNewWizard wizard = manager.createWorkingSetNewWizard(ids);
- // the wizard can never be null since we have at least a resource
- // working set
- // creation page
- WizardDialog dialog = new WizardDialog(getShell(), wizard);
-
- dialog.create();
- PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
- IWorkbenchHelpContextIds.WORKING_SET_NEW_WIZARD);
- if (dialog.open() == Window.OK) {
- IWorkingSet workingSet = wizard.getSelection();
- manager.addWorkingSet(workingSet);
- addedWorkingSets.add(workingSet);
- availableWorkingSetsChanged();
- }
- }
-
- protected abstract List getSelectedWorkingSets();
-
- /**
- * Notifies the dialog that there has been a change to the sets available for use. In other words, the user has
- * either added, deleted or renamed a set.
- * <p>
- * Subclasses should override, but should call <code>super.availableWorkingSetsChanged</code> to update the
- * selection button enablements.
- * </p>
- */
- protected void availableWorkingSetsChanged() {
- boolean enable = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets().length > 0;
- if (!(selectAllButton == null || selectAllButton.isDisposed())) {
- selectAllButton.setEnabled(enable);
- }
- if (!(deselectAllButton == null || deselectAllButton.isDisposed())) {
- deselectAllButton.setEnabled(enable);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.dialogs.IWorkingSetSelectionDialog#getSelection()
- */
- public IWorkingSet[] getSelection() {
- return result;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.dialogs.IWorkingSetSelectionDialog#setSelection(org.eclipse.ui.IWorkingSet[])
- */
- public void setSelection(IWorkingSet[] selection) {
- result = selection;
- }
-
- /**
- * Overrides method in Dialog
- *
- * @see org.eclipse.jface.dialogs.Dialog#open()
- */
- @Override
- public int open() {
- addedWorkingSets = new ArrayList();
- removedWorkingSets = new ArrayList();
- editedWorkingSets = new HashMap();
- removedMRUWorkingSets = new ArrayList();
- return super.open();
- }
-
- /**
- * Return the list of working sets that were added during the life of this dialog.
- *
- * @return the working sets
- */
- protected final List getAddedWorkingSets() {
- return addedWorkingSets;
- }
-
- /**
- * Return the map of working sets that were edited during the life of this dialog.
- *
- * @return the working sets
- */
- protected final Map getEditedWorkingSets() {
- return editedWorkingSets;
- }
-
- /**
- * Return the list of working sets that were removed from the MRU list during the life of this dialog.
- *
- * @return the working sets
- */
- protected final List getRemovedMRUWorkingSets() {
- return removedMRUWorkingSets;
- }
-
- /**
- * Return the list of working sets that were removed during the life of this dialog.
- *
- * @return the working sets
- */
- protected final List getRemovedWorkingSets() {
- return removedWorkingSets;
- }
-
- /**
- * Updates the modify buttons' enabled state based on the current seleciton.
- */
- protected void updateButtonAvailability() {
- List selection = getSelectedWorkingSets();
- boolean hasSelection = selection != null && !selection.isEmpty();
- boolean hasSingleSelection = hasSelection;
- WorkingSetRegistry registry = WorkbenchPlugin.getDefault().getWorkingSetRegistry();
-
- newButton.setEnabled(registry.hasNewPageWorkingSetDescriptor());
-
- if (canEdit) {
- removeButton.setEnabled(hasSelection);
- }
-
- IWorkingSet selectedWorkingSet = null;
- if (hasSelection) {
- hasSingleSelection = selection.size() == 1;
- if (hasSingleSelection) {
- selectedWorkingSet = (IWorkingSet) selection.get(0);
- }
- }
- if (canEdit) {
- detailsButton.setEnabled(hasSingleSelection && selectedWorkingSet.isEditable());
- }
-
- getOkButton().setEnabled(true);
- }
-
- /**
- * Removes the selected working sets from the workbench.
- */
- protected void removeSelectedWorkingSets() {
- List selection = getSelectedWorkingSets();
- removeSelectedWorkingSets(selection);
- }
-
- /**
- * Remove the working sets contained in the provided selection from the working set manager.
- *
- * @param selection
- * the sets
- */
- protected void removeSelectedWorkingSets(List selection) {
- IWorkingSetManager manager = WorkbenchPlugin.getDefault().getWorkingSetManager();
- Iterator iter = selection.iterator();
- while (iter.hasNext()) {
- IWorkingSet workingSet = (IWorkingSet) iter.next();
- if (getAddedWorkingSets().contains(workingSet)) {
- getAddedWorkingSets().remove(workingSet);
- } else {
- IWorkingSet[] recentWorkingSets = manager.getRecentWorkingSets();
- for (IWorkingSet recentWorkingSet : recentWorkingSets) {
- if (workingSet.equals(recentWorkingSet)) {
- getRemovedMRUWorkingSets().add(workingSet);
- break;
- }
- }
- getRemovedWorkingSets().add(workingSet);
- }
- manager.removeWorkingSet(workingSet);
- }
- availableWorkingSetsChanged();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java
deleted file mode 100644
index 6fb0ba9a9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/Messages.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.dialogs;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.dialogs.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TaskCompareDialog_Ascending;
-
- public static String TaskCompareDialog_DateCreated;
-
- public static String TaskCompareDialog_Descending;
-
- public static String TaskCompareDialog_Priority;
-
- public static String TaskCompareDialog_Sorting;
-
- public static String TaskCompareDialog_SortOrder;
-
- public static String TaskCompareDialog_Summary;
-
- public static String TaskCompareDialog_TaskID;
-
- public static String TaskListSortDialog_Sort_order;
-
- public static String TaskListSortDialog_Title;
-
- public static String TaskRepositoryCredentialsDialog_Enter_Credentials;
-
- public static String TaskRepositoryCredentialsDialog_Enter_repository_credentials;
-
- public static String TaskRepositoryCredentialsDialog_HTML_Open_Repository_Properties;
-
- public static String TaskRepositoryCredentialsDialog_Password;
-
- public static String TaskRepositoryCredentialsDialog_Repository_Authentication;
-
- public static String TaskRepositoryCredentialsDialog_Save_Password;
-
- public static String TaskRepositoryCredentialsDialog_Saved_passwords_are_stored_that_is_difficult;
-
- public static String TaskRepositoryCredentialsDialog_Task_Repository;
-
- public static String TaskRepositoryCredentialsDialog_User_ID;
-
- public static String UiLegendControl_Active_task;
-
- public static String UiLegendControl_Adjust_Colors_and_Fonts_;
-
- public static String UiLegendControl_Also_see_the_Getting_Started_documentation_online;
-
- public static String UiLegendControl_Category;
-
- public static String UiLegendControl_Completed;
-
- public static String UiLegendControl_Completed_today;
-
- public static String UiLegendControl_Conflicting_changes;
-
- public static String UiLegendControl_Date_range;
-
- public static String UiLegendControl__default_;
-
- public static String UiLegendControl_Focus_view_on_active_task;
-
- public static String UiLegendControl_Has_due_date;
-
- public static String UiLegendControl_http_www_eclipse_org_mylyn_start;
-
- public static String UiLegendControl_Inactive_task_with_context;
-
- public static String UiLegendControl_Inactive_task_with_no_context;
-
- public static String UiLegendControl_Incoming_changes;
-
- public static String UiLegendControl_New_task;
-
- public static String UiLegendControl_Open_Task_List_;
-
- public static String UiLegendControl_Outgoing_changes;
-
- public static String UiLegendControl_Past_Due_date;
-
- public static String UiLegendControl_Past_scheduled_date;
-
- public static String UiLegendControl_Priorities;
-
- public static String UiLegendControl_Query;
-
- public static String UiLegendControl_Scheduled_for_today;
-
- public static String UiLegendControl_Synchronization;
-
- public static String UiLegendControl_Synchronization_failed;
-
- public static String UiLegendControl_Task;
-
- public static String UiLegendControl_Task_Activity;
-
- public static String UiLegendControl_Task_Context;
-
- public static String UiLegendControl_Tasks;
-
- public static String UiLegendControl_Tasks_UI_Legend;
-
- public static String UiLegendControl_Unsubmitted_outgoing_changes;
-
- public static String UiLegendDialog_Close_Dialog;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java
deleted file mode 100644
index ec9b5c124..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskCompareDialog.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator.SortByIndex;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-/**
- * @author FrankBecker
- */
-public class TaskCompareDialog extends SelectionDialog {
-
- private Combo[] priorityCombos;
-
- private Button[] ascendingButtons;
-
- private Button[] descendingButtons;
-
- private final String[] propertyText;
-
- private boolean dirty = false;
-
- private final TaskComparator taskComparator;
-
- public TaskCompareDialog(IShellProvider parentShell, TaskComparator taskComparator) {
- super(parentShell.getShell());
- SortByIndex[] values = SortByIndex.values();
- propertyText = new String[values.length];
- for (int i = 0; i < values.length; i++) {
- propertyText[i] = values[i].getLabel();
- }
- this.taskComparator = taskComparator;
- setTitle(Messages.TaskCompareDialog_Sorting);
- }
-
- protected void createDialogStartArea(Composite parent) {
- Label sortByLabel = new Label(parent, SWT.NULL);
- sortByLabel.setText(Messages.TaskCompareDialog_SortOrder);
- GridData data = new GridData();
- data.horizontalSpan = 3;
- sortByLabel.setLayoutData(data);
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
-
- initializeDialogUnits(composite);
-
- Composite prioritiesArea = new Composite(composite, SWT.NULL);
- prioritiesArea.setLayout(new GridLayout(3, false));
-
- createDialogStartArea(prioritiesArea);
-
- ascendingButtons = new Button[2];
- descendingButtons = new Button[2];
- priorityCombos = new Combo[2];
-
- for (int i = 0; i < 2; i++) {
- final int index = i;
- Label numberLabel = new Label(prioritiesArea, SWT.NULL);
- numberLabel.setText("" + (i + 1) + "."); //$NON-NLS-1$ //$NON-NLS-2$
- priorityCombos[i] = new Combo(prioritiesArea, SWT.READ_ONLY);
- priorityCombos[i].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Composite directionGroup = new Composite(prioritiesArea, SWT.NONE);
- directionGroup.setLayout(new GridLayout(2, false));
- ascendingButtons[i] = new Button(directionGroup, SWT.RADIO);
- ascendingButtons[i].setText(Messages.TaskCompareDialog_Ascending);
- ascendingButtons[i].addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- markDirty();
- }
- });
- descendingButtons[i] = new Button(directionGroup, SWT.RADIO);
- descendingButtons[i].setText(Messages.TaskCompareDialog_Descending);
- descendingButtons[i].addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- markDirty();
- }
- });
- if (i < priorityCombos.length - 1) {
- priorityCombos[i].addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- int oldSelectionDirection = 1;
- if (descendingButtons[index].getSelection()) {
- oldSelectionDirection = -1;
- }
- ArrayList<String> oldSelectionList = new ArrayList<String>(
- Arrays.asList(priorityCombos[index].getItems()));
- oldSelectionList.removeAll(Arrays.asList(priorityCombos[index + 1].getItems()));
- if (oldSelectionList.size() != 1) {
- return;
- }
- String oldSelection = oldSelectionList.get(0);
- String newSelection = priorityCombos[index].getItem(priorityCombos[index].getSelectionIndex());
- if (oldSelection.equals(newSelection)) {
- return;
- }
- for (int j = index + 1; j < priorityCombos.length; j++) {
- int newSelectionIndex = priorityCombos[j].indexOf(newSelection);
- //this combo's current selection is equal to newSelection
- if (priorityCombos[j].getSelectionIndex() == newSelectionIndex) {
- priorityCombos[j].remove(newSelection);
- int insertionPoint = -1
- - Arrays.binarySearch(priorityCombos[j].getItems(), oldSelection,
- columnComparator);
- if (insertionPoint >= 0 && insertionPoint <= priorityCombos[j].getItemCount()) {
- priorityCombos[j].add(oldSelection, insertionPoint);
- } else {
- priorityCombos[j].add(oldSelection);
- }
- priorityCombos[j].select(priorityCombos[j].indexOf(oldSelection));
- ascendingButtons[index].setSelection(ascendingButtons[j].getSelection());
- descendingButtons[index].setSelection(descendingButtons[j].getSelection());
- ascendingButtons[j].setSelection(oldSelectionDirection == 1);
- descendingButtons[j].setSelection(oldSelectionDirection == -1);
- }
- //this combo contains newSelection
- else if (newSelectionIndex >= 0) {
- String currentText = priorityCombos[j].getText();
- priorityCombos[j].remove(newSelection);
- int insertionPoint = -1
- - Arrays.binarySearch(priorityCombos[j].getItems(), oldSelection,
- columnComparator);
- if (insertionPoint >= 0 && insertionPoint <= priorityCombos[j].getItemCount()) {
- priorityCombos[j].add(oldSelection, insertionPoint);
- priorityCombos[j].select(priorityCombos[j].indexOf(currentText));
- } else {
- priorityCombos[j].add(oldSelection);
- }
- }
- }
- markDirty();
- }
- });
- } else {
- priorityCombos[i].addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- markDirty();
- }
- });
- }
-
- }
- int a[] = new int[2];
- int b[] = new int[2];
- a[0] = taskComparator.getSortByIndex().ordinal();
- a[1] = taskComparator.getSortByIndex2().ordinal();
- b[0] = taskComparator.getSortDirection();
- b[1] = taskComparator.getSortDirection2();
- updateUI(a, b);
- Dialog.applyDialogFont(composite);
- return composite;
- }
-
- @Override
- protected void okPressed() {
- if (isDirty()) {
- taskComparator.setSortByIndex(SortByIndex.valueOfLabel(priorityCombos[0].getText()));
- taskComparator.setSortByIndex2(SortByIndex.valueOfLabel(priorityCombos[1].getText()));
- if (descendingButtons[0].getSelection()) {
- taskComparator.setSortDirection(-1);
- } else {
- taskComparator.setSortDirection(1);
- }
- if (descendingButtons[1].getSelection()) {
- taskComparator.setSortDirection2(-1);
- } else {
- taskComparator.setSortDirection2(1);
- }
- }
- super.okPressed();
- }
-
- protected boolean isDirty() {
- return dirty;
- }
-
- /**
- * Sets the dirty flag to true.
- */
- protected void markDirty() {
- dirty = true;
- }
-
- private final Comparator<String> columnComparator = new Comparator<String>() {
- public int compare(String arg0, String arg1) {
- int index0 = -1;
- int index1 = -1;
- for (int i = 0; i < propertyText.length; i++) {
- if (propertyText[i].equals(arg0)) {
- index0 = i;
- }
- if (propertyText[i].equals(arg1)) {
- index1 = i;
- }
- }
- return index0 - index1;
- }
- };
-
- protected void updateUI(int[] priorities, int[] directions) {
- ArrayList<String> availablePriorities = new ArrayList<String>(Arrays.asList(propertyText));
-
- for (int i = 0; i < priorityCombos.length; i++) {
- priorityCombos[i].removeAll();
- for (int j = 0; j < availablePriorities.size(); j++) {
- priorityCombos[i].add(availablePriorities.get(j));
- }
- priorityCombos[i].select(priorityCombos[i].indexOf(propertyText[priorities[i]]));
- availablePriorities.remove(propertyText[priorities[i]]);
- ascendingButtons[i].setSelection(directions[i] == 1);
- descendingButtons[i].setSelection(directions[i] == -1);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java
deleted file mode 100644
index 36fe7ab10..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskListSortDialog.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * @author Frank Becker
- */
-public class TaskListSortDialog extends TaskCompareDialog {
-
- public TaskListSortDialog(IShellProvider parentShell, TaskListView taskListView) {
- super(parentShell, taskListView.getSorter().getComparator());
- setTitle(Messages.TaskListSortDialog_Title);
- }
-
- @Override
- protected void createDialogStartArea(Composite parent) {
- Label sortByLabel = new Label(parent, SWT.NULL);
- sortByLabel.setText(Messages.TaskListSortDialog_Sort_order);
- GridData data = new GridData();
- data.horizontalSpan = 3;
- sortByLabel.setLayoutData(data);
- Dialog.applyDialogFont(parent);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskRepositoryCredentialsDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskRepositoryCredentialsDialog.java
deleted file mode 100644
index 13a6b71c0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/TaskRepositoryCredentialsDialog.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class TaskRepositoryCredentialsDialog extends TitleAreaDialog {
-
- private static final String DIALOG_TITLE = Messages.TaskRepositoryCredentialsDialog_Enter_Credentials;
-
- private static final String IMAGE_FILE_KEYLOCK = "icons/wizban/secur_role_wiz.gif"; //$NON-NLS-1$
-
- public static final int TASK_REPOSITORY_CHANGED = 1000;
-
- private static final String MESSAGE = Messages.TaskRepositoryCredentialsDialog_Enter_repository_credentials;
-
- private static final String TITLE = Messages.TaskRepositoryCredentialsDialog_Repository_Authentication;
-
- public static TaskRepositoryCredentialsDialog createDialog(Shell shell) {
- return new TaskRepositoryCredentialsDialog(shell);
- }
-
- private Image keyLockImage;
-
- private String message;
-
- private String password = ""; //$NON-NLS-1$
-
- private boolean savePassword;
-
- private TaskRepository taskRepository;
-
- private String username = ""; //$NON-NLS-1$
-
- private TaskRepositoryCredentialsDialog(Shell parentShell) {
- super(parentShell);
- }
-
- @Override
- public boolean close() {
- if (keyLockImage != null) {
- keyLockImage.dispose();
- }
- return super.close();
- }
-
- private void createLinkArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(1, false));
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Link link = new Link(composite, SWT.WRAP);
- link.setText(Messages.TaskRepositoryCredentialsDialog_HTML_Open_Repository_Properties);
- link.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- close();
- int returnCode = TasksUiUtil.openEditRepositoryWizard(taskRepository);
- if (returnCode == Window.OK) {
- setReturnCode(TASK_REPOSITORY_CHANGED);
- } else {
- setReturnCode(returnCode);
- }
- }
- });
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(
- convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH), SWT.DEFAULT).grab(true,
- false).applyTo(link);
- }
-
- private void createCenterArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(2, false));
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- if (taskRepository != null) {
- Composite labelComposite = new Composite(composite, SWT.NONE);
- GridLayout layout = new GridLayout(3, false);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- labelComposite.setLayout(layout);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).applyTo(
- labelComposite);
-
- Label label = new Label(labelComposite, SWT.NONE);
- label.setImage(TasksUiPlugin.getDefault().getBrandingIcon(taskRepository.getConnectorKind()));
-
- label = new Label(labelComposite, SWT.NONE);
- label.setText(Messages.TaskRepositoryCredentialsDialog_Task_Repository);
-
- label = new Label(labelComposite, SWT.NONE);
- label.setText(taskRepository.getRepositoryLabel());
- }
-
- new Label(composite, SWT.NONE).setText(Messages.TaskRepositoryCredentialsDialog_User_ID);
-
- final Text usernameField = new Text(composite, SWT.BORDER);
- usernameField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- username = usernameField.getText();
- }
- });
- usernameField.setText(username);
- if (username.length() == 0) {
- usernameField.setFocus();
- }
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.CENTER)
- .hint(convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH), SWT.DEFAULT)
- .grab(true, false)
- .applyTo(usernameField);
-
- new Label(composite, SWT.NONE).setText(Messages.TaskRepositoryCredentialsDialog_Password);
-
- final Text passwordField = new Text(composite, SWT.BORDER | SWT.PASSWORD);
- passwordField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- password = passwordField.getText();
- }
- });
- passwordField.setText(password);
- if (username.length() > 0) {
- passwordField.setFocus();
- }
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.CENTER)
- .hint(convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH), SWT.DEFAULT)
- .grab(true, false)
- .applyTo(passwordField);
-
- final Button savePasswordButton = new Button(composite, SWT.CHECK);
- savePasswordButton.setText(Messages.TaskRepositoryCredentialsDialog_Save_Password);
- savePasswordButton.setSelection(savePassword);
- savePasswordButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- savePassword = savePasswordButton.getSelection();
- }
- });
- GridDataFactory.fillDefaults().span(2, 1).applyTo(savePasswordButton);
-
- createWarningMessage(composite);
- }
-
- @Override
- protected Control createContents(Composite parent) {
- getShell().setText(DIALOG_TITLE);
-
- setTitle(TITLE);
- Control control = super.createContents(parent);
- if (taskRepository != null) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- if (connector != null) {
- setTitle(connector.getShortLabel() + " " + TITLE); //$NON-NLS-1$
- }
- }
-
- ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(TasksUiPlugin.ID_PLUGIN,
- IMAGE_FILE_KEYLOCK);
- if (descriptor != null) {
- keyLockImage = descriptor.createImage();
- setTitleImage(keyLockImage);
- }
- if (message != null) {
- super.setMessage(message);
- } else {
- super.setMessage(MESSAGE);
- }
- applyDialogFont(control);
- return control;
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite parent2 = (Composite) super.createDialogArea(parent);
-
- Composite composite = new Composite(parent2, SWT.NONE);
- composite.setLayout(new GridLayout(1, false));
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).applyTo(composite);
-
- createCenterArea(composite);
- if (taskRepository != null) {
- createLinkArea(composite);
- }
-
- composite.pack();
- return parent;
- }
-
- private void createWarningMessage(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- composite.setLayout(layout);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).applyTo(composite);
-
- Label label = new Label(composite, SWT.NONE);
- label.setImage(Dialog.getImage(DLG_IMG_MESSAGE_WARNING));
- label.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING));
-
- label = new Label(composite, SWT.WRAP);
- label.setText(Messages.TaskRepositoryCredentialsDialog_Saved_passwords_are_stored_that_is_difficult);
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(
- convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH), SWT.DEFAULT).grab(true,
- false).applyTo(label);
- }
-
- public String getMessage() {
- return message;
- }
-
- public String getPassword() {
- return password;
- }
-
- public boolean getSavePassword() {
- return savePassword;
- }
-
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
-
- public String getUserName() {
- return username;
- }
-
- @Override
- public void setMessage(String message) {
- this.message = message;
- }
-
- public void setPassword(String password) {
- if (password == null) {
- throw new IllegalArgumentException();
- }
- this.password = password;
- }
-
- public void setSavePassword(boolean savePassword) {
- this.savePassword = savePassword;
- }
-
- public void setTaskRepository(TaskRepository taskRepository) {
- this.taskRepository = taskRepository;
- }
-
- public void setUsername(String username) {
- if (username == null) {
- throw new IllegalArgumentException();
- }
- this.username = username;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java
deleted file mode 100644
index eba1c9eaa..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendControl.java
+++ /dev/null
@@ -1,573 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.dialogs;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFonts;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.LegendElement;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @author Mik Kersten
- * @author Leo Dos Santos
- */
-public class UiLegendControl extends Composite {
-
- private final FormToolkit toolkit;
-
- private Window window = null;
-
- private final TaskElementLabelProvider labelProvider = new TaskElementLabelProvider(false);
-
- private final IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
-
- private final ArrayList<LegendElement> legendElements = new ArrayList<LegendElement>();
-
- public UiLegendControl(Composite parent, FormToolkit toolkit) {
- this(parent, toolkit, true, SWT.VERTICAL);
- }
-
- public UiLegendControl(Composite parent, FormToolkit toolkit, boolean showConnectors, int style) {
- super(parent, SWT.NONE);
- this.toolkit = toolkit;
- toolkit.adapt(this);
-
- addListeners();
-
- TableWrapLayout layout = new TableWrapLayout();
- layout.leftMargin = 0;
- layout.rightMargin = 0;
- layout.topMargin = 0;
- layout.bottomMargin = 0;
-
- if (style == SWT.DEFAULT) {
- createContentsVertical(layout, showConnectors);
- } else if ((style & SWT.HORIZONTAL) != 0) {
- createContentsHorizontal(layout, showConnectors);
- } else {
- createContentsVertical(layout, showConnectors);
- }
-
- setLayout(layout);
- setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB));
- }
-
- private void addListeners() {
- addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- doDispose();
- }
- });
- }
-
- private void doDispose() {
- for (LegendElement element : legendElements) {
- element.dispose();
- }
- if (labelProvider != null) {
- labelProvider.dispose();
- }
- dispose();
- }
-
- public void setWindow(Window window) {
- this.window = window;
- }
-
- public boolean close() {
- if (window != null) {
- return window.close();
- } else {
- return false;
- }
- }
-
- private void createContentsHorizontal(TableWrapLayout layout, boolean showConnectors) {
- layout.numColumns = 2;
- createTasksPrioritiesSection(this);
- createContextSection(this);
- createActivitySection(this);
- createSynchronizationSection(this);
-
- Composite subComp = toolkit.createComposite(this);
- TableWrapLayout subLayout = new TableWrapLayout();
- subLayout.topMargin = 0;
- subLayout.bottomMargin = 0;
- subLayout.leftMargin = 0;
- subLayout.rightMargin = 0;
- subComp.setLayout(subLayout);
- subComp.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB, 1, 2));
-
- if (showConnectors) {
- createConnectorsSection(subComp);
- }
- createGettingStartedSection(subComp);
- }
-
- private void createContentsVertical(TableWrapLayout layout, boolean showConnectors) {
- layout.numColumns = 1;
- createTasksPrioritiesSection(this);
- createActivitySection(this);
- createContextSection(this);
- createSynchronizationSection(this);
- if (showConnectors) {
- createConnectorsSection(this);
- }
- createGettingStartedSection(this);
- }
-
- private void createTasksPrioritiesSection(Composite parent) {
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = true;
- layout.leftMargin = 0;
- layout.rightMargin = 0;
- layout.topMargin = 0;
- layout.bottomMargin = 0;
-
- Composite composite = toolkit.createComposite(parent);
- composite.setLayout(layout);
- composite.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- createTasksSection(composite);
- createPrioritiesSection(composite);
- }
-
- private void createTasksSection(Composite parent) {
- Section tasksSection = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- tasksSection.setText(Messages.UiLegendControl_Tasks);
- tasksSection.setLayout(new TableWrapLayout());
- tasksSection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = false;
- layout.verticalSpacing = 1;
- layout.topMargin = 1;
- layout.bottomMargin = 1;
-
- Composite tasksClient = toolkit.createComposite(tasksSection);
- tasksClient.setLayout(layout);
- tasksClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- tasksSection.setClient(tasksClient);
-
- Label imageLabel;
- imageLabel = toolkit.createLabel(tasksClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.TASK));
- toolkit.createLabel(tasksClient, Messages.UiLegendControl_Task);
-
- imageLabel = toolkit.createLabel(tasksClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.CATEGORY));
- toolkit.createLabel(tasksClient, Messages.UiLegendControl_Category);
-
- imageLabel = toolkit.createLabel(tasksClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.QUERY));
- toolkit.createLabel(tasksClient, Messages.UiLegendControl_Query);
-
- imageLabel = toolkit.createLabel(tasksClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.CALENDAR));
- toolkit.createLabel(tasksClient, Messages.UiLegendControl_Date_range);
-
- imageLabel = toolkit.createLabel(tasksClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.BLANK));
-
- Hyperlink openView = toolkit.createHyperlink(tasksClient, Messages.UiLegendControl_Open_Task_List_, SWT.WRAP);
- openView.addHyperlinkListener(new IHyperlinkListener() {
- public void linkActivated(HyperlinkEvent e) {
- close();
- TasksUiUtil.openTasksViewInActivePerspective();
- }
-
- public void linkEntered(HyperlinkEvent e) {
- // ignore
- }
-
- public void linkExited(HyperlinkEvent e) {
- // ignore
- }
- });
- }
-
- private void createPrioritiesSection(Composite parent) {
- Section prioritiesSection = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- prioritiesSection.setText(Messages.UiLegendControl_Priorities);
- prioritiesSection.setLayout(new TableWrapLayout());
- prioritiesSection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = false;
- layout.verticalSpacing = 1;
- layout.topMargin = 1;
- layout.bottomMargin = 1;
-
- Composite prioritiesClient = toolkit.createComposite(prioritiesSection);
- prioritiesClient.setLayout(layout);
- prioritiesClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- prioritiesSection.setClient(prioritiesClient);
-
- Label imageLabel;
- imageLabel = toolkit.createLabel(prioritiesClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.PRIORITY_1));
- toolkit.createLabel(prioritiesClient, PriorityLevel.P1.getDescription());
-
- imageLabel = toolkit.createLabel(prioritiesClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.PRIORITY_2));
- toolkit.createLabel(prioritiesClient, PriorityLevel.P2.getDescription());
-
- imageLabel = toolkit.createLabel(prioritiesClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.PRIORITY_3));
- toolkit.createLabel(prioritiesClient, PriorityLevel.P3.getDescription() + Messages.UiLegendControl__default_);
-
- imageLabel = toolkit.createLabel(prioritiesClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.PRIORITY_4));
- toolkit.createLabel(prioritiesClient, PriorityLevel.P4.getDescription());
-
- imageLabel = toolkit.createLabel(prioritiesClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.PRIORITY_5));
- toolkit.createLabel(prioritiesClient, PriorityLevel.P5.getDescription());
- }
-
- private void createActivitySection(Composite parent) {
- Section activitySection = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- activitySection.setText(Messages.UiLegendControl_Task_Activity);
- activitySection.setLayout(new TableWrapLayout());
- activitySection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = false;
- layout.verticalSpacing = 1;
- layout.topMargin = 1;
- layout.bottomMargin = 1;
-
- Composite activityClient = toolkit.createComposite(activitySection);
- activityClient.setLayout(layout);
- activityClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- activitySection.setClient(activityClient);
-
- Label imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.TASK));
- Label labelToday = toolkit.createLabel(activityClient, Messages.UiLegendControl_Scheduled_for_today);
- labelToday.setForeground(themeManager.getCurrentTheme().getColorRegistry().get(
- CommonThemes.COLOR_SCHEDULED_TODAY));
-
- imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.TASK));
- Label labelOverdue = toolkit.createLabel(activityClient, Messages.UiLegendControl_Past_scheduled_date);
- labelOverdue.setForeground(themeManager.getCurrentTheme().getColorRegistry().get(
- CommonThemes.COLOR_SCHEDULED_PAST));
-
-// imageLabel = toolkit.createLabel(activityClient, "");
-// imageLabel.setImage(TasksUiImages.getImage(TasksUiImages.TASK));
-// Label labelThisWeek = toolkit.createLabel(activityClient, "Scheduled for this
-// week");
-// labelThisWeek.setForeground(themeManager.getCurrentTheme().getColorRegistry().get(
-// TaskListColorsAndFonts.THEME_COLOR_TASK_THISWEEK_SCHEDULED));
-
- imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.TASK));
- Label labelCompleted = toolkit.createLabel(activityClient, Messages.UiLegendControl_Completed);
- labelCompleted.setFont(CommonFonts.STRIKETHROUGH);
-// labelCompleted.setForeground(TaskListColorsAndFonts.COLOR_TASK_COMPLETED);
- labelCompleted.setForeground(themeManager.getCurrentTheme()
- .getColorRegistry()
- .get(CommonThemes.COLOR_COMPLETED));
-
- imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.TASK));
- Label labelCompletedToday = toolkit.createLabel(activityClient, Messages.UiLegendControl_Completed_today);
- labelCompletedToday.setFont(CommonFonts.STRIKETHROUGH);
- labelCompletedToday.setForeground(themeManager.getCurrentTheme().getColorRegistry().get(
- CommonThemes.COLOR_COMPLETED_TODAY));
-
- imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_DATE_DUE));
- toolkit.createLabel(activityClient, Messages.UiLegendControl_Has_due_date);
-
- imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_DATE_OVERDUE));
- Label textLabel = toolkit.createLabel(activityClient, Messages.UiLegendControl_Past_Due_date);
- textLabel.setForeground(themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_OVERDUE));
-
- imageLabel = toolkit.createLabel(activityClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.BLANK));
- Hyperlink adjust = toolkit.createHyperlink(activityClient, Messages.UiLegendControl_Adjust_Colors_and_Fonts_, SWT.WRAP);
- adjust.addHyperlinkListener(new IHyperlinkListener() {
- public void linkActivated(HyperlinkEvent e) {
- PreferenceDialog dlg = PreferencesUtil.createPreferenceDialogOn(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getShell(), ITasksUiConstants.ID_PREFERENCES_COLORS_AND_FONTS,
- new String[] { ITasksUiConstants.ID_PREFERENCES_COLORS_AND_FONTS }, null);
- dlg.open();
- }
-
- public void linkEntered(HyperlinkEvent e) {
- // ignore
- }
-
- public void linkExited(HyperlinkEvent e) {
- // ignore
- }
- });
- }
-
- private void createContextSection(Composite parent) {
- Section contextSection = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- contextSection.setText(Messages.UiLegendControl_Task_Context);
- contextSection.setLayout(new TableWrapLayout());
- contextSection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = false;
- layout.verticalSpacing = 1;
- layout.topMargin = 1;
- layout.bottomMargin = 1;
-
- Composite contextClient = toolkit.createComposite(contextSection);
- contextClient.setLayout(layout);
- contextClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- contextSection.setClient(contextClient);
-
- Label imageLabel;
- imageLabel = toolkit.createLabel(contextClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.CONTEXT_FOCUS));
- toolkit.createLabel(contextClient, Messages.UiLegendControl_Focus_view_on_active_task);
-
- imageLabel = toolkit.createLabel(contextClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE_EMPTY));
- toolkit.createLabel(contextClient, Messages.UiLegendControl_Inactive_task_with_no_context);
-
- imageLabel = toolkit.createLabel(contextClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE));
- toolkit.createLabel(contextClient, Messages.UiLegendControl_Inactive_task_with_context);
-
- imageLabel = toolkit.createLabel(contextClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(TasksUiImages.CONTEXT_ACTIVE));
- toolkit.createLabel(contextClient, Messages.UiLegendControl_Active_task);
- }
-
- private void createSynchronizationSection(Composite parent) {
- Section synchroSection = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- synchroSection.setText(Messages.UiLegendControl_Synchronization);
- synchroSection.setLayout(new TableWrapLayout());
- synchroSection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = false;
- layout.verticalSpacing = 3;
- layout.topMargin = 1;
- layout.bottomMargin = 1;
-
- Composite synchroClient = toolkit.createComposite(synchroSection);
- synchroClient.setLayout(layout);
- synchroClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- synchroSection.setClient(synchroClient);
-
- Label imageLabel;
- imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING_NEW));
- toolkit.createLabel(synchroClient, Messages.UiLegendControl_New_task);
-
- imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING));
- toolkit.createLabel(synchroClient, Messages.UiLegendControl_Incoming_changes);
-
- imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_OUTGOING));
- toolkit.createLabel(synchroClient, Messages.UiLegendControl_Outgoing_changes);
-
- imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_OUTGOING_NEW));
- toolkit.createLabel(synchroClient, Messages.UiLegendControl_Unsubmitted_outgoing_changes);
-
- imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_WARNING));
- toolkit.createLabel(synchroClient, Messages.UiLegendControl_Synchronization_failed);
-
- imageLabel = toolkit.createLabel(synchroClient, ""); //$NON-NLS-1$
- imageLabel.setImage(CommonImages.getImage(CommonImages.OVERLAY_SYNC_CONFLICT));
- toolkit.createLabel(synchroClient, Messages.UiLegendControl_Conflicting_changes);
- }
-
- @SuppressWarnings("deprecation")
- private void createConnectorsSection(Composite parent) {
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 3;
- layout.makeColumnsEqualWidth = true;
- layout.leftMargin = 0;
- layout.rightMargin = 0;
- layout.topMargin = 0;
- layout.bottomMargin = 0;
-
- Composite composite = toolkit.createComposite(parent);
- composite.setLayout(layout);
- composite.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- Collection<AbstractRepositoryConnector> connectors = TasksUi.getRepositoryManager().getRepositoryConnectors();
- for (AbstractRepositoryConnector connector : connectors) {
- AbstractRepositoryConnectorUi connectorUi = TasksUi.getRepositoryConnectorUi(connector.getConnectorKind());
- if (connectorUi != null) {
- List<LegendElement> elements = connectorUi.getLegendElements();
- if (elements != null && elements.size() > 0) {
- legendElements.addAll(elements);
- addLegendElements(composite, connector, elements);
- } else {
- List<ITask> items = connectorUi.getLegendItems();
- if (items != null && !items.isEmpty()) {
- addLegacyLegendItems(composite, connector, items);
- }
- }
- }
- }
- }
-
- private void addLegendElements(Composite composite, AbstractRepositoryConnector connector,
- List<LegendElement> elements) {
- Section connectorSection = toolkit.createSection(composite, ExpandableComposite.TITLE_BAR);
- connectorSection.setLayout(new TableWrapLayout());
- connectorSection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- String label = connector.getLabel();
- int parenIndex = label.indexOf('(');
- if (parenIndex != -1) {
- label = label.substring(0, parenIndex);
- }
- connectorSection.setText(label);
-
- TableWrapLayout clientLayout = new TableWrapLayout();
- clientLayout.numColumns = 2;
- clientLayout.makeColumnsEqualWidth = false;
- clientLayout.verticalSpacing = 1;
- clientLayout.topMargin = 1;
- clientLayout.bottomMargin = 1;
-
- Composite connectorClient = toolkit.createComposite(connectorSection);
- connectorClient.setLayout(clientLayout);
- connectorClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- connectorSection.setClient(connectorClient);
-
- Label imageLabel;
- for (LegendElement element : elements) {
- imageLabel = toolkit.createLabel(connectorClient, ""); //$NON-NLS-1$
- imageLabel.setImage(element.getImage());
- toolkit.createLabel(connectorClient, element.getLabel());
- }
-
- if (elements.size() < 4) {
- imageLabel = toolkit.createLabel(connectorClient, ""); //$NON-NLS-1$
- toolkit.createLabel(connectorClient, ""); //$NON-NLS-1$
- }
- }
-
- private void addLegacyLegendItems(Composite composite, AbstractRepositoryConnector connector, List<ITask> elements) {
- Section connectorSection = toolkit.createSection(composite, ExpandableComposite.TITLE_BAR);
- connectorSection.setLayout(new TableWrapLayout());
- connectorSection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- String label = connector.getLabel();
- int parenIndex = label.indexOf('(');
- if (parenIndex != -1) {
- label = label.substring(0, parenIndex);
- }
- connectorSection.setText(label);
-
- TableWrapLayout clientLayout = new TableWrapLayout();
- clientLayout.numColumns = 2;
- clientLayout.makeColumnsEqualWidth = false;
- clientLayout.verticalSpacing = 1;
- clientLayout.topMargin = 1;
- clientLayout.bottomMargin = 1;
-
- Composite connectorClient = toolkit.createComposite(connectorSection);
- connectorClient.setLayout(clientLayout);
- connectorClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- connectorSection.setClient(connectorClient);
-
- Label imageLabel;
- for (IRepositoryElement taskListElement : elements) {
- imageLabel = toolkit.createLabel(connectorClient, ""); //$NON-NLS-1$
- imageLabel.setImage(labelProvider.getImage(taskListElement));
- toolkit.createLabel(connectorClient, taskListElement.getSummary());
- }
-
- if (elements.size() < 4) {
- imageLabel = toolkit.createLabel(connectorClient, ""); //$NON-NLS-1$
- toolkit.createLabel(connectorClient, ""); //$NON-NLS-1$
- }
- }
-
- private void createGettingStartedSection(Composite parent) {
- TableWrapLayout layout = new TableWrapLayout();
- layout.verticalSpacing = 0;
- layout.leftMargin = 0;
- layout.rightMargin = 0;
- layout.topMargin = 0;
- layout.bottomMargin = 0;
-
- Composite hyperlinkClient = toolkit.createComposite(parent);
- hyperlinkClient.setLayout(layout);
- hyperlinkClient.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- Hyperlink gettingStartedLink = toolkit.createHyperlink(hyperlinkClient,
- Messages.UiLegendControl_Also_see_the_Getting_Started_documentation_online, SWT.WRAP);
- gettingStartedLink.addHyperlinkListener(new IHyperlinkListener() {
- public void linkActivated(HyperlinkEvent e) {
- close();
- TasksUiUtil.openUrl(Messages.UiLegendControl_http_www_eclipse_org_mylyn_start);
- }
-
- public void linkEntered(HyperlinkEvent e) {
- // ignore
- }
-
- public void linkExited(HyperlinkEvent e) {
- // ignore
- }
- });
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendDialog.java
deleted file mode 100644
index cb488d25b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/UiLegendDialog.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.dialogs;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.PopupDialog;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-/**
- * @author Mik Kersten
- * @author Leo Dos Santos
- */
-public class UiLegendDialog extends PopupDialog {
-
- private FormToolkit toolkit;
-
- private ScrolledForm form;
-
- private UiLegendControl content;
-
- // TODO e3.4 move to new api
- @SuppressWarnings("deprecation")
- public UiLegendDialog(Shell parent) {
- super(parent, PopupDialog.INFOPOPUP_SHELLSTYLE | SWT.ON_TOP, false, false, false, false, null, null);
- }
-
- @Override
- protected Control createContents(Composite parent) {
- getShell().setBackground(getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
- return createDialogArea(parent);
- }
-
- @Override
- public int open() {
- int open = super.open();
-// getShell().setLocation(getShell().getLocation().x, getShell().getLocation().y+20);
- getShell().setFocus();
- return open;
- }
-
- @Override
- public boolean close() {
- if (form != null && !form.isDisposed()) {
- form.dispose();
- }
-
- if (toolkit != null) {
- if (toolkit.getColors() != null) {
- toolkit.dispose();
- }
- }
-
- if (content != null && !content.isDisposed()) {
- content.dispose();
- }
-
- return super.close();
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- toolkit = new FormToolkit(parent.getDisplay());
- form = toolkit.createScrolledForm(parent);
- form.setText(Messages.UiLegendControl_Tasks_UI_Legend);
- form.getToolBarManager().add(new CloseDialogAction());
- form.getToolBarManager().update(true);
- form.getBody().setLayout(new TableWrapLayout());
- toolkit.decorateFormHeading(form.getForm());
-
- content = new UiLegendControl(form.getBody(), toolkit);
- content.setWindow(this);
-
- return parent;
- }
-
- private class CloseDialogAction extends Action {
-
- private CloseDialogAction() {
- setImageDescriptor(CommonImages.NOTIFICATION_CLOSE);
- setText(Messages.UiLegendDialog_Close_Dialog);
- }
-
- @Override
- public void run() {
- close();
- }
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties
deleted file mode 100644
index 1513d5c38..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/dialogs/messages.properties
+++ /dev/null
@@ -1,54 +0,0 @@
-TaskCompareDialog_Ascending=Ascending
-TaskCompareDialog_DateCreated=Date Created
-TaskCompareDialog_Descending=Descending
-TaskCompareDialog_Priority=Priority
-TaskCompareDialog_Sorting=Sorting
-TaskCompareDialog_SortOrder=Sort order:
-TaskCompareDialog_Summary=Summary
-TaskCompareDialog_TaskID=Task ID
-TaskListSortDialog_Sort_order=Sort order for tasks\:
-TaskListSortDialog_Title=Task List Sorting
-
-TaskRepositoryCredentialsDialog_Enter_Credentials=Enter Credentials
-TaskRepositoryCredentialsDialog_Enter_repository_credentials=Enter repository credentials
-TaskRepositoryCredentialsDialog_HTML_Open_Repository_Properties=<a href="properties">Open Repository Properties</a> to disable background synchronization by disconnecting the repository.
-TaskRepositoryCredentialsDialog_Password=&Password:
-TaskRepositoryCredentialsDialog_Repository_Authentication=Repository Authentication
-TaskRepositoryCredentialsDialog_Save_Password=&Save Password
-TaskRepositoryCredentialsDialog_Saved_passwords_are_stored_that_is_difficult=Saved passwords are stored on your computer in a file that is difficult, but not impossible, for an intruder to read.
-TaskRepositoryCredentialsDialog_Task_Repository=Task Repository\:
-TaskRepositoryCredentialsDialog_User_ID=&User ID:
-
-UiLegendControl_Active_task=Active task
-UiLegendControl_Adjust_Colors_and_Fonts_=Adjust Colors and Fonts...
-UiLegendControl_Also_see_the_Getting_Started_documentation_online=Also see the Getting Started documentation online
-UiLegendControl_Category=Category
-UiLegendControl_Completed=Completed
-UiLegendControl_Completed_today=Completed today
-UiLegendControl_Conflicting_changes=Conflicting changes, need to synchronize
-UiLegendControl_Date_range=Date range
-UiLegendControl__default_=\ (default)
-UiLegendControl_Focus_view_on_active_task=Focus view on active task
-UiLegendControl_Has_due_date=Has due date
-UiLegendControl_http_www_eclipse_org_mylyn_start=http://www.eclipse.org/mylyn/start/
-UiLegendControl_Inactive_task_with_context=Inactive task with context
-UiLegendControl_Inactive_task_with_no_context=Inactive task with no context
-UiLegendControl_Incoming_changes=Incoming changes, open to view
-UiLegendControl_New_task=New task, open to view
-UiLegendControl_Open_Task_List_=Open Task List...
-UiLegendControl_Outgoing_changes=Outgoing changes
-UiLegendControl_Past_Due_date=Past Due date
-UiLegendControl_Past_scheduled_date=Past scheduled date
-UiLegendControl_Priorities=Priorities
-UiLegendControl_Query=Query
-UiLegendControl_Scheduled_for_today=Scheduled for today
-UiLegendControl_Synchronization=Synchronization
-UiLegendControl_Synchronization_failed=Synchronization failed, mouse over for details
-UiLegendControl_Task=Task
-UiLegendControl_Task_Activity=Task Activity
-UiLegendControl_Task_Context=Task Context
-UiLegendControl_Tasks=Tasks
-UiLegendControl_Tasks_UI_Legend=Tasks UI Legend
-UiLegendControl_Unsubmitted_outgoing_changes=Unsubmitted outgoing changes
-
-UiLegendDialog_Close_Dialog=Close Dialog
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java
deleted file mode 100644
index 4820603db..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractHyperlinkTextPresentationManager.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextPresentationListener;
-import org.eclipse.jface.text.ITextViewerExtension4;
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.mylyn.tasks.ui.IHighlightingHyperlink;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-import org.eclipse.swt.custom.StyleRange;
-
-/**
- * A manager that ensures that all task hyperlinks have the appropriate text presentation. Subclasses may specify logic
- * for filtering detected hyperlinks and text decoration.
- *
- * @author David Green
- */
-public abstract class AbstractHyperlinkTextPresentationManager {
-
- private static class RegionComparator implements Comparator<IRegion> {
-
- public int compare(IRegion o1, IRegion o2) {
- if (o1 == o2) {
- return 0;
- }
- if (o1.getOffset() < o2.getOffset()) {
- return -1;
- } else if (o1.getOffset() > o2.getOffset()) {
- return 1;
- } else if (o1.getLength() < o2.getLength()) {
- return -1;
- } else {
- return 1;
- }
- }
-
- }
-
- private class Support implements ITextPresentationListener {
- public void applyTextPresentation(TextPresentation textPresentation) {
- StyleRange[] styleRanges = computeStyleRanges(textPresentation.getCoverage());
- if (styleRanges != null && styleRanges.length > 0) {
- textPresentation.mergeStyleRanges(styleRanges);
- }
- }
- }
-
- private static final RegionComparator REGION_COMPARATOR = new RegionComparator();
-
- private IHyperlinkDetector[] hyperlinkDetectors;
-
- private final ITextPresentationListener textPresentationListener = new Support();
-
- private ISourceViewer viewer;
-
- public AbstractHyperlinkTextPresentationManager() {
- }
-
- private void addRange(List<StyleRange> ranges, int start, int end) {
- // the style range is to be merged with other styles, so only set the bits that are needed
- StyleRange styleRange = new StyleRange(start, end - start, null, null);
- decorate(styleRange);
- ranges.add(styleRange);
- }
-
- protected StyleRange[] computeStyleRanges(IRegion extent) {
- if (viewer == null || hyperlinkDetectors == null || viewer.getDocument() == null || extent == null) {
- return null;
- }
- List<IRegion> regions = getRegions(extent);
- if (regions != null) {
- // style ranges may be adjacent but must not overlap, and they must be in order
- // of increasing offset.
- List<StyleRange> ranges = new ArrayList<StyleRange>(regions.size());
- // sort them first to ensure increasing offset
- Collections.sort(regions, REGION_COMPARATOR);
- // now merge overlapping (and adjacent) ranges
- int start = -1;
- int end = -1;
- for (int x = 0; x < regions.size(); ++x) {
- IRegion region = regions.get(x);
- if (start == -1) {
- start = region.getOffset();
- end = region.getOffset() + region.getLength();
- } else {
- if (region.getOffset() >= end) {
- addRange(ranges, start, end);
- start = region.getOffset();
- end = region.getOffset() + region.getLength();
- } else {
- end = region.getOffset() + region.getLength();
- }
- }
- }
- if (start != -1) {
- addRange(ranges, start, end);
- }
- return ranges.toArray(new StyleRange[ranges.size()]);
- }
- return null;
- }
-
- protected abstract void decorate(StyleRange styleRange);
-
- /**
- * The hyperlink detectors that are used to detect {@link TaskHyperlink task hyperlinks}
- */
- public IHyperlinkDetector[] getHyperlinkDetector() {
- return hyperlinkDetectors;
- }
-
- protected List<IRegion> getRegions(IRegion extent) {
- List<IRegion> regions = null;
- for (IHyperlinkDetector hyperlinkDetector : hyperlinkDetectors) {
- IHyperlink[] hyperlinks = hyperlinkDetector.detectHyperlinks(viewer, extent, true);
- if (hyperlinks != null && hyperlinks.length > 0) {
- for (IHyperlink hyperlink : hyperlinks) {
- if (select(hyperlink)) {
- if (regions == null) {
- regions = new ArrayList<IRegion>();
- }
- regions.add(hyperlink instanceof IHighlightingHyperlink ? ((IHighlightingHyperlink) hyperlink).getHighlightingRegion()
- : hyperlink.getHyperlinkRegion());
- }
- }
- }
- }
- return regions;
- }
-
- public void install(ISourceViewer viewer) {
- this.viewer = viewer;
- ((ITextViewerExtension4) viewer).addTextPresentationListener(textPresentationListener);
- }
-
- public boolean select(IHyperlink hyperlink) {
- return true;
- }
-
- /**
- * The hyperlink detector that are used to detect {@link TaskHyperlink task hyperlinks}
- */
- public void setHyperlinkDetectors(IHyperlinkDetector[] hyperlinkDetectors) {
- this.hyperlinkDetectors = hyperlinkDetectors;
- }
-
- public void uninstall() {
- ((ITextViewerExtension4) viewer).removeTextPresentationListener(textPresentationListener);
- this.viewer = null;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractReplyToCommentAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractReplyToCommentAction.java
deleted file mode 100644
index f04fe1a45..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AbstractReplyToCommentAction.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.mylyn.internal.tasks.core.CommentQuoter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class AbstractReplyToCommentAction extends Action {
-
- private final AbstractTaskEditorPage editor;
-
- private final ITaskComment taskComment;
-
- public AbstractReplyToCommentAction(AbstractTaskEditorPage editor, ITaskComment taskComment) {
- this.editor = editor;
- this.taskComment = taskComment;
- setImageDescriptor(TasksUiImages.COMMENT_REPLY);
- setText(Messages.AbstractReplyToCommentAction_Reply);
- setToolTipText(Messages.AbstractReplyToCommentAction_Reply);
- }
-
- protected abstract String getReplyText();
-
- @Override
- public void run() {
- reply(editor, taskComment, getReplyText());
- }
-
- public static void reply(AbstractTaskEditorPage editor, ITaskComment taskComment, String text) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(editor.getConnectorKind());
- String reference = connectorUi.getReplyText(editor.getTaskRepository(), editor.getTask(), taskComment, false);
- StringBuilder sb = new StringBuilder();
- sb.append(reference);
- sb.append("\n"); //$NON-NLS-1$
- if (text != null) {
- CommentQuoter quoter = new CommentQuoter();
- sb.append(quoter.quote(text));
- }
- editor.appendTextToNewComment(sb.toString());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentSizeFormatter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentSizeFormatter.java
deleted file mode 100644
index 674142cfd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentSizeFormatter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import com.ibm.icu.text.DecimalFormat;
-import com.ibm.icu.text.NumberFormat;
-import java.util.Locale;
-
-/**
- * Format attachment size values originally in bytes to nice messages.
- * <p>
- * This formatter tries to use the most applicable measure unit based on size magnitude, i.e.:
- * <p>
- * <ul>
- * <li>< 1 KB - byte based: 1 byte, 100 bytes, etc. <li>>= 1 KB and < 1 MB - KB based: 2.00 KB, 100.76 KB <li>>= 1 MB
- * and < 1 GB - MB based: 1.00 MB, 33.33 MB <li>>= 1 GB - GB based: 2.00 GB
- * </ul>
- * <p>
- * This formatter assumes 1 KB == 1024 bytes, <strong>NOT</strong> 1000 bytes.
- * <p>
- * This formatter always uses 2 decimal places.
- * <p>
- * The size is provided as a String, because it will probably come from a attachment attribute. If the value cannot be
- * decoded, for any reason, it returns {@link #UNKNOWN_SIZE}
- *
- * @author Willian Mitsuda
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class AttachmentSizeFormatter {
-
- /**
- * Default value returned by this formatter when the size is unparseable, contain errors, etc.
- */
- public static final String UNKNOWN_SIZE = "-"; //$NON-NLS-1$
-
- public final static AttachmentSizeFormatter getInstance() {
- return new AttachmentSizeFormatter();
- }
-
- private final DecimalFormat decimalFormat;
-
- public AttachmentSizeFormatter() {
- this(Locale.getDefault());
- }
-
- public AttachmentSizeFormatter(Locale locale) {
- this.decimalFormat = (DecimalFormat) NumberFormat.getInstance(locale);
- }
-
- public String format(String sizeInBytes) {
- if (sizeInBytes == null) {
- return UNKNOWN_SIZE;
- }
- try {
- return format(Long.parseLong(sizeInBytes));
- } catch (NumberFormatException e) {
- return UNKNOWN_SIZE;
- }
- }
-
- public String format(long size) {
- if (size < 0) {
- return UNKNOWN_SIZE;
- }
- if (size < 1024) {
- // format as byte
- if (size == 1) {
- return Messages.AttachmentSizeFormatter_1_byte;
- }
- DecimalFormat fmt = new DecimalFormat(Messages.AttachmentSizeFormatter_0_bytes);
- return fmt.format(size);
- } else if (size >= 1024 && size <= 1048575) {
- // format as KB
- double formattedValue = size / 1024.0;
- decimalFormat.applyPattern(Messages.AttachmentSizeFormatter_0_KB);
- return decimalFormat.format(formattedValue);
- } else if (size >= 1048576 && size <= 1073741823) {
- // format as MB
- double formattedValue = size / 1048576.0;
- decimalFormat.applyPattern(Messages.AttachmentSizeFormatter_0_MB);
- return decimalFormat.format(formattedValue);
- }
-
- // format as GB
- double formattedValue = size / 1073741824.0;
- decimalFormat.applyPattern(Messages.AttachmentSizeFormatter_0_GB);
- return decimalFormat.format(formattedValue);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentTableLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentTableLabelProvider.java
deleted file mode 100644
index 141996ebb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/AttachmentTableLabelProvider.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - indicate deprecated attachments, bug 215549
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AttributeEditorToolkit;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class AttachmentTableLabelProvider extends ColumnLabelProvider {
-
- private final AttachmentSizeFormatter sizeFormatter = AttachmentSizeFormatter.getInstance();
-
- private final IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
-
- private static final String[] IMAGE_EXTENSIONS = { "jpg", "gif", "png", "tiff", "tif", "bmp" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-
- private final TaskDataModel model;
-
- private final AttributeEditorToolkit attributeEditorToolkit;
-
- public AttachmentTableLabelProvider(TaskDataModel model, AttributeEditorToolkit attributeEditorToolkit) {
- this.model = model;
- this.attributeEditorToolkit = attributeEditorToolkit;
- }
-
- public Image getColumnImage(Object element, int columnIndex) {
- ITaskAttachment attachment = (ITaskAttachment) element;
- if (columnIndex == 0) {
- if (AttachmentUtil.isContext(attachment)) {
- return CommonImages.getImage(TasksUiImages.CONTEXT_TRANSFER);
- } else if (attachment.isPatch()) {
- return CommonImages.getImage(TasksUiImages.TASK_ATTACHMENT_PATCH);
- } else {
- String filename = attachment.getFileName();
- if (filename != null) {
- int dotIndex = filename.lastIndexOf('.');
- if (dotIndex != -1) {
- String fileType = filename.substring(dotIndex + 1);
- for (String element2 : IMAGE_EXTENSIONS) {
- if (element2.equalsIgnoreCase(fileType)) {
- return CommonImages.getImage(CommonImages.IMAGE_FILE);
- }
- }
- }
- }
- return WorkbenchImages.getImage(ISharedImages.IMG_OBJ_FILE);
- }
- } else {
- }
- return null;
- }
-
- public String getColumnText(Object element, int columnIndex) {
- ITaskAttachment attachment = (ITaskAttachment) element;
- switch (columnIndex) {
- case 0:
- if (AttachmentUtil.isContext(attachment)) {
- return Messages.AttachmentTableLabelProvider_Task_Context;
- } else if (attachment.isPatch()) {
- return Messages.AttachmentTableLabelProvider_Patch;
- } else {
- return " " + attachment.getFileName(); //$NON-NLS-1$
- }
- case 1:
- return attachment.getDescription();
- case 2:
- Long length = attachment.getLength();
- if (length < 0) {
- return "-"; //$NON-NLS-1$
- }
- return sizeFormatter.format(length);
- case 3:
- return (attachment.getAuthor() != null) ? attachment.getAuthor().toString() : ""; //$NON-NLS-1$
- case 4:
- return (attachment.getCreationDate() != null) ? EditorUtil.formatDateTime(attachment.getCreationDate())
- : ""; //$NON-NLS-1$
- }
- return "unrecognized column"; //$NON-NLS-1$
- }
-
- @Override
- public void addListener(ILabelProviderListener listener) {
- // ignore
- }
-
- @Override
- public void dispose() {
- // ignore
- }
-
- @Override
- public boolean isLabelProperty(Object element, String property) {
- // ignore
- return false;
- }
-
- @Override
- public void removeListener(ILabelProviderListener listener) {
- // ignore
- }
-
- @Override
- public Color getForeground(Object element) {
- ITaskAttachment att = (ITaskAttachment) element;
- if (att.isDeprecated()) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_COMPLETED);
- }
- return super.getForeground(element);
- }
-
- @Override
- public String getToolTipText(Object element) {
- ITaskAttachment attachment = (ITaskAttachment) element;
- StringBuilder sb = new StringBuilder();
- sb.append(Messages.AttachmentTableLabelProvider_File_);
- sb.append(attachment.getFileName());
- if (attachment.getContentType() != null) {
- sb.append("\n"); //$NON-NLS-1$
- sb.append(Messages.AttachmentTableLabelProvider_Type_);
- sb.append(attachment.getContentType());
- }
- return sb.toString();
- /*"\nFilename\t\t" + attachment.getAttributeValue("filename")
- +"ID\t\t\t" + attachment.getAttributeValue("attachid")
- + "\nDate\t\t\t" + attachment.getAttributeValue("date")
- + "\nDescription\t" + attachment.getAttributeValue("desc")
- + "\nCreator\t\t" + attachment.getCreator()
- + "\nType\t\t\t" + attachment.getAttributeValue("type")
- + "\nURL\t\t\t" + attachment.getAttributeValue("task.common.attachment.url");*/
- }
-
- @Override
- public Point getToolTipShift(Object object) {
- return new Point(5, 5);
- }
-
- @Override
- public int getToolTipDisplayDelayTime(Object object) {
- return 200;
- }
-
- @Override
- public int getToolTipTimeDisplayed(Object object) {
- return 5000;
- }
-
- @Override
- public void update(ViewerCell cell) {
- Object element = cell.getElement();
- cell.setText(getColumnText(element, cell.getColumnIndex()));
- Image image = getColumnImage(element, cell.getColumnIndex());
- cell.setImage(image);
- cell.setBackground(getBackground(element));
- cell.setForeground(getForeground(element));
- cell.setFont(getFont(element));
- }
-
- @Override
- public Color getBackground(Object element) {
- ITaskAttachment attachment = (ITaskAttachment) element;
- if (model.hasIncomingChanges(attachment.getTaskAttribute())) {
- return attributeEditorToolkit.getColorIncoming();
- } else {
- return null;
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BooleanAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BooleanAttributeEditor.java
deleted file mode 100644
index f8fce1508..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BooleanAttributeEditor.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- */
-public class BooleanAttributeEditor extends AbstractAttributeEditor {
-
- private Button button;
-
- private boolean ignoreNotification;
-
- public BooleanAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- button = toolkit.createButton(parent, super.getLabel(), SWT.CHECK);
- button.setEnabled(!isReadOnly());
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (!ignoreNotification) {
- setValue(button.getSelection());
- }
- }
- });
- refresh();
- setControl(button);
- }
-
- @Override
- public String getLabel() {
- return ""; //$NON-NLS-1$
- }
-
- public boolean getValue() {
- return getAttributeMapper().getBooleanValue(getTaskAttribute());
- }
-
- public void setValue(boolean value) {
- getAttributeMapper().setBooleanValue(getTaskAttribute(), value);
- attributeChanged();
- }
-
- @Override
- public void refresh() {
- if (button == null) {
- return;
- }
-
- try {
- ignoreNotification = true;
- button.setSelection(getValue());
- } finally {
- ignoreNotification = false;
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BrowserPreviewViewer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BrowserPreviewViewer.java
deleted file mode 100644
index fa572c133..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/BrowserPreviewViewer.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Xiaoyang Guan - browser preview
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.core.runtime.Assert;
-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.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractRenderingEngine;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.LocationAdapter;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- * @author Xiaoyang Guan
- */
-public class BrowserPreviewViewer {
-
- private Browser browser;
-
- private boolean ignoreLocationEvents;
-
- private final AbstractRenderingEngine renderingEngine;
-
- private final TaskRepository taskRepository;
-
- public BrowserPreviewViewer(TaskRepository taskRepository, AbstractRenderingEngine renderingEngine) {
- Assert.isNotNull(taskRepository);
- Assert.isNotNull(renderingEngine);
- this.taskRepository = taskRepository;
- this.renderingEngine = renderingEngine;
- }
-
- public void createControl(Composite parent, FormToolkit toolkit) {
- browser = new Browser(parent, SWT.NONE);
- // intercept links to open tasks in rich editor and urls in separate browser
- browser.addLocationListener(new LocationAdapter() {
- @Override
- public void changing(LocationEvent event) {
- // ignore events that are caused by manually setting the contents of the browser
- if (ignoreLocationEvents) {
- return;
- }
-
- if (event.location != null && !event.location.startsWith("about")) { //$NON-NLS-1$
- event.doit = false;
- IHyperlink link = new TaskUrlHyperlink(
- new Region(0, 0)/* a fake region just to make constructor happy */, event.location);
- link.open();
- }
- }
-
- });
- }
-
- public Browser getControl() {
- return browser;
- }
-
- private void previewWiki(final Browser browser, String sourceText) {
- final class PreviewWikiJob extends Job {
- private String htmlText;
-
- private IStatus jobStatus;
-
- private final String sourceText;
-
- public PreviewWikiJob(String sourceText) {
- super(Messages.BrowserPreviewViewer_Formatting_Wiki_Text);
-
- if (sourceText == null) {
- throw new IllegalArgumentException("source text must not be null"); //$NON-NLS-1$
- }
-
- this.sourceText = sourceText;
- }
-
- public String getHtmlText() {
- return htmlText;
- }
-
- public IStatus getStatus() {
- return jobStatus;
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- if (renderingEngine == null) {
- jobStatus = new RepositoryStatus(taskRepository, IStatus.INFO, TasksUiPlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL,
- Messages.BrowserPreviewViewer_The_repository_does_not_support_HTML_preview);
- return Status.OK_STATUS;
- }
-
- jobStatus = Status.OK_STATUS;
- try {
- htmlText = renderingEngine.renderAsHtml(taskRepository, sourceText, monitor);
- } catch (CoreException e) {
- jobStatus = e.getStatus();
- }
- return Status.OK_STATUS;
- }
-
- }
-
- final PreviewWikiJob job = new PreviewWikiJob(sourceText);
-
- job.addJobChangeListener(new JobChangeAdapter() {
-
- @Override
- public void done(final IJobChangeEvent event) {
- if (!browser.isDisposed()) {
- if (job.getStatus().isOK()) {
- browser.getDisplay().asyncExec(new Runnable() {
- public void run() {
- setText(browser, job.getHtmlText());
- // TODO 3.2 error handling
- //getAttributeEditorManager().setMessage(null, IMessageProvider.NONE);
- }
- });
- } else {
- browser.getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.displayStatus(Messages.BrowserPreviewViewer_Error, job.getStatus());
- // TODO 3.2 error handling
- //getAttributeEditorManager().setMessage(job.getStatus().getMessage(), IMessageProvider.ERROR);
- }
- });
- }
- }
- super.done(event);
- }
- });
-
- job.setUser(true);
- job.schedule();
- }
-
- private void setText(Browser browser, String html) {
- try {
- ignoreLocationEvents = true;
- browser.setText((html != null) ? html : ""); //$NON-NLS-1$
- } finally {
- ignoreLocationEvents = false;
- }
-
- }
-
- public void update(String value) {
- setText(browser, Messages.BrowserPreviewViewer_Loading_preview_);
- previewWiki(browser, value);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditor.java
deleted file mode 100644
index 65ce0653d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditor.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Ken Sueda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * @author Ken Sueda
- * @author Mik Kersten
- */
-public class CategoryEditor extends EditorPart {
-
- public static final String ID_EDITOR = "org.eclipse.mylyn.tasks.ui.editors.category"; //$NON-NLS-1$
-
- private Text url;
-
- private CategoryEditorInput input = null;
-
- private boolean isDirty = false;
-
- private Text description = null;
-
- @Override
- public void doSave(IProgressMonitor monitor) {
- input.setCategoryName(description.getText());
- input.setUrl(url.getText());
- isDirty = false;
- firePropertyChange(PROP_DIRTY);
- }
-
- @Override
- public void doSaveAs() {
- }
-
- @Override
- public void init(IEditorSite site, IEditorInput input) throws PartInitException {
- setSite(site);
- setInput(input);
- this.input = (CategoryEditorInput) input;
- setPartName(input.getName());
- setTitleToolTip(input.getToolTipText());
- }
-
- @Override
- public boolean isDirty() {
- return isDirty;
- }
-
- @Override
- public boolean isSaveAsAllowed() {
- return false;
- }
-
- @Override
- public void createPartControl(Composite parent) {
- FormToolkit toolkit = new FormToolkit(parent.getDisplay());
- ScrolledForm sform = toolkit.createScrolledForm(parent);
- sform.getBody().setLayout(new TableWrapLayout());
- Composite editorComposite = sform.getBody();
-
- createSummarySection(editorComposite, toolkit);
- }
-
- @Override
- public void setFocus() {
- }
-
- private void createSummarySection(Composite parent, FormToolkit toolkit) {
- Section summarySection = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- summarySection.setText(Messages.CategoryEditor_Category_Summary);
- summarySection.setLayout(new TableWrapLayout());
- summarySection.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- Composite summaryContainer = toolkit.createComposite(summarySection);
- summarySection.setClient(summaryContainer);
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- summaryContainer.setLayout(layout);
-
- ModifyListener modifyListener = new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- markDirty();
- }
- };
-
- toolkit.createLabel(summaryContainer, Messages.CategoryEditor_Description_, SWT.NULL);
-// lblDescription.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
- description = toolkit.createText(summaryContainer, input.getCategoryName(), SWT.FLAT);
- description.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
- description.setData(FormToolkit.KEY_DRAW_BORDER);
- description.addModifyListener(modifyListener);
-
- toolkit.createLabel(summaryContainer, Messages.CategoryEditor_URL_, SWT.NONE);
-// lblUrl.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
- url = toolkit.createText(summaryContainer, input.getUrl(), SWT.FLAT);
- url.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP));
- url.addModifyListener(modifyListener);
-
- toolkit.paintBordersFor(summaryContainer);
- }
-
- private void markDirty() {
- isDirty = true;
- firePropertyChange(PROP_DIRTY);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditorInput.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditorInput.java
deleted file mode 100644
index e0bff2af3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CategoryEditorInput.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Ken Sueda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * @author Ken Sueda
- */
-public class CategoryEditorInput implements IEditorInput {
-
- private final TaskCategory category;
-
- public CategoryEditorInput(TaskCategory cat) {
- this.category = cat;
- }
-
- public boolean exists() {
- return true;
- }
-
- public ImageDescriptor getImageDescriptor() {
- return null;
- }
-
- public String getName() {
- return Messages.CategoryEditorInput_Category_Editor;
- }
-
- public IPersistableElement getPersistable() {
- return null;
- }
-
- public String getToolTipText() {
- return Messages.CategoryEditorInput_Category_Editor;
- }
-
- @SuppressWarnings("unchecked")
- public Object getAdapter(Class adapter) {
- return null;
- }
-
- public String getCategoryName() {
- return category.getSummary();
- }
-
- public String getUrl() {
- return category.getUrl();
- }
-
- public void setCategoryName(String description) {
- TasksUiPlugin.getTaskList().renameContainer(category, description);
-// category.setDescription(summary);
- }
-
- public void setUrl(String url) {
- category.setUrl(url);
- TasksUiPlugin.getTaskList().notifyElementChanged(category);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java
deleted file mode 100644
index cc5742169..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jingwen Ou 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:
- * Jingwen Ou - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Jingwen Ou
- * @author Steffen Pingel
- */
-public class CommentGroupStrategy {
-
- public static class CommentGroup {
-
- public static final String CURRENT = Messages.CommentGroupStrategy_Current;
-
- public static final String OLDER = Messages.CommentGroupStrategy_Older;
-
- public static final String RECENT = Messages.CommentGroupStrategy_Recent;
-
- private final List<ITaskComment> comments;
-
- private final String groupName;
-
- private final boolean incoming;
-
- public CommentGroup(String groupName, List<ITaskComment> comments, boolean incoming) {
- this.groupName = groupName;
- this.comments = comments;
- this.incoming = incoming;
- }
-
- public List<TaskAttribute> getCommentAttributes() {
- List<TaskAttribute> commentAttributes = new ArrayList<TaskAttribute>(comments.size());
- for (ITaskComment comment : comments) {
- commentAttributes.add(comment.getTaskAttribute());
- }
- return Collections.unmodifiableList(commentAttributes);
- }
-
- public List<ITaskComment> getComments() {
- return Collections.unmodifiableList(comments);
- }
-
- public String getGroupName() {
- return groupName;
- }
-
- public boolean hasIncoming() {
- return incoming;
- }
- }
-
- // public for testing
- public static final int MAX_CURRENT = 12;
-
- // public for testing
- public static final int MAX_RECENT = 20;
-
- /**
- * Groups comments according to "Older", "Recent" and "Current".
- *
- * @param comments
- * a list of comments to be grouped
- * @param currentPersonId
- * current login user id
- * @return a list of groups
- */
- public List<CommentGroup> groupComments(List<ITaskComment> comments, String currentPersonId) {
- if (comments.size() == 0) {
- return Collections.emptyList();
- }
-
- List<CommentGroup> commentGroups = new ArrayList<CommentGroup>(3);
-
- // current
- List<ITaskComment> current = new ArrayList<ITaskComment>(MAX_CURRENT);
- if (comments.size() > MAX_CURRENT) {
- for (int i = comments.size() - 1; i >= 0; i--) {
- ITaskComment comment = comments.get(i);
- if (isCurrent(current, comment, currentPersonId)) {
- current.add(comment);
- }
- }
- Collections.reverse(current);
- } else {
- current = comments;
- }
- commentGroups.add(new CommentGroup(CommentGroup.CURRENT, current, hasIncomingChanges(current)));
-
- // recent
- if (comments.size() > current.size()) {
- int recentToIndex = comments.size() - current.size();
- int recentFromIndex = Math.max(recentToIndex - MAX_RECENT, 0);
- List<ITaskComment> recent = new ArrayList<ITaskComment>(comments.subList(recentFromIndex, recentToIndex));
- if (recent.size() > 0) {
- commentGroups.add(new CommentGroup(CommentGroup.RECENT, recent, hasIncomingChanges(recent)));
-
- // the rest goes to older
- if (comments.size() > current.size() + recent.size()) {
- int olderToIndex = comments.size() - current.size() - recent.size();
- List<ITaskComment> older = new ArrayList<ITaskComment>(comments.subList(0, olderToIndex));
- commentGroups.add(new CommentGroup(CommentGroup.OLDER, older, hasIncomingChanges(older)));
- }
- }
- }
-
- Collections.reverse(commentGroups);
- return commentGroups;
- }
-
- protected boolean hasIncomingChanges(ITaskComment taskComment) {
- return false;
- }
-
- private boolean hasIncomingChanges(List<ITaskComment> comments) {
- for (ITaskComment comment : comments) {
- if (hasIncomingChanges(comment)) {
- return true;
- }
- }
- return false;
- }
-
- // public for testing
- public boolean isCurrent(List<ITaskComment> current, ITaskComment comment, String currentPersonId) {
- if (current.size() >= MAX_CURRENT) {
- return false;
- }
-
- // add all incoming changes
- if (hasIncomingChanges(comment)) {
- return true;
- }
-
- if (!current.isEmpty()) {
- // check if last comment was by current user
- ITaskComment lastComment = current.get(current.size() - 1);
- IRepositoryPerson lastPerson = lastComment.getAuthor();
- if (lastPerson != null && lastPerson.getPersonId().equals(currentPersonId)) {
- // bug 238038 comment #58, if the latest comment is generated automatically, look back one comment
- IRepositoryPerson person = comment.getAuthor();
- if (person != null && person.getPersonId().equals(currentPersonId) && lastComment.getText() != null
- && lastComment.getText().contains(AttachmentUtil.CONTEXT_DESCRIPTION)) {
- return true;
- }
-
- return false;
- }
- }
-
- return true;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/DateAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/DateAttributeEditor.java
deleted file mode 100644
index 7563aa4d1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/DateAttributeEditor.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-
-/**
- * @author Steffen Pingel
- * @author Robert Elves
- */
-public class DateAttributeEditor extends AbstractAttributeEditor {
-
- private DatePicker datePicker;
-
- private boolean showTime;
-
- public DateAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.SINGLE, ColumnSpan.SINGLE));
- }
-
- @Override
- public void createControl(Composite composite, FormToolkit toolkit) {
- if (isReadOnly()) {
- Text text = new Text(composite, SWT.FLAT | SWT.READ_ONLY);
- text.setFont(EditorUtil.TEXT_FONT);
- toolkit.adapt(text, false, false);
- text.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE);
- text.setText(getTextValue());
- setControl(text);
- } else {
- Composite dateWithClearComposite = toolkit.createComposite(composite);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = 2;
- layout.marginWidth = 1;
- layout.verticalSpacing = 2;
- layout.horizontalSpacing = 2;
- dateWithClearComposite.setLayout(layout);
- datePicker = new DatePicker(dateWithClearComposite, SWT.FLAT, getTextValue(), showTime, 0);
- datePicker.setFont(EditorUtil.TEXT_FONT);
- if (!showTime) {
- datePicker.setDateFormat(EditorUtil.getDateFormat());
- } else {
- datePicker.setDateFormat(EditorUtil.getDateTimeFormat());
- }
- if (getValue() != null) {
- Calendar cal = Calendar.getInstance();
- cal.setTime(getValue());
- datePicker.setDate(cal);
- }
- datePicker.addPickerSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- Calendar cal = datePicker.getDate();
- if (cal != null) {
- if (!showTime) {
- TaskActivityUtil.snapStartOfDay(cal);
- }
- Date value = cal.getTime();
- if (!value.equals(getValue())) {
- setValue(value);
- }
- } else {
- if (getValue() != null) {
- setValue(null);
- }
- datePicker.setDate(null);
- }
- }
- });
-
- GridDataFactory.fillDefaults().grab(true, false).applyTo(datePicker);
- datePicker.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.adapt(datePicker, false, false);
-
- ImageHyperlink clearDeadlineDate = toolkit.createImageHyperlink(dateWithClearComposite, SWT.NONE);
- clearDeadlineDate.setImage(CommonImages.getImage(CommonImages.REMOVE));
- clearDeadlineDate.setToolTipText(Messages.DateAttributeEditor_Clear);
- clearDeadlineDate.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- if (getValue() != null) {
- setValue(null);
- }
- datePicker.setDate(null);
- }
-
- });
-
- toolkit.paintBordersFor(dateWithClearComposite);
- setControl(dateWithClearComposite);
- }
- }
-
- @Override
- protected void decorateIncoming(Color color) {
- if (datePicker != null) {
- datePicker.setBackground(color);
- }
- }
-
- public boolean getShowTime() {
- return showTime;
- }
-
- private String getTextValue() {
- Date date = getValue();
- if (date != null) {
- if (getShowTime()) {
- return EditorUtil.formatDateTime(date);
- } else {
- return EditorUtil.formatDate(date);
- }
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- public Date getValue() {
- return getAttributeMapper().getDateValue(getTaskAttribute());
- }
-
- public void setShowTime(boolean showTime) {
- this.showTime = showTime;
- }
-
- public void setValue(Date date) {
- getAttributeMapper().setDateValue(getTaskAttribute(), date);
- attributeChanged();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorBusyIndicator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorBusyIndicator.java
deleted file mode 100644
index bbd323bcf..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorBusyIndicator.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-/**
- * Provides a spinner animation for the tab title of an editor.
- *
- * @author Shawn Minto
- * @author Steffen Pingel
- * @deprecated use {@link org.eclipse.mylyn.internal.provisional.commons.ui.editor.EditorBusyIndicator} instead
- */
-@Deprecated
-public class EditorBusyIndicator {
-
- private class Animator implements Runnable {
-
- int imageDataIndex = 0;
-
- private final Image[] images;
-
- private boolean stopped;
-
- public Animator(Image[] images) {
- this.images = images;
- }
-
- public void run() {
- if (stopped) {
- return;
- }
-
- try {
- Image image = images[imageDataIndex];
- imageDataIndex = (imageDataIndex + 1) % images.length;
-
- if (updateTitleImage(image)) {
- PlatformUI.getWorkbench().getDisplay().timerExec(DELAY, this);
- }
- } catch (Exception e) {
- WorkbenchPlugin.log(e);
- }
- }
-
- public void stop() {
- stopped = true;
- }
- }
-
- public static final int DELAY = 90;
-
- private Animator animator;
-
- private final IBusyEditor editor;
-
- private Image[] images;
-
- private Image oldImage;
-
- public EditorBusyIndicator(IBusyEditor editor) {
- this.editor = editor;
- }
-
- /**
- * Starts the busy indication.
- *
- * @see #stop()
- */
- public void start() {
- if (animator != null) {
- stop();
- }
-
- try {
- if (images == null) {
- images = CommonImages.getProgressImages();
- // if image fails to load do not continue
- if (images == null) {
- return;
- }
- }
-
- oldImage = editor.getTitleImage();
-
- if (images.length > 1) {
- animator = new Animator(images);
- animator.run();
- }
- } catch (SWTException e) {
- WorkbenchPlugin.log(e);
- }
- }
-
- /**
- * Stops the animation.
- *
- * @see #start()
- */
- public void stop() {
- if (animator != null) {
- animator.stop();
- animator = null;
-
- updateTitleImage(oldImage);
- oldImage = null;
- }
- }
-
- private boolean updateTitleImage(final Image image) {
- if (!PlatformUI.getWorkbench().isClosing()) {
- if (image != null && !image.isDisposed()) {
- editor.setTitleImage(image);
- return true;
- } else {
- if (oldImage != null && !oldImage.isDisposed()) {
- editor.setTitleImage(oldImage);
- }
- }
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java
deleted file mode 100644
index b1a56a8d0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.lang.reflect.Field;
-import java.text.DateFormat;
-import java.util.Date;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewAttachmentWizardDialog;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskAttachmentWizard.Mode;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.SharedScrolledComposite;
-
-public class EditorUtil {
-
-// public static final String DATE_FORMAT = "yyyy-MM-dd";
-//
-// public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
-
- static final String KEY_MARKER = "marker"; //$NON-NLS-1$
-
- static final String KEY_TEXT_VIEWER = "textViewer"; //$NON-NLS-1$
-
- public static final int MAXIMUM_HEIGHT = 140;
-
- public static final int MAXIMUM_WIDTH = 500;
-
- // XXX why is this required?
- public static final Font TEXT_FONT = JFaceResources.getDefaultFont();
-
- public static final String KEY_TOGGLE_TO_MAXIMIZE_ACTION = "maximizeAction"; //$NON-NLS-1$
-
- static boolean canDoGlobalAction(String actionId, TextViewer textViewer) {
- if (actionId.equals(ActionFactory.CUT.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.CUT);
- } else if (actionId.equals(ActionFactory.COPY.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.COPY);
- } else if (actionId.equals(ActionFactory.PASTE.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.PASTE);
- } else if (actionId.equals(ActionFactory.DELETE.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.DELETE);
- } else if (actionId.equals(ActionFactory.UNDO.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.UNDO);
- } else if (actionId.equals(ActionFactory.REDO.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.REDO);
- } else if (actionId.equals(ActionFactory.SELECT_ALL.getId())) {
- return textViewer.canDoOperation(ITextOperationTarget.SELECT_ALL);
- }
- return false;
- }
-
- /**
- * @deprecated use {@link CommonTextSupport#canPerformAction(String, Control)} instead
- */
- @Deprecated
- public static boolean canPerformAction(String actionId, Control focusControl) {
- return CommonTextSupport.canPerformAction(actionId, focusControl);
- }
-
- /**
- * @deprecated use {@link CommonTextSupport#doAction(String, Control)} instead
- */
- @Deprecated
- public static void doAction(String actionId, Control focusControl) {
- CommonTextSupport.doAction(actionId, focusControl);
- }
-
- private static Control findControl(Composite composite, String key) {
- if (!composite.isDisposed()) {
- for (Control child : composite.getChildren()) {
- if (key.equals(getMarker(child))) {
- return child;
- }
- if (child instanceof Composite) {
- Control found = findControl((Composite) child, key);
- if (found != null) {
- return found;
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Scroll to a specified piece of text
- *
- * @param control
- * The StyledText to scroll to
- */
- private static void focusOn(ScrolledForm form, Control control) {
- int pos = 0;
- control.setEnabled(true);
- control.setFocus();
- control.forceFocus();
- while (control != null && control != form.getBody()) {
- pos += control.getLocation().y;
- control = control.getParent();
- }
-
- pos = pos - 60; // form.getOrigin().y;
- if (!form.getBody().isDisposed()) {
- form.setOrigin(0, pos);
- }
- }
-
- static DateFormat getDateFormat() {
- return DateFormat.getDateInstance(DateFormat.MEDIUM);
- }
-
- static String formatDate(Date date) {
- return getDateFormat().format(date);
- }
-
- static String formatDateTime(Date date) {
- return getDateTimeFormat().format(date);
- }
-
- static DateFormat getDateTimeFormat() {
- return DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT);
- }
-
- public static Control getFocusControl(IFormPage page) {
- if (page == null) {
- return null;
- }
- IManagedForm form = page.getManagedForm();
- if (form == null) {
- return null;
- }
- Control control = form.getForm();
- if (control == null || control.isDisposed()) {
- return null;
- }
- Display display = control.getDisplay();
- Control focusControl = display.getFocusControl();
- if (focusControl == null || focusControl.isDisposed()) {
- return null;
- }
- return focusControl;
- }
-
- public static String getMarker(Widget widget) {
- return (String) widget.getData(KEY_MARKER);
- }
-
- /**
- * @deprecated use {@link CommonTextSupport#getTextViewer(Widget)} instead
- */
- @Deprecated
- public static TextViewer getTextViewer(Widget widget) {
- return CommonTextSupport.getTextViewer(widget);
- }
-
- public static NewAttachmentWizardDialog openNewAttachmentWizard(final AbstractTaskEditorPage page, Mode mode,
- AbstractTaskAttachmentSource source) {
- TaskAttributeMapper mapper = page.getModel().getTaskData().getAttributeMapper();
- TaskAttribute attribute = mapper.createTaskAttachment(page.getModel().getTaskData());
- final NewAttachmentWizardDialog dialog = TasksUiInternal.openNewAttachmentWizard(page.getSite().getShell(),
- page.getTaskRepository(), page.getTask(), attribute, mode, source);
- dialog.getShell().addDisposeListener(new DisposeListener() {
-
- public void widgetDisposed(DisposeEvent e) {
- if (dialog.getReturnCode() == Window.OK) {
- page.getTaskEditor().refreshPages();
- }
- }
-
- });
- return dialog;
- }
-
- /**
- * Selects the given object in the editor.
- *
- * @param o
- * The object to be selected.
- * @param highlight
- * Whether or not the object should be highlighted.
- */
- public static boolean reveal(ScrolledForm form, String key) {
- Control control = findControl(form.getBody(), key);
- if (control != null) {
- // expand all children
- if (control instanceof ExpandableComposite) {
- ExpandableComposite ex = (ExpandableComposite) control;
- if (!ex.isExpanded()) {
- CommonFormUtil.setExpanded(ex, true);
- }
- }
-
- // expand all parents of control
- Composite comp = control.getParent();
- while (comp != null) {
- if (comp instanceof Section) {
- if (!((Section) comp).isExpanded()) {
- ((Section) comp).setExpanded(true);
- }
- } else if (comp instanceof ExpandableComposite) {
- ExpandableComposite ex = (ExpandableComposite) comp;
- if (!ex.isExpanded()) {
- CommonFormUtil.setExpanded(ex, true);
- }
-
- // HACK: This is necessary
- // due to a bug in SWT's ExpandableComposite.
- // 165803: Expandable bars should expand when clicking anywhere
- // https://bugs.eclipse.org/bugs/show_bug.cgi?taskId=165803
- if (ex.getData() != null && ex.getData() instanceof Composite) {
- ((Composite) ex.getData()).setVisible(true);
- }
- }
- comp = comp.getParent();
- }
- focusOn(form, control);
- }
- return true;
- }
-
- /**
- * @deprecated Use {@link CommonUiUtil#setEnabled(Composite,boolean)} instead
- */
- @Deprecated
- public static void setEnabledState(Composite composite, boolean enabled) {
- CommonUiUtil.setEnabled(composite, enabled);
- }
-
- public static void setMarker(Widget widget, String text) {
- widget.setData(KEY_MARKER, text);
- }
-
- /**
- * @deprecated use {@link CommonTextSupport#setTextViewer(Widget, TextViewer)} instead
- */
- @Deprecated
- public static void setTextViewer(Widget widget, TextViewer textViewer) {
- CommonTextSupport.setTextViewer(widget, textViewer);
- }
-
- /**
- * Programmatically expand the provided ExpandableComposite, using reflection to fire the expansion listeners (see
- * bug#70358)
- *
- * @param comp
- * @deprecated Use {@link CommonFormUtil#setExpanded(ExpandableComposite,boolean)} instead
- */
- @Deprecated
- public static void toggleExpandableComposite(boolean expanded, ExpandableComposite comp) {
- CommonFormUtil.setExpanded(comp, expanded);
- }
-
- /**
- * @deprecated Use {@link CommonFormUtil#disableScrollingOnFocus(ScrolledForm)} instead
- */
- @Deprecated
- public static void disableScrollingOnFocus(ScrolledForm form) {
- CommonFormUtil.disableScrollingOnFocus(form);
- }
-
- /**
- * @deprecated Use {@link CommonFormUtil#ensureVisible(Control)} instead
- */
- @Deprecated
- public static void ensureVisible(Control control) {
- CommonFormUtil.ensureVisible(control);
- }
-
- // copied from Section.reflow()
- public static void reflow(Control control) {
- Composite c = control.getParent();
- while (c != null) {
- c.setRedraw(false);
- c = c.getParent();
- if (c instanceof SharedScrolledComposite) {
- break;
- }
- }
- c = control.getParent();
- while (c != null) {
- c.layout(true);
- c = c.getParent();
- if (c instanceof SharedScrolledComposite) {
- ((SharedScrolledComposite) c).reflow(true);
- break;
- }
- }
- c = control.getParent();
- while (c != null) {
- c.setRedraw(true);
- c = c.getParent();
- if (c instanceof SharedScrolledComposite) {
- break;
- }
- }
- }
-
- public static Composite getLayoutAdvisor(AbstractTaskEditorPage page) {
- Composite layoutAdvisor = page.getEditorComposite();
- do {
- layoutAdvisor = layoutAdvisor.getParent();
- } while (!(layoutAdvisor instanceof CTabFolder));
- return layoutAdvisor.getParent();
- }
-
- /**
- * Recursively sets the menu of all children of <code>composite</code>.
- *
- * @deprecated Use {@link CommonUiUtil#setMenu(Composite,Menu)} instead
- */
- @Deprecated
- public static void setMenu(Composite composite, Menu menu) {
- CommonUiUtil.setMenu(composite, menu);
- }
-
- // TODO e3.4 replace reflection by assignment to RowLayout.center
- public static void center(RowLayout rowLayout) {
- try {
- Field field = RowLayout.class.getDeclaredField("center"); //$NON-NLS-1$
- field.set(rowLayout, Boolean.TRUE);
- } catch (Throwable e) {
- // ignore
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/FillWidthLayout.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/FillWidthLayout.java
deleted file mode 100644
index 352728cd6..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/FillWidthLayout.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * A layout that uses the width hint or client area of a composite to recommend the width of its children, allowing
- * children to fill the width and specify their preferred height for a given width.
- *
- * Intended for use with a composite that contains a single child that should fill available horizontal space.
- *
- * @author David Green
- */
-class FillWidthLayout extends Layout implements ILayoutExtension {
-
- private final int marginLeft;
-
- private final int marginRight;
-
- private final int marginTop;
-
- private final int marginBottom;
-
- private final int widthHintMargin;
-
- private Composite layoutAdvisor;
-
- private int lastWidthHint;
-
- private Point lastComputedSize;
-
- /**
- * create with 0 margins
- *
- */
- public FillWidthLayout() {
- this(0, 0, 0, 0);
- }
-
- /**
- * create while specifying margins
- *
- * @param marginLeft
- * the left margin in pixels, or 0 if there should be none
- * @param marginRight
- * the right margin in pixels, or 0 if there should be none
- * @param marginTop
- * the top margin in pixels, or 0 if there should be none
- * @param marginBottom
- * the bottom margin in pixels, or 0 if there should be none
- */
- public FillWidthLayout(int marginLeft, int marginRight, int marginTop, int marginBottom) {
- this(null, marginLeft, marginRight, marginTop, marginBottom);
- }
-
- /**
- * create specifying margins and a {@link #getLayoutAdvisor() layout advisor}.
- *
- * @param layoutAdvisor
- * the composite that is used to advise on layout based on its {@link Composite#getClientArea() client
- * area}.
- * @param marginLeft
- * the left margin in pixels, or 0 if there should be none
- * @param marginRight
- * the right margin in pixels, or 0 if there should be none
- * @param marginTop
- * the top margin in pixels, or 0 if there should be none
- * @param marginBottom
- * the bottom margin in pixels, or 0 if there should be none
- */
- public FillWidthLayout(Composite layoutAdvisor, int marginLeft, int marginRight, int marginTop, int marginBottom) {
- this.layoutAdvisor = layoutAdvisor;
- this.marginLeft = marginLeft;
- this.marginRight = marginRight;
- this.marginTop = marginTop;
- this.marginBottom = marginBottom;
- if (Platform.OS_MACOSX.equals(Platform.getOS())) {
- this.widthHintMargin = 15;
- } else {
- this.widthHintMargin = 18;
- }
- }
-
- /**
- * calculate the client area of the given container, accomodating for insets and margins.
- */
- private int calculateWidthHint(Composite container) {
- return calculateWidthHint(container, layoutAdvisor == null);
- }
-
- /**
- * calculate the client area of the given container, accomodating for insets and margins.
- */
- private int calculateWidthHint(Composite container, boolean layoutAdvisorHit) {
- if (container == layoutAdvisor) {
- layoutAdvisorHit = true;
- }
- Rectangle clientArea = container.getClientArea();
- int horizontalMargin = 0;
- if (clientArea.width <= 1 || !layoutAdvisorHit) { // sometimes client area is incorrectly reported as 1
- clientArea.width = calculateWidthHint(container.getParent(), layoutAdvisorHit);
- }
- Layout bodyLayout = container.getLayout();
- if (bodyLayout instanceof GridLayout) {
- GridLayout gridLayout = (GridLayout) bodyLayout;
- horizontalMargin = (gridLayout.marginWidth * 2) + gridLayout.marginLeft + gridLayout.marginRight;
- } else if (bodyLayout instanceof FillLayout) {
- FillLayout fillLayout = (FillLayout) bodyLayout;
- horizontalMargin = fillLayout.marginWidth * 2;
- } else if (container instanceof Section) {
- horizontalMargin = ((Section) container).marginWidth * 2;
- } else if (container instanceof CTabFolder) {
- CTabFolder folder = (CTabFolder) container;
- horizontalMargin = folder.marginWidth * 2;
- }
- if (container instanceof ScrolledComposite) {
- ScrolledComposite composite = (ScrolledComposite) container;
- ScrollBar verticalBar = composite.getVerticalBar();
- if (verticalBar != null) {
- int verticalBarWidth = verticalBar.getSize().x;
- horizontalMargin += Math.max(15, verticalBarWidth);
- }
- }
- return clientArea.width - horizontalMargin;
- }
-
- @Override
- protected Point computeSize(Composite composite, int widthHint, int heightHint, boolean flushCache) {
- Control[] children = composite.getChildren();
- if (children.length == 0) {
- return new Point(0, 0);
- }
- if (widthHint <= 0) {
- widthHint = calculateWidthHint(composite);
- widthHint -= widthHintMargin;
- }
-
- int horizontalMargin = marginLeft + marginRight;
- if (widthHint < horizontalMargin) {
- widthHint = horizontalMargin;
- }
-
- if (lastComputedSize == null || widthHint != lastWidthHint) {
- int resultX = 1;
- int resultY = 1;
- for (Control control : children) {
- Point sz = control.computeSize(widthHint - horizontalMargin, -1, flushCache);
- resultX = Math.max(resultX, sz.x);
- resultY = Math.max(resultY, sz.y);
- }
-
- lastWidthHint = widthHint;
- lastComputedSize = new Point(resultX + horizontalMargin, resultY + marginTop + marginBottom);
- }
- return new Point(lastComputedSize.x, lastComputedSize.y + 1);
- }
-
- @Override
- protected void layout(Composite composite, boolean flushCache) {
- Rectangle area = composite.getClientArea();
- if (area.width == 0) {
- area.width = calculateWidthHint(composite);
- }
-
- // account for margins
- area.x += marginLeft;
- area.y += marginTop;
- area.width -= (marginRight + marginLeft);
- area.height -= (marginBottom + marginTop);
-
- Control[] children = composite.getChildren();
- for (Control control : children) {
- control.setBounds(area);
- }
- }
-
- /**
- * the composite that is used to advise on layout based on its {@link Composite#getClientArea() client area}.
- *
- * @return the layout advisor, or null if there is none
- */
- public Composite getLayoutAdvisor() {
- return layoutAdvisor;
- }
-
- /**
- * the composite that is used to advise on layout based on its {@link Composite#getClientArea() client area}.
- *
- * @param layoutAdvisor
- * the layout advisor, or null if there is none
- */
- public void setLayoutAdvisor(Composite layoutAdvisor) {
- this.layoutAdvisor = layoutAdvisor;
- }
-
- /**
- * Flushes all cached information about control sizes.
- */
- public void flush() {
- lastComputedSize = null;
- }
-
- public int computeMaximumWidth(Composite parent, boolean changed) {
- int width = marginLeft + marginRight;
- Control[] children = parent.getChildren();
- for (Control control : children) {
- width = Math.max(control.computeSize(SWT.DEFAULT, 0, changed).x + marginLeft + marginRight, width);
- }
- return width;
- }
-
- public int computeMinimumWidth(Composite parent, boolean changed) {
- int width = marginLeft + marginRight;
-// Control[] children = parent.getChildren();
-// for (Control control : children) {
-// width = Math.max(control.computeSize(0, SWT.DEFAULT, changed).x + marginLeft + marginRight, width);
-// }
- return width;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/HighlightingHyperlinkTextPresentationManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/HighlightingHyperlinkTextPresentationManager.java
deleted file mode 100644
index 5defed7e3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/HighlightingHyperlinkTextPresentationManager.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.editors;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.custom.StyleRange;
-
-/**
- * A manager that decorates hyperlinks with the hyperlink color.
- *
- * @author Steffen Pingel
- */
-public class HighlightingHyperlinkTextPresentationManager extends AbstractHyperlinkTextPresentationManager {
-
- @Override
- protected void decorate(StyleRange styleRange) {
- styleRange.foreground = JFaceResources.getColorRegistry().get(JFacePreferences.ACTIVE_HYPERLINK_COLOR);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/IBusyEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/IBusyEditor.java
deleted file mode 100644
index c062107df..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/IBusyEditor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Shawn Minto
- * @deprecated use {@link org.eclipse.mylyn.internal.provisional.commons.ui.editor.IBusyEditor} instead
- */
-@Deprecated
-public interface IBusyEditor {
-
- public void setTitleImage(Image image);
-
- public Image getTitleImage();
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java
deleted file mode 100644
index 2f2d685b5..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/LongTextAttributeEditor.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- */
-public class LongTextAttributeEditor extends AbstractAttributeEditor {
-
- public LongTextAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.MULTIPLE, ColumnSpan.MULTIPLE));
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- int style = SWT.FLAT | SWT.MULTI | SWT.WRAP;
- if (!isReadOnly()) {
- style |= SWT.V_SCROLL;
- }
- TextViewer viewer = new TextViewer(parent, style);
- viewer.setDocument(new Document(getValue()));
-
- final StyledText text = viewer.getTextWidget();
- toolkit.adapt(text, false, false);
-
- // enable cut/copy/paste
- CommonTextSupport.setTextViewer(text, viewer);
-
- if (isReadOnly()) {
- viewer.setEditable(false);
- } else {
- viewer.setEditable(true);
- text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- setValue(text.getText());
- CommonFormUtil.ensureVisible(text);
- }
- });
- }
-
- setControl(text);
- }
-
- public String getValue() {
- return getAttributeMapper().getValue(getTaskAttribute());
- }
-
- public void setValue(String text) {
- getAttributeMapper().setValue(getTaskAttribute(), text);
- attributeChanged();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java
deleted file mode 100644
index f03b2683a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.editors.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String AbstractReplyToCommentAction_Reply;
-
- public static String AttachmentSizeFormatter_0_bytes;
-
- public static String AttachmentSizeFormatter_0_GB;
-
- public static String AttachmentSizeFormatter_0_KB;
-
- public static String AttachmentSizeFormatter_0_MB;
-
- public static String AttachmentSizeFormatter_1_byte;
-
- public static String AttachmentTableLabelProvider_File_;
-
- public static String AttachmentTableLabelProvider_Patch;
-
- public static String AttachmentTableLabelProvider_Task_Context;
-
- public static String AttachmentTableLabelProvider_Type_;
-
- public static String BrowserPreviewViewer_Error;
-
- public static String BrowserPreviewViewer_Formatting_Wiki_Text;
-
- public static String BrowserPreviewViewer_Loading_preview_;
-
- public static String BrowserPreviewViewer_The_repository_does_not_support_HTML_preview;
-
- public static String CategoryEditor_Category_Summary;
-
- public static String CategoryEditor_Description_;
-
- public static String CategoryEditor_URL_;
-
- public static String CategoryEditorInput_Category_Editor;
-
- public static String CommentGroupStrategy_Current;
-
- public static String CommentGroupStrategy_Older;
-
- public static String CommentGroupStrategy_Recent;
-
- public static String DateAttributeEditor_Clear;
-
- public static String PlanningPageFactory_Planning;
-
- public static String RichTextAttributeEditor_Viewer_Source;
-
- public static String TaskAttachmentDropListener_Note_that_only_the_first_file_dragged_will_be_attached;
-
- public static String TaskEditorActionContributor_Add_to_X;
-
- public static String TaskEditorActionPart_Actions;
-
- public static String TaskEditorActionPart_Add_to_Category;
-
- public static String TaskEditorActionPart_Attach_Context;
-
- public static String TaskEditorActionPart_Submit;
-
- public static String TaskEditorActionPart_Submit_to_X;
-
- public static String TaskEditorAttachmentPart_Attach_;
-
- public static String TaskEditorAttachmentPart_Attach__Screenshot;
-
- public static String TaskEditorAttachmentPart_Attachments;
-
- public static String TaskEditorAttachmentPart_Created;
-
- public static String TaskEditorAttachmentPart_Creator;
-
- public static String TaskEditorAttachmentPart_Description;
-
- public static String TaskEditorAttachmentPart_Name;
-
- public static String TaskEditorAttachmentPart_No_attachments;
-
- public static String TaskEditorAttachmentPart_Size;
-
- public static String TaskEditorAttributePart_Attributes;
-
- public static String TaskEditorAttributePart_Refresh_Attributes;
-
- public static String TaskEditorAttributePart_Update_Failed;
-
- public static String TaskEditorAttributePart_Updating_of_repository_configuration_failed;
-
- public static String TaskEditorCommentPart_0;
-
- public static String TaskEditorCommentPart_1;
-
- public static String TaskEditorCommentPart_Collapse_Comments;
-
- public static String TaskEditorCommentPart_Comments;
-
- public static String TaskEditorCommentPart_Expand_Comments;
-
- public static String TaskEditorDescriptionPart_Description;
-
- public static String TaskEditorDescriptionPart_Detector;
-
- public static String TaskEditorDescriptionPart_Duplicate_Detection_Failed;
-
- public static String TaskEditorDescriptionPart_Duplicate_Detection;
-
- public static String TaskEditorDescriptionPart_The_duplicate_detector_did_not_return_a_valid_query;
-
- public static String TaskEditorDescriptionPart_Search;
-
- public static String TaskEditorNewCommentPart_New_Comment;
-
- public static String TaskEditorOutlineNode_Comments;
-
- public static String TaskEditorOutlineNode_Description;
-
- public static String TaskEditorOutlineNode_New_Comment;
-
- public static String TaskEditorOutlineNode_Task_;
-
- public static String TaskEditorPeoplePart_People;
-
- public static String TaskEditorPlanningPart_0_SECOUNDS;
-
- public static String TaskEditorPlanningPart_Active;
-
- public static String TaskEditorPlanningPart_Clear;
-
- public static String TaskEditorPlanningPart_Confirm_Activity_Time_Deletion;
-
- public static String TaskEditorPlanningPart_Do_you_wish_to_reset_your_activity_time_on_this_task_;
-
- public static String TaskEditorPlanningPart_Due;
-
- public static String TaskEditorPlanningPart_Estimated;
-
- public static String TaskEditorPlanningPart_Personal_Planning;
-
- public static String TaskEditorPlanningPart_Reset;
-
- public static String TaskEditorPlanningPart_Scheduled;
-
- public static String TaskEditorPlanningPart_Time_working_on_this_task;
-
- public static String TaskEditorRichTextPart_Browser_Preview;
-
- public static String TaskEditorRichTextPart_Maximize;
-
- public static String TaskEditorRichTextPart_Preview;
-
- public static String TaskEditorSummaryPart_Summary;
-
- public static String TaskPlanningEditor_0_seconds;
-
- public static String TaskPlanningEditor_Active;
-
- public static String TaskPlanningEditor_Clear;
-
- public static String TaskPlanningEditor_Complete;
-
- public static String TaskPlanningEditor_Completed;
-
- public static String TaskPlanningEditor_Confirm_Activity_Time_Deletion;
-
- public static String TaskPlanningEditor_Created;
-
- public static String TaskPlanningEditor_Do_you_wish_to_reset_your_activity_time_on_this_task_;
-
- public static String TaskPlanningEditor_Due;
-
- public static String TaskPlanningEditor_Estimated_hours;
-
- public static String TaskPlanningEditor_Incomplete;
-
- public static String TaskPlanningEditor__info_editor_for_task_;
-
- public static String TaskPlanningEditor_Notes;
-
- public static String TaskPlanningEditor_Open_with_Web_Browser;
-
- public static String TaskPlanningEditor_Personal_Planning;
-
- public static String TaskPlanningEditor_Planning;
-
- public static String TaskPlanningEditor_Priority;
-
- public static String TaskPlanningEditor_Reset;
-
- public static String TaskPlanningEditor_Retrieve_task_description_from_URL;
-
- public static String TaskPlanningEditor_Scheduled_for;
-
- public static String TaskPlanningEditor_Status;
-
- public static String TaskPlanningEditor_Time_working_on_this_task;
-
- public static String TaskPlanningEditor_URL;
-
- public static String AbstractTaskEditorPage_Comment_required;
-
- public static String AbstractTaskEditorPage_Could_not_save_task;
-
- public static String AbstractTaskEditorPage_Error_opening_task;
-
- public static String AbstractTaskEditorPage_Failed_to_read_task_data_;
-
- public static String AbstractTaskEditorPage_History;
-
- public static String AbstractTaskEditorPage_Open_failed;
-
- public static String AbstractTaskEditorPage_Open_with_Web_Browser;
-
- public static String AbstractTaskEditorPage_Save_failed;
-
- public static String AbstractTaskEditorPage_Submit_failed;
-
- public static String AbstractTaskEditorPage_Submit_failed_;
-
- public static String AbstractTaskEditorPage_Synchronize_to_retrieve_task_data;
-
- public static String AbstractTaskEditorPage_Synchronize_to_update_editor_contents;
-
- public static String AbstractTaskEditorPage_Add_task_to_tasklist;
-
- public static String AbstractTaskEditorPage_Task_has_incoming_changes;
-
- public static String AbstractTaskEditorPage_Title;
-
- public static String AbstractTaskEditorPage_Unable_to_submit_at_this_time;
-
- public static String AttributeEditorToolkit_Content_Assist_Available__X_;
-
- public static String TaskEditor_Task_;
-
- public static String TaskEditor_Task_added_to_the_Uncategorized_container;
-
- public static String TaskEditorExtensionSettingsContribution__default_;
-
- public static String TaskEditorExtensionSettingsContribution_Editor;
-
- public static String TaskEditorExtensionSettingsContribution_Plain_Text;
-
- public static String TaskEditorExtensionSettingsContribution_Select_the_capabilities_of_the_task_editor;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/MultiSelectionAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/MultiSelectionAttributeEditor.java
deleted file mode 100644
index 08b3c06ea..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/MultiSelectionAttributeEditor.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- */
-public class MultiSelectionAttributeEditor extends AbstractAttributeEditor {
-
- private String[] allValues;
-
- private List list;
-
- public MultiSelectionAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.MULTIPLE, ColumnSpan.SINGLE));
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- list = new List(parent, SWT.FLAT | SWT.MULTI | SWT.V_SCROLL);
- toolkit.adapt(list, false, false);
- list.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- list.setFont(EditorUtil.TEXT_FONT);
-
- Map<String, String> labelByValue = getAttributeMapper().getOptions(getTaskAttribute());
- if (labelByValue != null) {
- allValues = labelByValue.keySet().toArray(new String[0]);
- for (String value : allValues) {
- list.add(labelByValue.get(value));
- }
- }
-
- select(getValues(), getValuesLabels());
-
- if (allValues != null) {
- list.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- Assert.isNotNull(allValues);
- int[] indices = list.getSelectionIndices();
- String[] selectedValues = new String[indices.length];
- for (int i = 0; i < indices.length; i++) {
- int index = indices[i];
- Assert.isLegal(index >= 0 && index <= allValues.length - 1);
- selectedValues[i] = allValues[index];
- }
- setValues(selectedValues);
- }
- });
- list.showSelection();
- }
-
- setControl(list);
- }
-
- public String[] getValues() {
- return getAttributeMapper().getValues(getTaskAttribute()).toArray(new String[0]);
- }
-
- public String[] getValuesLabels() {
- return getAttributeMapper().getValueLabels(getTaskAttribute()).toArray(new String[0]);
- }
-
- private void select(String[] values, String[] labels) {
- if (values != null) {
- list.deselectAll();
- Set<String> selectedValues = new HashSet<String>(Arrays.asList(values));
- for (int i = 0; i < allValues.length; i++) {
- if (selectedValues.contains(allValues[i])) {
- list.select(i);
- }
- }
- } else {
- list.setItems(labels);
- list.setSelection(labels);
- }
- }
-
- public void setValues(String[] values) {
- getAttributeMapper().setValues(getTaskAttribute(), Arrays.asList(values));
- attributeChanged();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PersonAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PersonAttributeEditor.java
deleted file mode 100644
index 17b86e4aa..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PersonAttributeEditor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-
-/**
- * @author Steffen Pingel
- */
-public class PersonAttributeEditor extends TextAttributeEditor {
-
- public PersonAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- }
-
- @Override
- public String getValue() {
- IRepositoryPerson repositoryPerson = getAttributeMapper().getRepositoryPerson(getTaskAttribute());
- if (repositoryPerson != null) {
- return (isReadOnly()) ? repositoryPerson.toString() : repositoryPerson.getPersonId();
- }
- return ""; //$NON-NLS-1$
- }
-
- @Override
- public void setValue(String text) {
- IRepositoryPerson person = getAttributeMapper().getTaskRepository().createPerson(text);
- getAttributeMapper().setRepositoryPerson(getTaskAttribute(), person);
- attributeChanged();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPageFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPageFactory.java
deleted file mode 100644
index 2ab408ff0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPageFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.forms.editor.IFormPage;
-
-public class PlanningPageFactory extends AbstractTaskEditorPageFactory {
-
- @Override
- public boolean canCreatePageFor(TaskEditorInput input) {
- return true;
- }
-
- @Override
- public IFormPage createPage(TaskEditor parentEditor) {
- return new TaskPlanningEditor(parentEditor);
- }
-
- @Override
- public Image getPageImage() {
- return CommonImages.getImage(CommonImages.CALENDAR_SMALL);
- }
-
- @Override
- public String getPageText() {
- return Messages.PlanningPageFactory_Planning;
- }
-
- @Override
- public int getPriority() {
- return PRIORITY_PLANNING;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryCompletionProcessor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryCompletionProcessor.java
deleted file mode 100644
index 1219f72e1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryCompletionProcessor.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Frank Becker 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:
- * Frank Becker - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.CompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Frank Becker
- * @author Steffen Pingel
- * @since 3.0
- */
-public class RepositoryCompletionProcessor implements IContentAssistProcessor {
-
- private class ProposalComputer {
-
- public static final String LABEL_SEPARATOR = " -------------------------------------------- "; //$NON-NLS-1$
-
- private final Set<ITask> addedTasks = new HashSet<ITask>();
-
- private boolean addSeparator;
-
- private final int offset;
-
- private final String prefix;
-
- private final List<CompletionProposal> resultList = new ArrayList<CompletionProposal>();
-
- public ProposalComputer(ITextViewer viewer, int offset) {
- this.offset = offset;
- this.prefix = extractPrefix(viewer, offset).toLowerCase();
- }
-
- private void addProposal(ITask task, String replacement, boolean includeTaskPrefix) {
- if (addSeparator) {
- if (!addedTasks.isEmpty()) {
- resultList.add(createSeparator());
- }
- addSeparator = false;
- }
-
- replacement = getReplacement(task, replacement, includeTaskPrefix);
- String displayString = labelProvider.getText(task);
- resultList.add(new CompletionProposal(replacement, offset - prefix.length(), prefix.length(),
- replacement.length(), labelProvider.getImage(task), displayString, null, null));
-
- addedTasks.add(task);
- }
-
- public void addSeparator() {
- addSeparator = true;
- }
-
- public void addTasks(List<AbstractTask> tasks) {
- for (AbstractTask task : tasks) {
- addTask(task);
- }
- }
-
- public void addTask(ITask task) {
- if (addedTasks.contains(task)) {
- return;
- }
-
- if (getNeverIncludePrefix() && !task.getRepositoryUrl().equals(taskRepository.getRepositoryUrl())) {
- return;
- }
-
- String taskKey = task.getTaskKey();
- if (prefix.length() == 0) {
- addProposal(task, taskKey, !getNeverIncludePrefix());
- } else if (taskKey != null && taskKey.startsWith(prefix)) {
- addProposal(task, taskKey, false);
- } else if (containsPrefix(task)) {
- addProposal(task, taskKey, !getNeverIncludePrefix());
- }
- }
-
- private String getReplacement(ITask task, String text, boolean includeTaskPrefix) {
- // add an absolute reference to the task if the viewer does not have a repository
- if (taskRepository == null || text == null
- || !taskRepository.getRepositoryUrl().equals(task.getRepositoryUrl())) {
- return CopyTaskDetailsAction.getTextForTask(task);
- }
-
- if (includeTaskPrefix) {
- return getTaskPrefix(task) + text;
- } else {
- return text;
- }
- }
-
- private boolean containsPrefix(ITask task) {
- String searchTest = getTaskPrefix(task) + " " + labelProvider.getText(task); //$NON-NLS-1$
- String[] tokens = searchTest.split("\\s"); //$NON-NLS-1$
- for (String token : tokens) {
- if (token.toLowerCase().startsWith(prefix)) {
- return true;
- }
- }
- return false;
- }
-
- private CompletionProposal createSeparator() {
- return new CompletionProposal("", offset, 0, 0, CommonImages.getImage(CommonImages.SEPARATOR_LIST), //$NON-NLS-1$
- LABEL_SEPARATOR, null, null);
- }
-
- /**
- * Returns the prefix of the currently completed text. Assumes that any character that is not a line break or
- * white space can be part of a task id.
- */
- private String extractPrefix(ITextViewer viewer, int offset) {
- int i = offset;
- IDocument document = viewer.getDocument();
- if (i > document.getLength()) {
- return ""; //$NON-NLS-1$
- }
-
- try {
- while (i > 0) {
- char ch = document.getChar(i - 1);
- if (Character.isWhitespace(ch)) {
- break;
- }
- i--;
- }
-
- return document.get(i, offset - i);
- } catch (BadLocationException e) {
- return ""; //$NON-NLS-1$
- }
- }
-
- public void filterTasks(List<AbstractTask> tasks) {
- for (Iterator<AbstractTask> it = tasks.iterator(); it.hasNext();) {
- ITask task = it.next();
- if (!select(task)) {
- it.remove();
- }
- }
- }
-
- private boolean select(ITask task) {
- return !(task instanceof LocalTask) //
- && (taskRepository == null || task.getRepositoryUrl().equals(taskRepository.getRepositoryUrl()));
- }
-
- public ICompletionProposal[] getResult() {
- return resultList.toArray(new ICompletionProposal[resultList.size()]);
- }
-
- }
-
- private static final int MAX_OPEN_EDITORS = 10;
-
- private static final int MAX_ACTIVATED_TASKS = 10;
-
- private final TaskElementLabelProvider labelProvider = new TaskElementLabelProvider(false);
-
- private final TaskRepository taskRepository;
-
- private boolean neverIncludePrefix;
-
- public RepositoryCompletionProcessor(TaskRepository taskRepository) {
- this.taskRepository = taskRepository;
- this.neverIncludePrefix = false;
- }
-
- public boolean getNeverIncludePrefix() {
- return neverIncludePrefix;
- }
-
- public void setNeverIncludePrefix(boolean includePrefix) {
- this.neverIncludePrefix = includePrefix;
- }
-
- public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
- ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
- // adjust offset to end of normalized selection
- if (selection.getOffset() == offset) {
- offset = selection.getOffset() + selection.getLength();
- }
-
- ProposalComputer proposalComputer = new ProposalComputer(viewer, offset);
-
- // add tasks from navigation history
-// IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-// if (window != null) {
-// IWorkbenchPage page = window.getActivePage();
-// if (page != null) {
-// INavigationHistory history = page.getNavigationHistory();
-// INavigationLocation[] locations = history.getLocations();
-// if (locations != null) {
-// for (INavigationLocation location : locations) {
-// // location is always null
-// }
-// }
-// }
-// }
-
- // add open editor
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page = window.getActivePage();
- if (page != null) {
- IEditorReference[] editorReferences = page.getEditorReferences();
- int count = 0;
- for (int i = editorReferences.length - 1; i >= 0 && count < MAX_OPEN_EDITORS; i--) {
- try {
- if (editorReferences[i].getEditorInput() instanceof TaskEditorInput) {
- TaskEditorInput input = (TaskEditorInput) editorReferences[i].getEditorInput();
- ITask task = input.getTask();
- if (task != null && !(task instanceof LocalTask)) {
- proposalComputer.addTask(task);
- count++;
- }
- }
- } catch (PartInitException e) {
- // ignore
- }
- }
- }
- }
-
- // add tasks from activation history
- TaskActivationHistory taskHistory = TasksUiPlugin.getTaskActivityManager().getTaskActivationHistory();
- List<AbstractTask> tasks = taskHistory.getPreviousTasks(TasksUiInternal.getContainersFromWorkingSet(TaskWorkingSetUpdater.getActiveWorkingSets(window)));
- int count = 0;
- for (int i = tasks.size() - 1; i >= 0 && count < MAX_ACTIVATED_TASKS; i--) {
- AbstractTask task = tasks.get(i);
- if (!(task instanceof LocalTask)) {
- proposalComputer.addTask(task);
- }
- }
-
- // add all remaining tasks for repository
- if (taskRepository != null) {
- proposalComputer.addSeparator();
-
- TaskList taskList = TasksUiPlugin.getTaskList();
- tasks = new ArrayList<AbstractTask>(taskList.getAllTasks());
- proposalComputer.filterTasks(tasks);
- Collections.sort(tasks, new Comparator<AbstractTask>() {
- public int compare(AbstractTask o1, AbstractTask o2) {
- return labelProvider.getText(o1).compareTo(labelProvider.getText(o2));
- }
- });
- proposalComputer.addTasks(tasks);
- }
-
- return proposalComputer.getResult();
- }
-
- public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) {
- return null;
- }
-
- public char[] getCompletionProposalAutoActivationCharacters() {
- return null;
- }
-
- public char[] getContextInformationAutoActivationCharacters() {
- return null;
- }
-
- public IContextInformationValidator getContextInformationValidator() {
- return null;
- }
-
- public String getErrorMessage() {
- return null;
- }
-
- private String getTaskPrefix(ITask task) {
- AbstractRepositoryConnector connector = TasksUiPlugin.getConnector(task.getConnectorKind());
- String prefix = connector.getTaskIdPrefix();
- // FIXME work around for Trac "#" prefix
- return (prefix.length() > 1) ? prefix + " " : prefix; //$NON-NLS-1$
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryTextViewerConfiguration.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryTextViewerConfiguration.java
deleted file mode 100644
index 5043ce2be..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RepositoryTextViewerConfiguration.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.IHyperlinkPresenter;
-import org.eclipse.jface.text.presentation.IPresentationReconciler;
-import org.eclipse.jface.text.presentation.PresentationReconciler;
-import org.eclipse.jface.text.reconciler.IReconciler;
-import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
-import org.eclipse.jface.text.rules.IRule;
-import org.eclipse.jface.text.rules.IToken;
-import org.eclipse.jface.text.rules.MultiLineRule;
-import org.eclipse.jface.text.rules.RuleBasedScanner;
-import org.eclipse.jface.text.rules.SingleLineRule;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlinkPresenter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
-
-/**
- * @author Rob Elves
- * @author Steffen Pingel
- * @since 3.0
- */
-public class RepositoryTextViewerConfiguration extends TextSourceViewerConfiguration {
-
- public enum Mode {
- URL, TASK, TASK_RELATION, DEFAULT
- }
-
- private static final String ID_CONTEXT_EDITOR_TASK = "org.eclipse.mylyn.tasks.ui.TaskEditor"; //$NON-NLS-1$
-
- private static final String ID_CONTEXT_EDITOR_TEXT = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$
-
- private RepositoryTextScanner scanner;
-
- private final boolean spellCheck;
-
- private final TaskRepository taskRepository;
-
- private Mode mode;
-
- public RepositoryTextViewerConfiguration(TaskRepository taskRepository, boolean spellCheck) {
- super(EditorsUI.getPreferenceStore());
- this.taskRepository = taskRepository;
- this.spellCheck = spellCheck;
- this.mode = Mode.DEFAULT;
- }
-
- public Mode getMode() {
- return mode;
- }
-
- public void setMode(Mode mode) {
- Assert.isNotNull(mode);
- this.mode = mode;
- }
-
- @Override
- public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
- if (getMode() == Mode.DEFAULT) {
- PresentationReconciler reconciler = new PresentationReconciler();
- reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getDefaultScanner());
- reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
- reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
- return reconciler;
- }
- return super.getPresentationReconciler(sourceViewer);
- }
-
- private RepositoryTextScanner getDefaultScanner() {
- if (scanner == null) {
- scanner = new RepositoryTextScanner(getMode());
- }
- return scanner;
- }
-
- @Override
- public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
- if (mode == Mode.URL || mode == Mode.TASK_RELATION) {
- return getDefaultHyperlinkDetectors(sourceViewer, mode);
- }
- return super.getHyperlinkDetectors(sourceViewer);
- }
-
- public IHyperlinkDetector[] getDefaultHyperlinkDetectors(ISourceViewer sourceViewer, Mode mode) {
- IHyperlinkDetector[] detectors;
- if (mode == Mode.URL) {
- detectors = new IHyperlinkDetector[] { new TaskUrlHyperlinkDetector() };
- } else if (mode == Mode.TASK) {
- detectors = new IHyperlinkDetector[] { new TaskHyperlinkDetector() };
- } else if (mode == Mode.TASK_RELATION) {
- detectors = new IHyperlinkDetector[] { new TaskRelationHyperlinkDetector() };
- } else {
- detectors = super.getHyperlinkDetectors(sourceViewer);
- }
- if (detectors != null) {
- IAdaptable target = getDefaultHyperlinkTarget();
- for (IHyperlinkDetector hyperlinkDetector : detectors) {
- if (hyperlinkDetector instanceof AbstractHyperlinkDetector) {
- ((AbstractHyperlinkDetector) hyperlinkDetector).setContext(target);
- }
- }
- }
- return detectors;
- }
-
- @Override
- @SuppressWarnings("unchecked")
- protected Map getHyperlinkDetectorTargets(final ISourceViewer sourceViewer) {
- IAdaptable context = getDefaultHyperlinkTarget();
-
- Map targets = new HashMap();
- targets.put(ID_CONTEXT_EDITOR_TEXT, context);
- targets.put(ID_CONTEXT_EDITOR_TASK, context);
- return targets;
- }
-
- @SuppressWarnings("unchecked")
- private IAdaptable getDefaultHyperlinkTarget() {
- IAdaptable context = new IAdaptable() {
- public Object getAdapter(Class adapter) {
- if (adapter == TaskRepository.class) {
- return getTaskRepository();
- }
- return null;
- }
- };
- return context;
- }
-
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
-
- @Override
- public IHyperlinkPresenter getHyperlinkPresenter(final ISourceViewer sourceViewer) {
- if (fPreferenceStore == null) {
- return new TaskHyperlinkPresenter(new RGB(0, 0, 255));
- }
- return new TaskHyperlinkPresenter(fPreferenceStore);
- }
-
- @Override
- public int getHyperlinkStateMask(ISourceViewer sourceViewer) {
- return SWT.NONE;
- }
-
- @Override
- public IReconciler getReconciler(ISourceViewer sourceViewer) {
- if (spellCheck) {
- return super.getReconciler(sourceViewer);
- } else {
- return null;
- }
- }
-
- private static class RepositoryTextScanner extends RuleBasedScanner {
-
- public RepositoryTextScanner(Mode mode) {
- IToken bugToken = new Token(new TextAttribute(JFaceResources.getColorRegistry().get(
- JFacePreferences.ACTIVE_HYPERLINK_COLOR)));
- IToken quoteToken = new Token(new TextAttribute(CommonColors.TEXT_QUOTED));
- IRule[] rules = new IRule[16];
- rules[0] = (new SingleLineRule("http://", " ", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[1] = (new SingleLineRule("https://", " ", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[2] = (new SingleLineRule("bug#", " ", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[3] = (new SingleLineRule("bug#", "", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[4] = (new SingleLineRule("bug #", "", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[5] = (new SingleLineRule("http://", "\n", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[6] = (new SingleLineRule("https://", "\n", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[7] = (new SingleLineRule("task#", " ", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[8] = (new MultiLineRule("task#", "\n", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[9] = (new MultiLineRule("task# ", " ", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[10] = (new SingleLineRule("task #", "\n", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[11] = (new SingleLineRule("*** This bug has been ", "***", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[12] = (new SingleLineRule("http://", "", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[13] = (new SingleLineRule("https://", "", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- rules[14] = (new MultiLineRule("task #", " ", bugToken)); //$NON-NLS-1$ //$NON-NLS-2$
- SingleLineRule quoteRule = new SingleLineRule(">", null, quoteToken, (char) 0, true); //$NON-NLS-1$
- quoteRule.setColumnConstraint(0);
- rules[15] = quoteRule;
- setRules(rules);
- }
-
- }
-
- @Override
- public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
- if (mode == Mode.URL) {
- return null;
- }
- ContentAssistant assistant = new ContentAssistant();
- RepositoryCompletionProcessor processor = new RepositoryCompletionProcessor(taskRepository);
- if (mode == Mode.TASK_RELATION) {
- processor.setNeverIncludePrefix(true);
- }
- assistant.setContentAssistProcessor(processor, IDocument.DEFAULT_CONTENT_TYPE);
- return assistant;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java
deleted file mode 100644
index 16f97cffb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/RichTextAttributeEditor.java
+++ /dev/null
@@ -1,538 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Raphael Ackermann - spell checking support on bug 195514
- * Jingwen Ou - extensibility improvements
- * David Green - fix for bug 256702
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.source.AnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationAccess;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.tasks.ui.commands.ViewSourceHandler;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryTextViewerConfiguration.Mode;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractRenderingEngine;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorExtension;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.texteditor.AnnotationPreference;
-import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
-import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
-import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * A text attribute editor that can switch between a editor, preview and source view.
- *
- * @author Raphael Ackermann
- * @author Steffen Pingel
- * @author Jingwen Ou
- */
-public class RichTextAttributeEditor extends AbstractAttributeEditor {
-
- private IContextActivation contextActivation;
-
- private final IContextService contextService;
-
- private SourceViewer defaultViewer;
-
- private Composite editorComposite;
-
- private StackLayout editorLayout;
-
- private final AbstractTaskEditorExtension extension;
-
- private SourceViewer editorViewer;
-
- private SourceViewer previewViewer;
-
- private final TaskRepository taskRepository;
-
- private FormToolkit toolkit;
-
- public class ViewSourceAction extends Action {
-
- public ViewSourceAction() {
- super(Messages.RichTextAttributeEditor_Viewer_Source, SWT.TOGGLE);
- setChecked(false);
- setEnabled(false);
- }
-
- @Override
- public void run() {
- if (isChecked()) {
- showDefault();
- } else {
- showEditor();
- }
- if (editorLayout != null) {
- EditorUtil.reflow(editorLayout.topControl);
- }
- ViewSourceHandler.setChecked(isChecked());
- }
-
- }
-
- private final IAction viewSourceAction = new ViewSourceAction();
-
- private boolean spellCheckingEnabled;
-
- private final int style;
-
- private Mode mode;
-
- private AbstractRenderingEngine renderingEngine;
-
- private BrowserPreviewViewer browserViewer;
-
- public RichTextAttributeEditor(TaskDataModel manager, TaskRepository taskRepository, TaskAttribute taskAttribute) {
- this(manager, taskRepository, taskAttribute, SWT.MULTI);
- }
-
- public RichTextAttributeEditor(TaskDataModel manager, TaskRepository taskRepository, TaskAttribute taskAttribute,
- int style) {
- this(manager, taskRepository, taskAttribute, style, null, null);
- }
-
- public RichTextAttributeEditor(TaskDataModel manager, TaskRepository taskRepository, TaskAttribute taskAttribute,
- int style, IContextService contextService, AbstractTaskEditorExtension extension) {
- super(manager, taskAttribute);
- this.taskRepository = taskRepository;
- this.style = style;
- this.contextService = contextService;
- this.extension = extension;
- if ((style & SWT.MULTI) != 0) {
- setLayoutHint(new LayoutHint(RowSpan.MULTIPLE, ColumnSpan.MULTIPLE));
- } else {
- setLayoutHint(new LayoutHint(RowSpan.SINGLE, ColumnSpan.MULTIPLE));
- }
- setMode(Mode.DEFAULT);
- }
-
- public Mode getMode() {
- return mode;
- }
-
- public void setMode(Mode mode) {
- Assert.isNotNull(mode);
- this.mode = mode;
- }
-
- private void installListeners(final SourceViewer viewer) {
- viewer.addTextListener(new ITextListener() {
- public void textChanged(TextEvent event) {
- // filter out events caused by text presentation changes, e.g. annotation drawing
- String value = viewer.getTextWidget().getText();
- if (!getValue().equals(value)) {
- setValue(value);
- CommonFormUtil.ensureVisible(viewer.getTextWidget());
- }
- }
- });
- // ensure that tab traverses to next control instead of inserting a tab character unless editing multi-line text
- if ((style & SWT.MULTI) != 0 && mode != Mode.DEFAULT) {
- viewer.getTextWidget().addListener(SWT.Traverse, new Listener() {
- public void handleEvent(Event event) {
- switch (event.detail) {
- case SWT.TRAVERSE_TAB_NEXT:
- case SWT.TRAVERSE_TAB_PREVIOUS:
- event.doit = true;
- break;
- }
- }
- });
- }
- }
-
- public String getValue() {
- return getAttributeMapper().getValue(getTaskAttribute());
- }
-
- public boolean isSpellCheckingEnabled() {
- return spellCheckingEnabled;
- }
-
- public void setSpellCheckingEnabled(boolean spellCheckingEnabled) {
- this.spellCheckingEnabled = spellCheckingEnabled;
- }
-
- public void setValue(String value) {
- getAttributeMapper().setValue(getTaskAttribute(), value);
- attributeChanged();
- }
-
- /** Configures annotation model for spell checking. */
- private void configureAsEditor(SourceViewer viewer, Document document) {
- AnnotationModel annotationModel = new AnnotationModel();
- viewer.showAnnotations(false);
- viewer.showAnnotationsOverview(false);
- IAnnotationAccess annotationAccess = new DefaultMarkerAnnotationAccess();
- final SourceViewerDecorationSupport support = new SourceViewerDecorationSupport(viewer, null, annotationAccess,
- EditorsUI.getSharedTextColors());
- Iterator<?> e = new MarkerAnnotationPreferences().getAnnotationPreferences().iterator();
- while (e.hasNext()) {
- support.setAnnotationPreference((AnnotationPreference) e.next());
- }
- support.install(EditorsUI.getPreferenceStore());
- viewer.getTextWidget().addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- support.uninstall();
- }
- });
- //viewer.getTextWidget().setIndent(2);
- viewer.setDocument(document, annotationModel);
- }
-
- private RepositoryTextViewerConfiguration installHyperlinkPresenter(SourceViewer viewer) {
- RepositoryTextViewerConfiguration configuration = new RepositoryTextViewerConfiguration(taskRepository, false);
- configuration.setMode(getMode());
-
- // do not configure viewer, this has already been done in extension
-
- AbstractHyperlinkTextPresentationManager manager;
- if (getMode() == Mode.DEFAULT) {
- manager = new HighlightingHyperlinkTextPresentationManager();
- manager.setHyperlinkDetectors(configuration.getDefaultHyperlinkDetectors(viewer, null));
- manager.install(viewer);
-
- manager = new TaskHyperlinkTextPresentationManager();
- manager.setHyperlinkDetectors(configuration.getDefaultHyperlinkDetectors(viewer, Mode.TASK));
- manager.install(viewer);
- } else if (getMode() == Mode.TASK_RELATION) {
- manager = new TaskHyperlinkTextPresentationManager();
- manager.setHyperlinkDetectors(configuration.getDefaultHyperlinkDetectors(viewer, Mode.TASK_RELATION));
- manager.install(viewer);
- }
-
- return configuration;
- }
-
- private SourceViewer configure(final SourceViewer viewer, boolean readOnly) {
- // do this before setting the document to not require invalidating the presentation
- installHyperlinkPresenter(viewer);
-
- Document document = new Document(getValue());
- if (readOnly) {
- viewer.setDocument(document);
- if (extension != null) {
- // setting view source action
- viewer.getControl().setData(ViewSourceHandler.VIEW_SOURCE_ACTION, viewSourceAction);
- viewer.getControl().addFocusListener(new FocusAdapter() {
- @Override
- public void focusGained(FocusEvent e) {
- ViewSourceHandler.setChecked(getViewer() == defaultViewer);
- }
- });
- }
- } else {
- configureAsEditor(viewer, document);
- installListeners(viewer);
- viewer.getControl().setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- }
-
- // enable cut/copy/paste
- CommonTextSupport.setTextViewer(viewer.getTextWidget(), viewer);
- viewer.setEditable(!readOnly);
- viewer.getTextWidget().setFont(getFont());
- toolkit.adapt(viewer.getControl(), false, false);
-
- return viewer;
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- this.toolkit = toolkit;
-
- int style = this.style;
- if (!isReadOnly() && (style & TasksUiInternal.SWT_NO_SCROLL) == 0) {
- style |= SWT.V_SCROLL;
- }
-
- if (extension != null || renderingEngine != null) {
- editorComposite = new Composite(parent, SWT.NULL);
- editorLayout = new StackLayout() {
- @Override
- protected Point computeSize(Composite composite, int hint, int hint2, boolean flushCache) {
- return topControl.computeSize(hint, hint2, flushCache);
- }
- };
- editorComposite.setLayout(editorLayout);
- setControl(editorComposite);
-
- if (extension != null) {
- if (isReadOnly()) {
- editorViewer = extension.createViewer(taskRepository, editorComposite, style);
- } else {
- editorViewer = extension.createEditor(taskRepository, editorComposite, style);
- editorViewer.getTextWidget().addFocusListener(new FocusListener() {
- public void focusGained(FocusEvent e) {
- setContext();
- }
-
- public void focusLost(FocusEvent e) {
- unsetContext();
- }
- });
- editorViewer.getTextWidget().addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- unsetContext();
- }
- });
- }
- configure(editorViewer, isReadOnly());
- show(editorViewer);
- } else {
- defaultViewer = createDefaultEditor(editorComposite, style);
- configure(defaultViewer, isReadOnly());
- show(defaultViewer);
- }
-
- if (!isReadOnly() && (style & TasksUiInternal.SWT_NO_SCROLL) == 0) {
- editorComposite.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- }
-
- viewSourceAction.setEnabled(true);
- } else {
- defaultViewer = createDefaultEditor(parent, style);
- configure(defaultViewer, isReadOnly());
- setControl(defaultViewer.getControl());
-
- viewSourceAction.setEnabled(false);
- }
- }
-
- private SourceViewer createDefaultEditor(Composite parent, int styles) {
- SourceViewer defaultEditor = new SourceViewer(parent, null, styles | SWT.WRAP);
-
- RepositoryTextViewerConfiguration viewerConfig = new RepositoryTextViewerConfiguration(taskRepository,
- isSpellCheckingEnabled() && !isReadOnly());
- viewerConfig.setMode(getMode());
- defaultEditor.configure(viewerConfig);
-
- return defaultEditor;
- }
-
- public SourceViewer getDefaultViewer() {
- if (defaultViewer == null) {
- defaultViewer = createDefaultEditor(editorComposite, style);
- configure(defaultViewer, isReadOnly());
-
- // fixed font size
- defaultViewer.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
- // adapt maximize action
- defaultViewer.getControl().setData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION,
- editorViewer.getControl().getData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION));
- // adapt menu to the new viewer
- installMenu(defaultViewer.getControl(), editorViewer.getControl().getMenu());
- }
- return defaultViewer;
- }
-
- private void installMenu(final Control control, Menu menu) {
- if (menu != null) {
- control.setMenu(menu);
- control.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- control.setMenu(null);
- }
- });
- }
- }
-
- private Font getFont() {
- IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
- Font font = themeManager.getCurrentTheme().getFontRegistry().get(CommonThemes.FONT_EDITOR_COMMENT);
- return font;
- }
-
- private SourceViewer getPreviewViewer() {
- if (extension == null) {
- return null;
- }
-
- // construct as needed
- if (previewViewer == null) {
- // previewer should always have a vertical scroll bar if it's editable
- int previewViewerStyle = style;
- if (getEditorViewer() != null) {
- previewViewerStyle |= SWT.V_SCROLL;
- }
- previewViewer = extension.createViewer(taskRepository, editorComposite, previewViewerStyle);
- configure(previewViewer, true);
- // adapt maximize action
- previewViewer.getControl().setData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION,
- editorViewer.getControl().getData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION));
- }
- Document document = new Document(editorViewer.getDocument().get());
- previewViewer.setDocument(document);
- return previewViewer;
- }
-
- public SourceViewer getEditorViewer() {
- return editorViewer;
- }
-
- public SourceViewer getViewer() {
- if (editorLayout == null) {
- return defaultViewer;
- }
- if (defaultViewer != null && editorLayout.topControl == defaultViewer.getControl()) {
- return defaultViewer;
- } else if (previewViewer != null && editorLayout.topControl == previewViewer.getControl()) {
- return previewViewer;
- } else {
- return editorViewer;
- }
- }
-
- private void setContext() {
- if (contextService == null) {
- return;
- }
- if (contextActivation != null) {
- contextService.deactivateContext(contextActivation);
- contextActivation = null;
- }
- if (contextService != null && extension.getEditorContextId() != null) {
- contextActivation = contextService.activateContext(extension.getEditorContextId());
- }
- }
-
- /**
- * Brings <code>viewer</code> to top.
- */
- private void show(SourceViewer viewer) {
- show(viewer.getControl());
- }
-
- /**
- * Brings <code>control</code> to top.
- */
- private void show(Control control) {
- // no extension is available
- if (editorComposite == null) {
- return;
- }
-
- editorLayout.topControl = control;
- if (editorComposite.getParent().getLayout() instanceof FillWidthLayout) {
- ((FillWidthLayout) editorComposite.getParent().getLayout()).flush();
- }
- editorComposite.layout();
- control.setFocus();
- }
-
- public void showDefault() {
- show(getDefaultViewer());
- }
-
- public void showPreview() {
- if (!isReadOnly()) {
- show(getPreviewViewer());
- }
- }
-
- public void showEditor() {
- if (getEditorViewer() != null) {
- show(getEditorViewer());
- } else {
- show(getDefaultViewer());
- }
- }
-
- private void unsetContext() {
- if (contextService == null) {
- return;
- }
- if (contextActivation != null) {
- contextService.deactivateContext(contextActivation);
- contextActivation = null;
- }
- }
-
- public boolean hasPreview() {
- return extension != null && !isReadOnly();
- }
-
- public boolean hasBrowser() {
- return renderingEngine != null;
- }
-
- private BrowserPreviewViewer getBrowserViewer() {
- if (editorComposite == null || renderingEngine == null) {
- return null;
- }
-
- if (browserViewer == null) {
- browserViewer = new BrowserPreviewViewer(getModel().getTaskRepository(), renderingEngine);
- browserViewer.createControl(editorComposite, toolkit);
- }
- return browserViewer;
- }
-
- public AbstractRenderingEngine getRenderingEngine() {
- return renderingEngine;
- }
-
- public void setRenderingEngine(AbstractRenderingEngine renderingEngine) {
- this.renderingEngine = renderingEngine;
- }
-
- public void showBrowser() {
- BrowserPreviewViewer viewer = getBrowserViewer();
- viewer.update(getValue());
- if (viewer != null) {
- show(viewer.getControl());
- }
- }
-
- public IAction getViewSourceAction() {
- return viewSourceAction;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/SingleSelectionAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/SingleSelectionAttributeEditor.java
deleted file mode 100644
index 176c5b92c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/SingleSelectionAttributeEditor.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- */
-public class SingleSelectionAttributeEditor extends AbstractAttributeEditor {
-
- private String[] values;
-
- private CCombo combo;
-
- private boolean ignoreNotification;
-
- private Text text;
-
- public SingleSelectionAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- if (isReadOnly()) {
- text = new Text(parent, SWT.FLAT | SWT.READ_ONLY);
- text.setFont(EditorUtil.TEXT_FONT);
- toolkit.adapt(text, false, false);
- text.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE);
- refresh();
- setControl(text);
- } else {
- combo = new CCombo(parent, SWT.FLAT | SWT.READ_ONLY);
- combo.setVisibleItemCount(10);
- toolkit.adapt(combo, false, false);
- combo.setFont(EditorUtil.TEXT_FONT);
- combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-
- refresh();
-
- if (values != null) {
- combo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- if (!ignoreNotification) {
- int index = combo.getSelectionIndex();
- if (index > -1) {
- Assert.isNotNull(values);
- Assert.isLegal(index >= 0 && index <= values.length - 1);
- setValue(values[index]);
- }
- }
- }
- });
- }
-
- setControl(combo);
- }
- }
-
- public String getValue() {
- return getAttributeMapper().getValue(getTaskAttribute());
- }
-
- public String getValueLabel() {
- return getAttributeMapper().getValueLabel(getTaskAttribute());
- }
-
- private void select(String value, String label) {
- if (values != null) {
- for (int i = 0; i < values.length; i++) {
- if (values[i].equals(value)) {
- combo.select(i);
- break;
- }
- }
- } else {
- combo.setText(label);
- }
- }
-
- public void setValue(String value) {
- String oldValue = getAttributeMapper().getValue(getTaskAttribute());
- if (!oldValue.equals(value)) {
- getAttributeMapper().setValue(getTaskAttribute(), value);
- attributeChanged();
- }
- }
-
- void selectDefaultValue() {
- if (combo.getSelectionIndex() == -1 && values.length > 0) {
- combo.select(0);
- setValue(values[0]);
- }
- }
-
- @Override
- public void refresh() {
- try {
- ignoreNotification = true;
- if (text != null) {
- String label = getValueLabel();
- if ("".equals(label)) { //$NON-NLS-1$
- // if set to the empty string the label will use 64px on GTK
- text.setText(" "); //$NON-NLS-1$
- } else {
- text.setText(label);
- }
- } else if (combo != null) {
- combo.removeAll();
- Map<String, String> labelByValue = getAttributeMapper().getOptions(getTaskAttribute());
- if (labelByValue != null) {
- values = labelByValue.keySet().toArray(new String[0]);
- for (String value : values) {
- combo.add(labelByValue.get(value));
- }
- }
- select(getValue(), getValueLabel());
- combo.redraw();
- }
- } finally {
- ignoreNotification = false;
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentDropListener.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentDropListener.java
deleted file mode 100644
index 58e3b05a0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentDropListener.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Maarten Meijer - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.io.File;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.core.data.TextTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewAttachmentWizardDialog;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * @author Mik Kersten
- * @author Maarten Meijer
- * @author Steffen Pingel
- */
-public class TaskAttachmentDropListener implements DropTargetListener {
-
- private final AbstractTaskEditorPage page;
-
- public TaskAttachmentDropListener(AbstractTaskEditorPage page) {
- this.page = page;
- }
-
- public void dragEnter(DropTargetEvent event) {
- if (event.detail == DND.DROP_DEFAULT) {
- if ((event.operations & DND.DROP_COPY) != 0) {
- event.detail = DND.DROP_COPY;
- } else {
- event.detail = DND.DROP_NONE;
- }
- }
- // will accept text but prefer to have files dropped
- for (TransferData dataType : event.dataTypes) {
- if (FileTransfer.getInstance().isSupportedType(dataType)) {
- event.currentDataType = dataType;
- // files should only be copied
- if (event.detail != DND.DROP_COPY) {
- event.detail = DND.DROP_NONE;
- }
- break;
- }
- }
- }
-
- public void dragOver(DropTargetEvent event) {
- event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
- }
-
- public void dragOperationChanged(DropTargetEvent event) {
- if ((event.detail == DND.DROP_DEFAULT) || (event.operations & DND.DROP_COPY) != 0) {
- event.detail = DND.DROP_COPY;
- } else {
- event.detail = DND.DROP_NONE;
- }
- // allow text to be moved but files should only be copied
- if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) {
- if (event.detail != DND.DROP_COPY) {
- event.detail = DND.DROP_NONE;
- }
- }
- }
-
- public void dragLeave(DropTargetEvent event) {
- }
-
- public void dropAccept(DropTargetEvent event) {
- }
-
- public void drop(DropTargetEvent event) {
- if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
- String text = (String) event.data;
- EditorUtil.openNewAttachmentWizard(page, null, new TextTaskAttachmentSource(text));
- }
- if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) {
- String[] files = (String[]) event.data;
- if (files.length > 0) {
- File file = new File(files[0]);
- NewAttachmentWizardDialog dialog = EditorUtil.openNewAttachmentWizard(page, null,
- new FileTaskAttachmentSource(file));
- if (files.length > 1) {
- dialog.setMessage(Messages.TaskAttachmentDropListener_Note_that_only_the_first_file_dragged_will_be_attached,
- IMessageProvider.WARNING);
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentEditorInput.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentEditorInput.java
deleted file mode 100644
index 006b85ea9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentEditorInput.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IStorageEditorInput;
-
-/**
- * @author Jeff Pound
- * @author Steffen Pingel
- */
-public class TaskAttachmentEditorInput extends PlatformObject implements IStorageEditorInput {
-
- private final ITaskAttachment attachment;
-
- public TaskAttachmentEditorInput(ITaskAttachment attachment) {
- this.attachment = attachment;
- }
-
- public boolean exists() {
- return true;
- }
-
- public ImageDescriptor getImageDescriptor() {
- // ignore
- return null;
- }
-
- public String getName() {
- return attachment.getFileName();
- }
-
- public IPersistableElement getPersistable() {
- return null;
- }
-
- public String getToolTipText() {
- return attachment.getUrl();
- }
-
- public IStorage getStorage() throws CoreException {
- return TaskAttachmentStorage.create(attachment);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentStorage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentStorage.java
deleted file mode 100644
index ced37c7f9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskAttachmentStorage.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Jeff Pound
- * @author Steffen Pingel
- */
-public class TaskAttachmentStorage extends PlatformObject implements IStorage {
-
- private static final String ATTACHMENT_DEFAULT_NAME = "attachment"; //$NON-NLS-1$
-
- private static final String CTYPE_ZIP = "zip"; //$NON-NLS-1$
-
- private static final String CTYPE_OCTET_STREAM = "octet-stream"; //$NON-NLS-1$
-
- private static final String CTYPE_TEXT = "text"; //$NON-NLS-1$
-
- private static final String CTYPE_HTML = "html"; //$NON-NLS-1$
-
- private final TaskRepository taskRepository;
-
- private final ITask task;
-
- private final TaskAttribute attachmentAttribute;
-
- private final String name;
-
- public TaskAttachmentStorage(TaskRepository taskRepository, ITask task, TaskAttribute attachmentAttribute,
- String name) {
- this.taskRepository = taskRepository;
- this.task = task;
- this.attachmentAttribute = attachmentAttribute;
- this.name = name;
- }
-
- public static IStorage create(ITaskAttachment attachment) throws CoreException {
- Assert.isNotNull(attachment);
- TaskAttribute taskAttribute = attachment.getTaskAttribute();
- if (taskAttribute == null) {
- throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to find attachment: " //$NON-NLS-1$
- + attachment.getUrl()));
- }
- return new TaskAttachmentStorage(attachment.getTaskRepository(), attachment.getTask(), taskAttribute,
- getName(attachment));
- }
-
- private static String getName(ITaskAttachment attachment) {
- String name = attachment.getFileName();
- // if no filename is set, make one up with the proper extension so
- // we can support opening in that filetype's default editor
- if (name == null || "".equals(name)) { //$NON-NLS-1$
- String ctype = attachment.getContentType();
- if (ctype.endsWith(CTYPE_HTML)) {
- name = ATTACHMENT_DEFAULT_NAME + ".html"; //$NON-NLS-1$
- } else if (ctype.startsWith(CTYPE_TEXT)) {
- name = ATTACHMENT_DEFAULT_NAME + ".txt"; //$NON-NLS-1$
- } else if (ctype.endsWith(CTYPE_OCTET_STREAM)) {
- name = ATTACHMENT_DEFAULT_NAME;
- } else if (ctype.endsWith(CTYPE_ZIP)) {
- name = ATTACHMENT_DEFAULT_NAME + "." + CTYPE_ZIP; //$NON-NLS-1$
- } else {
- name = ATTACHMENT_DEFAULT_NAME + "." + ctype.substring(ctype.indexOf("/") + 1); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- // treat .patch files as text files
- if (name.endsWith(".patch")) { //$NON-NLS-1$
- name += ".txt"; //$NON-NLS-1$
- }
- return name;
- }
-
- public InputStream getContents() throws CoreException {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- AbstractTaskAttachmentHandler handler = connector.getTaskAttachmentHandler();
- return handler.getContent(taskRepository, task, attachmentAttribute, new NullProgressMonitor());
- }
-
- public IPath getFullPath() {
- // ignore
- return null;
- }
-
- public String getName() {
- return name;
- }
-
- public boolean isReadOnly() {
- return true;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java
deleted file mode 100644
index e72a9b0aa..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchActionSupport;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchActionSupport.WorkbenchActionCallback;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.AddExistingTaskJob;
-import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskFromSelectionAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ShowInTaskListAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeEditorAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class TaskEditorActionContributor extends MultiPageEditorActionBarContributor implements
- ISelectionChangedListener {
-
- private class EditorPageCallback extends WorkbenchActionCallback {
-
- @Override
- public boolean canPerformAction(String actionId, Control control) {
- IFormPage activePage = getActivePage();
- if (activePage instanceof AbstractTaskEditorPage) {
- AbstractTaskEditorPage page = (AbstractTaskEditorPage) activePage;
- return page.canPerformAction(actionId);
- } else if (activePage != null) {
- WorkbenchActionCallback textSupport = (WorkbenchActionCallback) activePage.getAdapter(WorkbenchActionCallback.class);
- if (textSupport != null) {
- return textSupport.canPerformAction(actionId, control);
- }
- }
- return super.canPerformAction(actionId, control);
- }
-
- @Override
- public void doAction(String actionId, Control control) {
- IFormPage activePage = getActivePage();
- if (activePage instanceof AbstractTaskEditorPage) {
- AbstractTaskEditorPage page = (AbstractTaskEditorPage) activePage;
- page.doAction(actionId);
- return;
- } else if (activePage != null) {
- WorkbenchActionCallback textSupport = (WorkbenchActionCallback) activePage.getAdapter(WorkbenchActionCallback.class);
- if (textSupport != null) {
- textSupport.doAction(actionId, control);
- return;
- }
- }
- super.doAction(actionId, control);
- }
-
- @Override
- public Control getFocusControl() {
- IFormPage page = getActivePage();
- return (page != null) ? EditorUtil.getFocusControl(page) : null;
- }
-
- @Override
- public ISelection getSelection() {
- return TaskEditorActionContributor.this.getSelection();
- }
-
- }
-
- private TaskEditor editor;
-
- private final OpenWithBrowserAction openWithBrowserAction = new OpenWithBrowserAction();
-
- private final CopyTaskDetailsAction copyTaskDetailsAction = new CopyTaskDetailsAction();
-
- private final SynchronizeEditorAction synchronizeEditorAction = new SynchronizeEditorAction();
-
- private final ShowInTaskListAction showInTaskListAction = new ShowInTaskListAction();
-
- private final NewTaskFromSelectionAction newTaskFromSelectionAction = new NewTaskFromSelectionAction();
-
- private final WorkbenchActionSupport actionSupport;
-
- public TaskEditorActionContributor() {
- actionSupport = new WorkbenchActionSupport();
- actionSupport.setCallback(new EditorPageCallback());
- }
-
- public void addClipboardActions(IMenuManager manager) {
- manager.add(actionSupport.getUndoAction());
- manager.add(actionSupport.getRedoAction());
- manager.add(new Separator());
- manager.add(actionSupport.getCutAction());
- manager.add(actionSupport.getCopyAction());
- manager.add(copyTaskDetailsAction);
- manager.add(actionSupport.getPasteAction());
- manager.add(actionSupport.getSelectAllAction());
- manager.add(newTaskFromSelectionAction);
- manager.add(new Separator());
- }
-
- public void contextMenuAboutToShow(IMenuManager mng) {
- IFormPage page = getActivePage();
- boolean addClipboard = (page instanceof TaskPlanningEditor || page instanceof AbstractTaskEditorPage);
- contextMenuAboutToShow(mng, addClipboard);
- }
-
- public void contextMenuAboutToShow(IMenuManager manager, boolean addClipboard) {
- if (editor != null) {
- updateSelectableActions(getSelection());
- }
- if (addClipboard) {
- addClipboardActions(manager);
- }
- if (editor.getTaskEditorInput() == null) {
- final MenuManager subMenuManager = new MenuManager(MessageFormat.format(
- Messages.TaskEditorActionContributor_Add_to_X, TaskListView.LABEL_VIEW));
- List<AbstractTaskCategory> categories = new ArrayList<AbstractTaskCategory>(TasksUiInternal.getTaskList()
- .getCategories());
- Collections.sort(categories);
- for (final AbstractTaskCategory category : categories) {
- if (!(category instanceof UnmatchedTaskContainer)) {//.equals(TasksUiPlugin.getTaskList().getArchiveContainer())) {
- Action action = new Action() {
- @Override
- public void run() {
- moveToCategory(category);
- }
- };
- String text = category.getSummary();
- action.setText(text);
- action.setImageDescriptor(TasksUiImages.CATEGORY);
- subMenuManager.add(action);
- }
- }
- copyTaskDetailsAction.selectionChanged(new StructuredSelection(getSelection()));
- manager.add(subMenuManager);
- } else {
- final ITask task = editor.getTaskEditorInput().getTask();
- if (task != null) {
- // TODO: refactor
- IStructuredSelection selection = new StructuredSelection(task);
- openWithBrowserAction.selectionChanged(selection);
- copyTaskDetailsAction.selectionChanged(selection);
- synchronizeEditorAction.selectionChanged(new StructuredSelection(this.getEditor()));
- showInTaskListAction.selectionChanged(selection);
-
- manager.add(new Separator());
- if (!(task instanceof LocalTask)) {
- manager.add(synchronizeEditorAction);
- }
- String taskUrl = task.getUrl();
- openWithBrowserAction.setEnabled(taskUrl != null && taskUrl.length() > 0);
- manager.add(openWithBrowserAction);
-
- if (task.isActive()) {
- manager.add(new TaskDeactivateAction() {
- @Override
- public void run() {
- super.run(task);
- }
- });
- } else {
- manager.add(new TaskActivateAction() {
- @Override
- public void run() {
-// TasksUiPlugin.getTaskListManager().getTaskActivationHistory().addTask(task);
- super.run(task);
- }
- });
- }
- manager.add(showInTaskListAction);
- manager.add(new Separator());
-
- for (String menuPath : TasksUiPlugin.getDefault().getDynamicMenuMap().keySet()) {
- for (IDynamicSubMenuContributor contributor : TasksUiPlugin.getDefault().getDynamicMenuMap().get(
- menuPath)) {
- if (TaskListView.ID_SEPARATOR_TASKS.equals(menuPath)) {
- List<IRepositoryElement> selectedElements = new ArrayList<IRepositoryElement>();
- selectedElements.add(task);
- MenuManager subMenuManager = contributor.getSubMenuManager(selectedElements);
- if (subMenuManager != null) {
- subMenuManager.setVisible(selectedElements.size() > 0
- && selectedElements.get(0) instanceof ITask);
- manager.add(subMenuManager);
- }
- }
- }
- }
- manager.add(new GroupMarker(TaskListView.ID_SEPARATOR_NAVIGATE));
- manager.add(new Separator());
- manager.add(new GroupMarker(TaskListView.ID_SEPARATOR_OPERATIONS));
- manager.add(new GroupMarker(TaskListView.ID_SEPARATOR_CONTEXT));
- manager.add(new Separator());
- }
- }
- manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- @Override
- public void contributeToCoolBar(ICoolBarManager cbm) {
- }
-
- @Override
- public void contributeToMenu(IMenuManager mm) {
- }
-
- @Override
- public void contributeToStatusLine(IStatusLineManager slm) {
- }
-
- @Override
- public void contributeToToolBar(IToolBarManager tbm) {
- }
-
- public void forceActionsEnabled() {
- actionSupport.forceEditActionsEnabled();
- }
-
- private IFormPage getActivePage() {
- return (editor != null) ? editor.getActivePageInstance() : null;
- }
-
- public TaskEditor getEditor() {
- return editor;
- }
-
- public ISelection getSelection() {
- if (editor != null && editor.getSite().getSelectionProvider() != null) {
- return editor.getSite().getSelectionProvider().getSelection();
- } else {
- return StructuredSelection.EMPTY;
- }
- }
-
- @Override
- public void init(IActionBars bars, IWorkbenchPage page) {
- super.init(bars, page);
- actionSupport.install(bars);
- }
-
- private void moveToCategory(AbstractTaskCategory category) {
- IEditorInput input = getEditor().getEditorInput();
- if (input instanceof TaskEditorInput) {
- TaskEditorInput repositoryTaskEditorInput = (TaskEditorInput) input;
- final IProgressService svc = PlatformUI.getWorkbench().getProgressService();
- final AddExistingTaskJob job = new AddExistingTaskJob(repositoryTaskEditorInput.getTaskRepository(),
- repositoryTaskEditorInput.getTask().getTaskId(), category);
- job.schedule();
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- svc.showInDialog(getEditor().getSite().getShell(), job);
- }
- });
- }
- }
-
- public void selectionChanged(SelectionChangedEvent event) {
- actionSupport.selectionChanged(event);
- newTaskFromSelectionAction.selectionChanged(event.getSelection());
- }
-
- @Override
- public void setActiveEditor(IEditorPart activeEditor) {
- if (activeEditor instanceof TaskEditor) {
- this.editor = (TaskEditor) activeEditor;
- updateSelectableActions(getSelection());
- } else {
- this.editor = null;
- }
- }
-
- @Override
- public void setActivePage(IEditorPart activePage) {
- updateSelectableActions(getSelection());
- }
-
- public void updateSelectableActions(ISelection selection) {
- if (editor != null) {
- actionSupport.updateActions(selection);
- newTaskFromSelectionAction.selectionChanged(selection);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionPart.java
deleted file mode 100644
index 5c6a5bcca..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionPart.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*******************************************************************************
- * 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
- * David Green - fix for bug 254806, bug 267135
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.ITaskList;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskContainerComparator;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskOperation;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.TextChangeListener;
-import org.eclipse.swt.custom.TextChangedEvent;
-import org.eclipse.swt.custom.TextChangingEvent;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorActionPart extends AbstractTaskEditorPart {
-
- private static final String KEY_OPERATION = "operation"; //$NON-NLS-1$
-
- public class SelectButtonListener implements ModifyListener, VerifyListener, SelectionListener, FocusListener,
- TextChangeListener {
-
- private final Button button;
-
- public SelectButtonListener(Button button) {
- this.button = button;
- }
-
- public void modifyText(ModifyEvent e) {
- selected();
- }
-
- public void verifyText(VerifyEvent e) {
- selected();
- }
-
- public void widgetSelected(SelectionEvent e) {
- selected();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- selected();
- }
-
- public void focusGained(FocusEvent event) {
- selected();
- }
-
- public void focusLost(FocusEvent e) {
- }
-
- public void textChanged(TextChangedEvent event) {
- selected();
- }
-
- public void textSet(TextChangedEvent event) {
- selected();
- }
-
- public void textChanging(TextChangingEvent event) {
- }
-
- private void selected() {
- setSelectedRadionButton(button, true);
- }
-
- }
-
- private static final int DEFAULT_FIELD_WIDTH = 150;
-
- private static final int RADIO_OPTION_WIDTH = 120;
-
- private static final String KEY_ASSOCIATED_EDITOR = "associatedEditor"; //$NON-NLS-1$
-
- private List<Button> operationButtons;
-
- private Button submitButton;
-
- private Button attachContextButton;
-
- private Button addToCategory;
-
- private CCombo categoryChooser;
-
- private AbstractTaskCategory category;
-
- private TaskAttribute selectedOperationAttribute;
-
- public TaskEditorActionPart() {
- setPartName(Messages.TaskEditorActionPart_Actions);
- }
-
- protected void addAttachContextButton(Composite buttonComposite, FormToolkit toolkit) {
- attachContextButton = toolkit.createButton(buttonComposite, Messages.TaskEditorActionPart_Attach_Context,
- SWT.CHECK);
- attachContextButton.setImage(CommonImages.getImage(TasksUiImages.CONTEXT_ATTACH));
- }
-
- /**
- * Adds buttons to this composite. Subclasses can override this method to provide different/additional buttons.
- *
- * @param buttonComposite
- * Composite to add the buttons to.
- * @param toolkit
- */
- private void createActionButtons(Composite buttonComposite, FormToolkit toolkit) {
- if (!getTaskEditorPage().needsFooter()) {
- submitButton = toolkit.createButton(buttonComposite, Messages.TaskEditorActionPart_Submit, SWT.NONE);
- GridData submitButtonData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- submitButtonData.widthHint = 100;
- submitButton.setImage(CommonImages.getImage(TasksUiImages.REPOSITORY_SUBMIT));
- submitButton.setLayoutData(submitButtonData);
- submitButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- getTaskEditorPage().doSubmit();
- }
- });
-
- setSubmitEnabled(true);
-
- toolkit.createLabel(buttonComposite, " "); //$NON-NLS-1$
- }
-
- if (!getTaskData().isNew()) {
- addAttachContextButton(buttonComposite, toolkit);
- }
- }
-
- /**
- * Creates the button layout. This displays options and buttons at the bottom of the editor to allow actions to be
- * performed on the bug.
- *
- * @param toolkit
- */
- private void createCategoryChooser(Composite buttonComposite, FormToolkit toolkit) {
- addToCategory = getManagedForm().getToolkit().createButton(buttonComposite,
- Messages.TaskEditorActionPart_Add_to_Category, SWT.CHECK);
- categoryChooser = new CCombo(buttonComposite, SWT.FLAT | SWT.READ_ONLY);
- categoryChooser.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- categoryChooser.setLayoutData(GridDataFactory.swtDefaults().hint(150, SWT.DEFAULT).create());
- toolkit.adapt(categoryChooser, false, false);
- categoryChooser.setFont(TEXT_FONT);
- ITaskList taskList = TasksUiInternal.getTaskList();
- final List<AbstractTaskCategory> categories = new ArrayList<AbstractTaskCategory>(taskList.getCategories());
- Collections.sort(categories, new TaskContainerComparator());
- AbstractTaskCategory selectedCategory = TasksUiInternal.getSelectedCategory(TaskListView.getFromActivePerspective());
- int i = 0;
- int selectedIndex = 0;
- for (IRepositoryElement category : categories) {
- categoryChooser.add(category.getSummary());
- if (category.equals(selectedCategory)) {
- selectedIndex = i;
- }
- i++;
- }
- categoryChooser.select(selectedIndex);
- categoryChooser.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- if (categoryChooser.getSelectionIndex() != -1) {
- category = categories.get(categoryChooser.getSelectionIndex());
- }
- }
- });
- categoryChooser.setEnabled(false);
-
- addToCategory.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- markDirty();
- if (!addToCategory.getSelection()) {
- category = null;
- } else if (categoryChooser.getSelectionIndex() != -1) {
- category = categories.get(categoryChooser.getSelectionIndex());
- }
- categoryChooser.setEnabled(addToCategory.getSelection());
- }
- });
-
- GridDataFactory.fillDefaults().hint(DEFAULT_FIELD_WIDTH, SWT.DEFAULT).span(3, SWT.DEFAULT).applyTo(
- categoryChooser);
- }
-
- public AbstractTaskCategory getCategory() {
- return category;
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Section section = createSection(parent, toolkit, true);
-
- Composite buttonComposite = toolkit.createComposite(section);
- GridLayout buttonLayout = new GridLayout();
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).applyTo(buttonComposite);
- buttonLayout.numColumns = 4;
- buttonComposite.setLayout(buttonLayout);
-
- if (getTaskEditorPage().needsAddToCategory()) {
- createCategoryChooser(buttonComposite, toolkit);
- }
-
- selectedOperationAttribute = getTaskData().getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- if (selectedOperationAttribute != null
- && TaskAttribute.TYPE_OPERATION.equals(selectedOperationAttribute.getMetaData().getType())) {
- TaskOperation selectedOperation = getTaskData().getAttributeMapper().getTaskOperation(
- selectedOperationAttribute);
- createRadioButtons(buttonComposite, toolkit, selectedOperation);
- }
-
- createActionButtons(buttonComposite, toolkit);
-
- toolkit.paintBordersFor(buttonComposite);
- section.setClient(buttonComposite);
- setSection(toolkit, section);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute, Button button) {
- AbstractAttributeEditor editor = createAttributeEditor(attribute);
- if (editor != null) {
- editor.createControl(composite, toolkit);
- GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- gd.horizontalSpan = 3;
- Control editorControl = editor.getControl();
- if (editorControl instanceof CCombo) {
- if (!Platform.OS_MACOSX.equals(Platform.getOS())) {
- // XXX on some platforms combo boxes are too tall by default and wider than other controls
- // bug 267135 only do this for non-mac platforms, since the default CCombo height on Carbon and Cocoa is perfect
- gd.heightHint = 20;
- }
- gd.widthHint = RADIO_OPTION_WIDTH;
- } else {
- gd.widthHint = RADIO_OPTION_WIDTH - 5;
- }
- editorControl.setLayoutData(gd);
-
- // the following listeners are hooked up so that changes to something in the actions area
- // will cause the corresponding radio button to become selected. Note that we can't just use
- // a focus listener due to bug 254806
- if (editorControl instanceof CCombo) {
- ((CCombo) editorControl).addSelectionListener(new SelectButtonListener(button));
- } else if (editorControl instanceof Text) {
- ((Text) editorControl).addModifyListener(new SelectButtonListener(button));
- ((Text) editorControl).addVerifyListener(new SelectButtonListener(button));
- } else if (editorControl instanceof StyledText) {
- ((StyledText) editorControl).getContent().addTextChangeListener(new SelectButtonListener(button));
- } else {
- // last resort
- editorControl.addFocusListener(new SelectButtonListener(button));
- }
-
- button.setData(KEY_ASSOCIATED_EDITOR, editor);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- }
- }
-
- private void createRadioButtons(Composite buttonComposite, FormToolkit toolkit, TaskOperation selectedOperation) {
- List<TaskOperation> operations = getTaskData().getAttributeMapper().getTaskOperations(
- selectedOperationAttribute);
- if (operations.size() > 0) {
- operationButtons = new ArrayList<Button>();
- Button selectedButton = null;
- for (TaskOperation operation : operations) {
- Button button = toolkit.createButton(buttonComposite, operation.getLabel(), SWT.RADIO);
- button.setFont(TEXT_FONT);
- button.setData(KEY_OPERATION, operation);
- GridData radioData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- TaskAttribute associatedAttribute = getTaskData().getAttributeMapper().getAssoctiatedAttribute(
- operation);
- if (associatedAttribute != null) {
- radioData.horizontalSpan = 1;
- addAttribute(buttonComposite, toolkit, associatedAttribute, button);
- } else {
- radioData.horizontalSpan = 4;
- }
- button.setLayoutData(radioData);
- button.addSelectionListener(new SelectButtonListener(button));
- operationButtons.add(button);
- if (operation.equals(selectedOperation)) {
- selectedButton = button;
- }
- }
- // do this last to ensure only a single button is selected
- if (selectedButton == null && !operationButtons.isEmpty()) {
- selectedButton = operationButtons.get(0);
- }
- setSelectedRadionButton(selectedButton, false);
- }
- }
-
- public boolean getAttachContext() {
- if (attachContextButton == null || attachContextButton.isDisposed()) {
- return false;
- } else {
- return attachContextButton.getSelection();
- }
- }
-
-// boolean needsAttachContext() {
-// return needsAttachContext;
-// }
-//
-// void setNeedsAttachContext(boolean attachContextEnabled) {
-// this.needsAttachContext = attachContextEnabled;
-// }
-
- public void setSubmitEnabled(boolean enabled) {
- if (submitButton != null && !submitButton.isDisposed()) {
- submitButton.setEnabled(enabled);
- if (enabled) {
- submitButton.setToolTipText(MessageFormat.format(Messages.TaskEditorActionPart_Submit_to_X,
- getTaskEditorPage().getTaskRepository().getRepositoryUrl()));
- }
- }
- }
-
- private void setSelectedRadionButton(Button selectedButton, boolean updateModel) {
- // avoid changes to the model if the button is already selected
- if (selectedButton.getSelection()) {
- return;
- }
-
- selectedButton.setSelection(true);
- for (Button button : operationButtons) {
- if (button != selectedButton) {
- button.setSelection(false);
- }
- }
-
- if (updateModel) {
- TaskOperation taskOperation = (TaskOperation) selectedButton.getData(KEY_OPERATION);
- getTaskData().getAttributeMapper().setTaskOperation(selectedOperationAttribute, taskOperation);
- getModel().attributeChanged(selectedOperationAttribute);
-
- AbstractAttributeEditor editor = (AbstractAttributeEditor) selectedButton.getData(KEY_ASSOCIATED_EDITOR);
- if (editor instanceof SingleSelectionAttributeEditor) {
- ((SingleSelectionAttributeEditor) editor).selectDefaultValue();
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttachmentPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttachmentPart.java
deleted file mode 100644
index f9bf86153..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttachmentPart.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Jeff Pound - attachment support
- * Frank Becker - improvements for bug 204051
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.TaskAttachment;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiMenus;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskAttachmentWizard.Mode;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.internal.WorkbenchImages;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class TaskEditorAttachmentPart extends AbstractTaskEditorPart {
-
- private static final String ID_POPUP_MENU = "org.eclipse.mylyn.tasks.ui.editor.menu.attachments"; //$NON-NLS-1$
-
- private final String[] attachmentsColumns = { Messages.TaskEditorAttachmentPart_Name,
- Messages.TaskEditorAttachmentPart_Description, /*"Type", */Messages.TaskEditorAttachmentPart_Size,
- Messages.TaskEditorAttachmentPart_Creator, Messages.TaskEditorAttachmentPart_Created };
-
- private final int[] attachmentsColumnWidths = { 130, 150, /*100,*/70, 100, 100 };
-
- private List<TaskAttribute> attachments;
-
- private boolean hasIncoming;
-
- private MenuManager menuManager;
-
- private Composite attachmentsComposite;
-
- public TaskEditorAttachmentPart() {
- setPartName(Messages.TaskEditorAttachmentPart_Attachments);
- }
-
- private void createAttachmentTable(FormToolkit toolkit, final Composite attachmentsComposite) {
- Table attachmentsTable = toolkit.createTable(attachmentsComposite, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
- attachmentsTable.setLinesVisible(true);
- attachmentsTable.setHeaderVisible(true);
- attachmentsTable.setLayout(new GridLayout());
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).hint(500, SWT.DEFAULT).applyTo(
- attachmentsTable);
-
- for (int i = 0; i < attachmentsColumns.length; i++) {
- TableColumn column = new TableColumn(attachmentsTable, SWT.LEFT, i);
- column.setText(attachmentsColumns[i]);
- column.setWidth(attachmentsColumnWidths[i]);
- }
- // size column
- attachmentsTable.getColumn(2).setAlignment(SWT.RIGHT);
-
- TableViewer attachmentsViewer = new TableViewer(attachmentsTable);
- attachmentsViewer.setUseHashlookup(true);
- attachmentsViewer.setColumnProperties(attachmentsColumns);
- ColumnViewerToolTipSupport.enableFor(attachmentsViewer, ToolTip.NO_RECREATE);
-
- attachmentsViewer.setSorter(new ViewerSorter() {
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- ITaskAttachment attachment1 = (ITaskAttachment) e1;
- ITaskAttachment attachment2 = (ITaskAttachment) e2;
- Date created1 = attachment1.getCreationDate();
- Date created2 = attachment2.getCreationDate();
- if (created1 != null && created2 != null) {
- return created1.compareTo(created2);
- } else if (created1 == null && created2 != null) {
- return -1;
- } else if (created1 != null && created2 == null) {
- return 1;
- } else {
- return 0;
- }
- }
- });
-
- List<ITaskAttachment> attachmentList = new ArrayList<ITaskAttachment>(attachments.size());
- for (TaskAttribute attribute : attachments) {
- TaskAttachment taskAttachment = new TaskAttachment(getModel().getTaskRepository(), getModel().getTask(),
- attribute);
- getTaskData().getAttributeMapper().updateTaskAttachment(taskAttachment, attribute);
- attachmentList.add(taskAttachment);
- }
- attachmentsViewer.setContentProvider(new ArrayContentProvider());
- attachmentsViewer.setLabelProvider(new AttachmentTableLabelProvider(getModel(),
- getTaskEditorPage().getAttributeEditorToolkit()));
- attachmentsViewer.addOpenListener(new IOpenListener() {
- public void open(OpenEvent event) {
- if (!event.getSelection().isEmpty()) {
- StructuredSelection selection = (StructuredSelection) event.getSelection();
- ITaskAttachment attachment = (ITaskAttachment) selection.getFirstElement();
- TasksUiUtil.openUrl(attachment.getUrl());
- }
- }
- });
- attachmentsViewer.addSelectionChangedListener(getTaskEditorPage());
- attachmentsViewer.setInput(attachmentList.toArray());
-
- menuManager = new MenuManager();
- menuManager.setRemoveAllWhenShown(true);
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- TasksUiMenus.fillTaskAttachmentMenu(manager);
- }
- });
- getTaskEditorPage().getEditorSite().registerContextMenu(ID_POPUP_MENU, menuManager, attachmentsViewer, false);
- Menu menu = menuManager.createContextMenu(attachmentsTable);
- attachmentsTable.setMenu(menu);
- }
-
- private void createButtons(Composite attachmentsComposite, FormToolkit toolkit) {
- final Composite attachmentControlsComposite = toolkit.createComposite(attachmentsComposite);
- attachmentControlsComposite.setLayout(new GridLayout(2, false));
- attachmentControlsComposite.setLayoutData(new GridData(GridData.BEGINNING));
-
- Button attachFileButton = toolkit.createButton(attachmentControlsComposite,
- Messages.TaskEditorAttachmentPart_Attach_, SWT.PUSH);
- attachFileButton.setImage(WorkbenchImages.getImage(ISharedImages.IMG_OBJ_FILE));
- attachFileButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- EditorUtil.openNewAttachmentWizard(getTaskEditorPage(), Mode.DEFAULT, null);
- }
- });
- getTaskEditorPage().registerDefaultDropListener(attachFileButton);
-
- Button attachScreenshotButton = toolkit.createButton(attachmentControlsComposite,
- Messages.TaskEditorAttachmentPart_Attach__Screenshot, SWT.PUSH);
- attachScreenshotButton.setImage(CommonImages.getImage(CommonImages.IMAGE_CAPTURE));
- attachScreenshotButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- EditorUtil.openNewAttachmentWizard(getTaskEditorPage(), Mode.SCREENSHOT, null);
- }
- });
- getTaskEditorPage().registerDefaultDropListener(attachScreenshotButton);
- }
-
- @Override
- public void createControl(Composite parent, final FormToolkit toolkit) {
- initialize();
-
- final Section section = createSection(parent, toolkit, hasIncoming);
- section.setText(getPartName() + " (" + attachments.size() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
- if (hasIncoming) {
- expandSection(toolkit, section);
- } else {
- section.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent event) {
- if (attachmentsComposite == null) {
- expandSection(toolkit, section);
- getTaskEditorPage().reflow();
- }
- }
- });
- }
- setSection(toolkit, section);
- }
-
- private void expandSection(FormToolkit toolkit, Section section) {
- attachmentsComposite = toolkit.createComposite(section);
- attachmentsComposite.setLayout(new GridLayout(1, false));
- attachmentsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- getTaskEditorPage().registerDefaultDropListener(section);
-
- if (attachments.size() > 0) {
- createAttachmentTable(toolkit, attachmentsComposite);
- } else {
- Label label = toolkit.createLabel(attachmentsComposite, Messages.TaskEditorAttachmentPart_No_attachments);
- getTaskEditorPage().registerDefaultDropListener(label);
- }
-
- createButtons(attachmentsComposite, toolkit);
-
- section.setClient(attachmentsComposite);
- }
-
- @Override
- public void dispose() {
- if (menuManager != null) {
- menuManager.dispose();
- }
- super.dispose();
- }
-
- private void initialize() {
- attachments = getTaskData().getAttributeMapper().getAttributesByType(getTaskData(),
- TaskAttribute.TYPE_ATTACHMENT);
- for (TaskAttribute attachmentAttribute : attachments) {
- if (getModel().hasIncomingChanges(attachmentAttribute)) {
- hasIncoming = true;
- break;
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java
deleted file mode 100644
index 1fadf4cb3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDiffUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.UpdateRepositoryConfigurationAction;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMetaData;
-import org.eclipse.mylyn.tasks.core.sync.TaskJob;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorAttributePart extends AbstractTaskEditorPart {
-
- private static final int LABEL_WIDTH = 100;
-
- private static final int COLUMN_WIDTH = 140;
-
- private static final int COLUMN_GAP = 5;
-
- private static final int MULTI_COLUMN_WIDTH = COLUMN_WIDTH + 5 + COLUMN_GAP + LABEL_WIDTH + 5 + COLUMN_WIDTH;
-
- private static final int MULTI_ROW_HEIGHT = 55;
-
- private List<AbstractAttributeEditor> attributeEditors;
-
- private boolean hasIncoming;
-
- private Composite attributesComposite;
-
- public TaskEditorAttributePart() {
- setPartName(Messages.TaskEditorAttributePart_Attributes);
- }
-
- private void createAttributeControls(Composite attributesComposite, FormToolkit toolkit, int columnCount) {
- int currentColumn = 1;
- int currentPriority = 0;
- for (AbstractAttributeEditor attributeEditor : attributeEditors) {
- int priority = (attributeEditor.getLayoutHint() != null) ? attributeEditor.getLayoutHint().getPriority()
- : LayoutHint.DEFAULT_PRIORITY;
- if (priority != currentPriority) {
- currentPriority = priority;
- if (currentColumn > 1) {
- while (currentColumn <= columnCount) {
- getManagedForm().getToolkit().createLabel(attributesComposite, ""); //$NON-NLS-1$
- currentColumn++;
- }
- currentColumn = 1;
- }
- }
-
- if (attributeEditor.hasLabel()) {
- attributeEditor.createLabelControl(attributesComposite, toolkit);
- Label label = attributeEditor.getLabelControl();
- String text = label.getText();
- String shortenText = TaskDiffUtil.shortenText(label, text, LABEL_WIDTH);
- label.setText(shortenText);
- if (!text.equals(shortenText)) {
- label.setToolTipText(text);
- }
- GridData gd = GridDataFactory.fillDefaults()
- .align(SWT.RIGHT, SWT.CENTER)
- .hint(LABEL_WIDTH, SWT.DEFAULT)
- .create();
- if (currentColumn > 1) {
- gd.horizontalIndent = COLUMN_GAP;
- gd.widthHint = LABEL_WIDTH + COLUMN_GAP;
- }
- label.setLayoutData(gd);
- currentColumn++;
- }
-
- attributeEditor.createControl(attributesComposite, toolkit);
- LayoutHint layoutHint = attributeEditor.getLayoutHint();
- GridData gd = new GridData(SWT.FILL, SWT.CENTER, false, false);
- if (layoutHint != null
- && !(layoutHint.rowSpan == RowSpan.SINGLE && layoutHint.columnSpan == ColumnSpan.SINGLE)) {
- if (layoutHint.rowSpan == RowSpan.MULTIPLE) {
- gd.heightHint = MULTI_ROW_HEIGHT;
- }
- if (layoutHint.columnSpan == ColumnSpan.SINGLE) {
- gd.widthHint = COLUMN_WIDTH;
- gd.horizontalSpan = 1;
- } else {
- gd.widthHint = MULTI_COLUMN_WIDTH;
- gd.horizontalSpan = columnCount - currentColumn + 1;
- }
- } else {
- gd.widthHint = COLUMN_WIDTH;
- gd.horizontalSpan = 1;
- }
- attributeEditor.getControl().setLayoutData(gd);
-
- getTaskEditorPage().getAttributeEditorToolkit().adapt(attributeEditor);
-
- currentColumn += gd.horizontalSpan;
- currentColumn %= columnCount;
- }
- }
-
- @Override
- public void createControl(Composite parent, final FormToolkit toolkit) {
- initialize();
-
- boolean expand = getTaskData().isNew() || hasIncoming;
- final Section section = createSection(parent, toolkit, expand);
- if (expand) {
- expandSection(toolkit, section);
- } else {
- section.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent event) {
- if (attributesComposite == null) {
- expandSection(toolkit, section);
- getTaskEditorPage().reflow();
- }
- }
- });
- }
- setSection(toolkit, section);
- }
-
- private void expandSection(FormToolkit toolkit, Section section) {
- attributesComposite = toolkit.createComposite(section);
- attributesComposite.addListener(SWT.MouseDown, new Listener() {
- public void handleEvent(Event event) {
- Control focus = event.display.getFocusControl();
- if (focus instanceof Text && ((Text) focus).getEditable() == false) {
- getManagedForm().getForm().setFocus();
- }
- }
- });
-
- GridLayout attributesLayout = new GridLayout();
- attributesLayout.numColumns = 4;
- attributesLayout.horizontalSpacing = 5;
- attributesLayout.verticalSpacing = 6;
- attributesComposite.setLayout(attributesLayout);
-
- GridData attributesData = new GridData(GridData.FILL_BOTH);
- attributesData.horizontalSpan = 1;
- attributesData.grabExcessVerticalSpace = false;
- attributesComposite.setLayoutData(attributesData);
-
- createAttributeControls(attributesComposite, toolkit, attributesLayout.numColumns);
- toolkit.paintBordersFor(attributesComposite);
-
- section.setClient(attributesComposite);
- }
-
- @Override
- protected void fillToolBar(ToolBarManager toolBar) {
- UpdateRepositoryConfigurationAction repositoryConfigRefresh = new UpdateRepositoryConfigurationAction() {
- @Override
- public void run() {
- getTaskEditorPage().showEditorBusy(true);
- final TaskJob job = TasksUiInternal.getJobFactory().createUpdateRepositoryConfigurationJob(
- getTaskEditorPage().getConnector(), getTaskEditorPage().getTaskRepository());
- job.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getTaskEditorPage().showEditorBusy(false);
- if (job.getStatus() != null) {
- getTaskEditorPage().getTaskEditor().setStatus(
- Messages.TaskEditorAttributePart_Updating_of_repository_configuration_failed, Messages.TaskEditorAttributePart_Update_Failed,
- job.getStatus());
- } else {
- getTaskEditorPage().refreshFormContent();
- }
- }
- });
- }
- });
- job.setUser(true);
- job.setPriority(Job.INTERACTIVE);
- job.schedule();
- };
-
-// @Override
-// public void performUpdate(TaskRepository repository, AbstractRepositoryConnector connector,
-// IProgressMonitor monitor) {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// getTaskEditorPage().showEditorBusy(true);
-// }
-// });
-// try {
-// super.performUpdate(repository, connector, monitor);
-// AbstractTask task = getTaskEditorPage().getTask();
-// Job job = TasksUi.synchronizeTask(connector, task, true, null);
-// job.join();
-// } catch (InterruptedException e) {
-// // ignore
-// } finally {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// getTaskEditorPage().refreshFormContent();
-// }
-// });
-// }
-// }
- };
- repositoryConfigRefresh.setImageDescriptor(TasksUiImages.REPOSITORY_SYNCHRONIZE_SMALL);
- repositoryConfigRefresh.selectionChanged(new StructuredSelection(getTaskEditorPage().getTaskRepository()));
- repositoryConfigRefresh.setToolTipText(Messages.TaskEditorAttributePart_Refresh_Attributes);
- toolBar.add(repositoryConfigRefresh);
- }
-
- private void initialize() {
- attributeEditors = new ArrayList<AbstractAttributeEditor>();
- hasIncoming = false;
-
- Map<String, TaskAttribute> attributes = getTaskData().getRoot().getAttributes();
- for (TaskAttribute attribute : attributes.values()) {
- TaskAttributeMetaData properties = attribute.getMetaData();
- if (!TaskAttribute.KIND_DEFAULT.equals(properties.getKind())) {
- continue;
- }
-
- AbstractAttributeEditor attributeEditor = createAttributeEditor(attribute);
- if (attributeEditor != null) {
- attributeEditors.add(attributeEditor);
- if (getModel().hasIncomingChanges(attribute)) {
- hasIncoming = true;
- }
- }
- }
-
- Collections.sort(attributeEditors, new Comparator<AbstractAttributeEditor>() {
- public int compare(AbstractAttributeEditor o1, AbstractAttributeEditor o2) {
- int p1 = (o1.getLayoutHint() != null) ? o1.getLayoutHint().getPriority() : LayoutHint.DEFAULT_PRIORITY;
- int p2 = (o2.getLayoutHint() != null) ? o2.getLayoutHint().getPriority() : LayoutHint.DEFAULT_PRIORITY;
- return p1 - p2;
- }
- });
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorCommentPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorCommentPart.java
deleted file mode 100644
index aac23a4a1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorCommentPart.java
+++ /dev/null
@@ -1,751 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Jingwen Ou - comment grouping
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.SelectionProviderAdapter;
-import org.eclipse.mylyn.internal.tasks.core.TaskComment;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CommentActionGroup;
-import org.eclipse.mylyn.internal.tasks.ui.editors.CommentGroupStrategy.CommentGroup;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Robert Elves
- * @author Steffen Pingel
- * @author Jingwen Ou
- */
-public class TaskEditorCommentPart extends AbstractTaskEditorPart {
-
- private static final String ID_POPUP_MENU = "org.eclipse.mylyn.tasks.ui.editor.menu.comments"; //$NON-NLS-1$
-
- private class CommentGroupViewer {
-
- private final CommentGroup commentGroup;
-
- private ArrayList<CommentViewer> commentViewers;
-
- private Section groupSection;
-
- private boolean renderedInSubSection;
-
- public CommentGroupViewer(CommentGroup commentGroup) {
- this.commentGroup = commentGroup;
- }
-
- private Composite createCommentViewers(Composite parent, FormToolkit toolkit) {
- Composite composite = toolkit.createComposite(parent);
- GridLayout contentLayout = new GridLayout();
- contentLayout.marginHeight = 0;
- contentLayout.marginWidth = 0;
- composite.setLayout(contentLayout);
-
- List<CommentViewer> viewers = getCommentViewers();
- for (CommentViewer commentViewer : viewers) {
- Control control = commentViewer.createControl(composite, toolkit);
- GridDataFactory.fillDefaults().grab(true, false).applyTo(control);
- }
- return composite;
- }
-
- private Control createControl(final Composite parent, final FormToolkit toolkit) {
- if (renderedInSubSection) {
- return createSection(parent, toolkit);
- } else {
- return createCommentViewers(parent, toolkit);
- }
- }
-
- private Section createSection(final Composite parent, final FormToolkit toolkit) {
- int style = ExpandableComposite.TWISTIE | ExpandableComposite.SHORT_TITLE_BAR;
-// if (/*commentGroup.hasIncoming() || */expandAllInProgress) {
-// style |= ExpandableComposite.EXPANDED;
-// }
-
- groupSection = toolkit.createSection(parent, style);
- groupSection.clientVerticalSpacing = 0;
- if (commentGroup.hasIncoming()) {
- groupSection.setBackground(getTaskEditorPage().getAttributeEditorToolkit().getColorIncoming());
- }
- groupSection.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- groupSection.setText(commentGroup.getGroupName() + Messages.TaskEditorCommentPart_0
- + commentGroup.getCommentAttributes().size() + Messages.TaskEditorCommentPart_1);
-
- if (groupSection.isExpanded()) {
- Composite composite = createCommentViewers(groupSection, toolkit);
- groupSection.setClient(composite);
- } else {
- groupSection.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent e) {
- if (commentGroup.hasIncoming()) {
- if (e.getState()) {
- groupSection.setBackground(null);
- } else {
- // only decorate background with incoming color when collapsed, otherwise
- // there is too much decoration in the editor
- groupSection.setBackground(getTaskEditorPage().getAttributeEditorToolkit()
- .getColorIncoming());
- }
- }
- if (groupSection.getClient() == null) {
- try {
- getTaskEditorPage().setReflow(false);
- Composite composite = createCommentViewers(groupSection, toolkit);
- groupSection.setClient(composite);
- } finally {
- getTaskEditorPage().setReflow(true);
- }
- getTaskEditorPage().reflow();
- }
- }
- });
- }
-
- return groupSection;
- }
-
- public List<CommentViewer> getCommentViewers() {
- if (commentViewers != null) {
- return commentViewers;
- }
-
- commentViewers = new ArrayList<CommentViewer>(commentGroup.getCommentAttributes().size());
- for (final TaskAttribute commentAttribute : commentGroup.getCommentAttributes()) {
- CommentViewer commentViewer = new CommentViewer(commentAttribute);
- commentViewers.add(commentViewer);
- }
- return commentViewers;
- }
-
- public boolean isExpanded() {
- if (groupSection != null) {
- return groupSection.isExpanded();
- }
-
- if (commentViewers != null) {
- for (CommentViewer commentViewer : commentViewers) {
- if (commentViewer.isExpanded()) {
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Returns true if this group and all comments in it are expanded.
- */
- public boolean isFullyExpanded() {
- if (groupSection != null && !groupSection.isExpanded()) {
- return false;
- }
- if (commentViewers != null) {
- for (CommentViewer commentViewer : commentViewers) {
- if (!commentViewer.isExpanded()) {
- return false;
- }
- }
- return true;
- }
- return false;
- }
-
- public boolean isRenderedInSubSection() {
- return renderedInSubSection;
- }
-
- /**
- * Expands this group and all comments in it.
- */
- public void setExpanded(boolean expanded) {
- if (groupSection != null && groupSection.isExpanded() != expanded) {
- CommonFormUtil.setExpanded(groupSection, expanded);
- }
-
- if (commentViewers != null) {
- for (CommentViewer commentViewer : commentViewers) {
- commentViewer.setExpanded(expanded);
- }
- }
- }
-
- public void setRenderedInSubSection(boolean renderedInSubSection) {
- this.renderedInSubSection = renderedInSubSection;
- }
-
- // private void createToolBar(final FormToolkit toolkit) {
-// if (section == null) {
-// return;
-// }
-//
-// ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
-//
-// Action collapseAllAction = new Action("") {
-// @Override
-// public void run() {
-// toggleSection(section, false);
-// }
-// };
-// collapseAllAction.setImageDescriptor(CommonImages.COLLAPSE_ALL_SMALL);
-// collapseAllAction.setToolTipText("Collapse All Current Comments");
-// toolBarManager.add(collapseAllAction);
-//
-// Action expandAllAction = new Action("") {
-// @Override
-// public void run() {
-// toggleSection(section, true);
-// }
-// };
-// expandAllAction.setImageDescriptor(CommonImages.EXPAND_ALL_SMALL);
-// expandAllAction.setToolTipText("Expand All Current Comments");
-// toolBarManager.add(expandAllAction);
-//
-// Composite toolbarComposite = toolkit.createComposite(section);
-// toolbarComposite.setBackground(null);
-// RowLayout rowLayout = new RowLayout();
-// rowLayout.marginTop = 0;
-// rowLayout.marginBottom = 0;
-// rowLayout.marginLeft = 0;
-// rowLayout.marginRight = 0;
-// toolbarComposite.setLayout(rowLayout);
-//
-// toolBarManager.createControl(toolbarComposite);
-// section.setTextClient(toolbarComposite);
-// }
-
- }
-
- private class CommentViewer {
-
- private Composite buttonComposite;
-
- private final TaskAttribute commentAttribute;
-
- private ExpandableComposite commentComposite;
-
- private final TaskComment taskComment;
-
- private AbstractAttributeEditor editor;
-
- public CommentViewer(TaskAttribute commentAttribute) {
- this.commentAttribute = commentAttribute;
- this.taskComment = new TaskComment(getModel().getTaskRepository(), getModel().getTask(), commentAttribute);
- }
-
- public Control createControl(Composite composite, final FormToolkit toolkit) {
- boolean hasIncomingChanges = getModel().hasIncomingChanges(commentAttribute);
- getTaskData().getAttributeMapper().updateTaskComment(taskComment, commentAttribute);
- int style = ExpandableComposite.TREE_NODE | ExpandableComposite.LEFT_TEXT_CLIENT_ALIGNMENT
- | ExpandableComposite.COMPACT;
- if (hasIncomingChanges || expandAllInProgress) {
- style |= ExpandableComposite.EXPANDED;
- }
- commentComposite = toolkit.createExpandableComposite(composite, style);
- commentComposite.clientVerticalSpacing = 0;
- commentComposite.setLayout(new GridLayout());
- commentComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- commentComposite.setTitleBarForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- buttonComposite = createTitle(commentComposite, toolkit);
-
- final Composite commentTextComposite = toolkit.createComposite(commentComposite);
- commentComposite.setClient(commentTextComposite);
- commentTextComposite.setLayout(new FillWidthLayout(EditorUtil.getLayoutAdvisor(getTaskEditorPage()), 15, 0,
- 0, 3));
- commentComposite.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent event) {
- expandComment(toolkit, commentTextComposite, event.getState());
- }
- });
- if (hasIncomingChanges) {
- commentComposite.setBackground(getTaskEditorPage().getAttributeEditorToolkit().getColorIncoming());
- }
- if (commentComposite.isExpanded()) {
- expandComment(toolkit, commentTextComposite, true);
- }
-
- // for outline
- EditorUtil.setMarker(commentComposite, commentAttribute.getId());
- return commentComposite;
- }
-
- private Composite createTitle(final ExpandableComposite commentComposite, final FormToolkit toolkit) {
- // always visible
- Composite titleComposite = toolkit.createComposite(commentComposite);
- commentComposite.setTextClient(titleComposite);
- RowLayout rowLayout = new RowLayout();
- rowLayout.pack = true;
- rowLayout.marginLeft = 0;
- rowLayout.marginBottom = 0;
- rowLayout.marginTop = 0;
- EditorUtil.center(rowLayout);
- titleComposite.setLayout(rowLayout);
- titleComposite.setBackground(null);
-
- ImageHyperlink expandCommentHyperlink = createTitleHyperLink(toolkit, titleComposite, taskComment);
- expandCommentHyperlink.setFont(commentComposite.getFont());
- expandCommentHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- CommonFormUtil.setExpanded(commentComposite, !commentComposite.isExpanded());
- }
- });
-
- // only visible when section is expanded
- final Composite buttonComposite = toolkit.createComposite(titleComposite);
- RowLayout buttonCompLayout = new RowLayout();
- buttonCompLayout.marginBottom = 0;
- buttonCompLayout.marginTop = 0;
- buttonComposite.setLayout(buttonCompLayout);
- buttonComposite.setBackground(null);
- buttonComposite.setVisible(commentComposite.isExpanded());
-
- ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
- ReplyToCommentAction replyAction = new ReplyToCommentAction(this, taskComment);
- replyAction.setImageDescriptor(TasksUiImages.COMMENT_REPLY_SMALL);
- toolBarManager.add(replyAction);
- toolBarManager.createControl(buttonComposite);
-
- return buttonComposite;
- }
-
- private ImageHyperlink createTitleHyperLink(final FormToolkit toolkit, final Composite toolbarComp,
- final ITaskComment taskComment) {
- ImageHyperlink formHyperlink = toolkit.createImageHyperlink(toolbarComp, SWT.NONE);
- formHyperlink.setBackground(null);
- formHyperlink.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- IRepositoryPerson author = taskComment.getAuthor();
- if (author != null
- && author.getPersonId().equalsIgnoreCase(getTaskEditorPage().getTaskRepository().getUserName())) {
- formHyperlink.setImage(CommonImages.getImage(CommonImages.PERSON_ME_NARROW));
- } else {
- formHyperlink.setImage(CommonImages.getImage(CommonImages.PERSON_NARROW));
- }
- StringBuilder sb = new StringBuilder();
- if (taskComment.getNumber() >= 0) {
- sb.append(taskComment.getNumber());
- sb.append(": "); //$NON-NLS-1$
- }
- if (author != null) {
- if (author.getName() != null) {
- sb.append(author.getName());
- formHyperlink.setToolTipText(author.getPersonId());
- } else {
- sb.append(author.getPersonId());
- }
- }
- if (taskComment.getCreationDate() != null) {
- sb.append(", "); //$NON-NLS-1$
- sb.append(EditorUtil.formatDateTime(taskComment.getCreationDate()));
- }
- formHyperlink.setText(sb.toString());
- formHyperlink.setEnabled(true);
- formHyperlink.setUnderlined(false);
- return formHyperlink;
- }
-
- private void expandComment(FormToolkit toolkit, Composite composite, boolean expanded) {
- buttonComposite.setVisible(expanded);
- if (expanded && composite.getData(KEY_EDITOR) == null) {
- // create viewer
- TaskAttribute textAttribute = getTaskData().getAttributeMapper().getAssoctiatedAttribute(
- taskComment.getTaskAttribute());
- editor = createAttributeEditor(textAttribute);
- if (editor != null) {
- editor.setDecorationEnabled(false);
- editor.createControl(composite, toolkit);
- editor.getControl().addMouseListener(new MouseAdapter() {
- @Override
- public void mouseDown(MouseEvent e) {
- getTaskEditorPage().selectionChanged(taskComment);
- }
- });
- composite.setData(KEY_EDITOR, editor);
-
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- getTaskEditorPage().reflow();
- }
- } else if (!expanded && composite.getData(KEY_EDITOR) != null) {
- // dispose viewer
- AbstractAttributeEditor editor = (AbstractAttributeEditor) composite.getData(KEY_EDITOR);
- editor.getControl().setMenu(null);
- editor.getControl().dispose();
- composite.setData(KEY_EDITOR, null);
- getTaskEditorPage().reflow();
- }
- getTaskEditorPage().selectionChanged(taskComment);
- }
-
- public boolean isExpanded() {
- return commentComposite != null && commentComposite.isExpanded();
- }
-
- public void setExpanded(boolean expanded) {
- if (commentComposite != null && commentComposite.isExpanded() != expanded) {
- CommonFormUtil.setExpanded(commentComposite, expanded);
- }
- }
-
- /**
- * Returns the comment viewer.
- *
- * @return null, if the viewer has not been constructed
- */
- public AbstractAttributeEditor getEditor() {
- return editor;
- }
-
- }
-
- private class ReplyToCommentAction extends AbstractReplyToCommentAction implements IMenuCreator {
-
- private final ITaskComment taskComment;
-
- private final CommentViewer commentViewer;
-
- public ReplyToCommentAction(CommentViewer commentViewer, ITaskComment taskComment) {
- super(TaskEditorCommentPart.this.getTaskEditorPage(), taskComment);
- this.commentViewer = commentViewer;
- this.taskComment = taskComment;
- setMenuCreator(this);
- }
-
- @Override
- protected String getReplyText() {
- return taskComment.getText();
- }
-
- public Menu getMenu(Control parent) {
- currentViewer = commentViewer;
- selectionProvider.setSelection(new StructuredSelection(taskComment));
- return commentMenu;
- }
-
- public void dispose() {
- }
-
- public Menu getMenu(Menu parent) {
- selectionProvider.setSelection(new StructuredSelection(taskComment));
- return commentMenu;
- }
-
- }
-
- /** Expandable composites are indented by 6 pixels by default. */
- private static final int INDENT = -6;
-
- private static final String KEY_EDITOR = "viewer"; //$NON-NLS-1$
-
- private List<TaskAttribute> commentAttributes;
-
- private CommentGroupStrategy commentGroupStrategy;
-
- private List<CommentGroupViewer> commentGroupViewers;
-
- private boolean expandAllInProgress;
-
- private boolean hasIncoming;
-
- protected Section section;
-
- private SelectionProviderAdapter selectionProvider;
-
- // XXX: stores a reference to the viewer for which the commentMenu was displayed last
- private CommentViewer currentViewer;
-
- private Menu commentMenu;
-
- private CommentActionGroup actionGroup;
-
- public TaskEditorCommentPart() {
- this.commentGroupStrategy = new CommentGroupStrategy() {
- @Override
- protected boolean hasIncomingChanges(ITaskComment taskComment) {
- return getModel().hasIncomingChanges(taskComment.getTaskAttribute());
- }
- };
- setPartName(Messages.TaskEditorCommentPart_Comments);
- }
-
- private void collapseAllComments() {
- try {
- getTaskEditorPage().setReflow(false);
-
- boolean collapsed = false;
- List<CommentGroupViewer> viewers = getCommentGroupViewers();
- for (int i = 0; i < viewers.size(); i++) {
- if (viewers.get(i).isExpanded()) {
- viewers.get(i).setExpanded(false);
- collapsed = viewers.get(i).isRenderedInSubSection();
- break;
- }
- }
-
- if (!collapsed && section != null) {
- CommonFormUtil.setExpanded(section, false);
- }
- } finally {
- getTaskEditorPage().setReflow(true);
- }
- getTaskEditorPage().reflow();
- }
-
- private TaskComment convertToTaskComment(TaskDataModel taskDataModel, TaskAttribute commentAttribute) {
- TaskComment taskComment = new TaskComment(taskDataModel.getTaskRepository(), taskDataModel.getTask(),
- commentAttribute);
- taskDataModel.getTaskData().getAttributeMapper().updateTaskComment(taskComment, commentAttribute);
- return taskComment;
- }
-
- @Override
- public void createControl(Composite parent, final FormToolkit toolkit) {
- initialize();
-
- selectionProvider = new SelectionProviderAdapter();
- actionGroup = new CommentActionGroup();
-
- MenuManager menuManager = new MenuManager();
- menuManager.setRemoveAllWhenShown(true);
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- // get comment and add reply action as first item in the menu
- ISelection selection = selectionProvider.getSelection();
- if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- Object element = ((IStructuredSelection) selection).getFirstElement();
- if (element instanceof ITaskComment) {
- final ITaskComment comment = (ITaskComment) element;
- AbstractReplyToCommentAction replyAction = new AbstractReplyToCommentAction(
- getTaskEditorPage(), comment) {
- @Override
- protected String getReplyText() {
- return comment.getText();
- }
- };
- manager.add(replyAction);
- }
- }
- actionGroup.fillContextMenu(manager);
- actionGroup.setContext(new ActionContext(selectionProvider.getSelection()));
-
- if (currentViewer != null && currentViewer.getEditor() instanceof RichTextAttributeEditor) {
- RichTextAttributeEditor editor = (RichTextAttributeEditor) currentViewer.getEditor();
- if (editor.getViewSourceAction().isEnabled()) {
- manager.add(new Separator("planning")); //$NON-NLS-1$
- manager.add(editor.getViewSourceAction());
- }
- }
- }
- });
- getTaskEditorPage().getEditorSite().registerContextMenu(ID_POPUP_MENU, menuManager, selectionProvider, false);
- commentMenu = menuManager.createContextMenu(parent);
-
- section = createSection(parent, toolkit, hasIncoming);
- section.setText(section.getText() + " (" + commentAttributes.size() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-
- if (commentAttributes.isEmpty()) {
- section.setEnabled(false);
- } else {
- if (hasIncoming) {
- expandSection(toolkit, section);
- } else {
- section.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent event) {
- if (section.getClient() == null) {
- try {
- getTaskEditorPage().setReflow(false);
- expandSection(toolkit, section);
- } finally {
- getTaskEditorPage().setReflow(true);
- }
- getTaskEditorPage().reflow();
- }
- }
- });
- }
- }
- setSection(toolkit, section);
- }
-
- @Override
- public void dispose() {
- super.dispose();
- if (actionGroup != null) {
- actionGroup.dispose();
- }
- }
-
- private void expandAllComments() {
- try {
- expandAllInProgress = true;
- getTaskEditorPage().setReflow(false);
-
- if (section != null) {
- // the expandAllInProgress flag will ensure that comments in top-level groups have been
- // expanded, no need to expand groups explicitly
- boolean expandGroups = section.getClient() != null;
-
- CommonFormUtil.setExpanded(section, true);
-
- if (expandGroups) {
- List<CommentGroupViewer> viewers = getCommentGroupViewers();
- for (int i = viewers.size() - 1; i >= 0; i--) {
- if (!viewers.get(i).isFullyExpanded()) {
- viewers.get(i).setExpanded(true);
- break;
- }
- }
- }
- }
- } finally {
- expandAllInProgress = false;
- getTaskEditorPage().setReflow(true);
- }
- getTaskEditorPage().reflow();
- }
-
- private void expandSection(final FormToolkit toolkit, final Section section) {
- Composite composite = toolkit.createComposite(section);
- section.setClient(composite);
-
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- composite.setLayout(layout);
-
- List<CommentGroupViewer> viewers = getCommentGroupViewers();
- for (CommentGroupViewer viewer : viewers) {
- Control control = viewer.createControl(composite, toolkit);
- if (viewer.isRenderedInSubSection()) {
- // align twistie of sub-section with section
- GridDataFactory.fillDefaults().grab(true, false).indent(2 * INDENT, 0).applyTo(control);
- } else {
- GridDataFactory.fillDefaults().grab(true, false).indent(INDENT, 0).applyTo(control);
- }
- }
- }
-
- @Override
- protected void fillToolBar(ToolBarManager barManager) {
- if (commentAttributes.isEmpty()) {
- return;
- }
-
- Action collapseAllAction = new Action("") { //$NON-NLS-1$
- @Override
- public void run() {
- collapseAllComments();
- }
- };
- collapseAllAction.setImageDescriptor(CommonImages.COLLAPSE_ALL_SMALL);
- collapseAllAction.setToolTipText(Messages.TaskEditorCommentPart_Collapse_Comments);
- barManager.add(collapseAllAction);
-
- Action expandAllAction = new Action("") { //$NON-NLS-1$
- @Override
- public void run() {
- expandAllComments();
- }
- };
- expandAllAction.setImageDescriptor(CommonImages.EXPAND_ALL_SMALL);
- expandAllAction.setToolTipText(Messages.TaskEditorCommentPart_Expand_Comments);
- barManager.add(expandAllAction);
- }
-
- public CommentGroupStrategy getCommentGroupStrategy() {
- return commentGroupStrategy;
- }
-
- public void setCommentGroupStrategy(CommentGroupStrategy commentGroupStrategy) {
- this.commentGroupStrategy = commentGroupStrategy;
- }
-
- private List<CommentGroupViewer> getCommentGroupViewers() {
- if (commentGroupViewers != null) {
- return commentGroupViewers;
- }
-
- // group comments
- List<ITaskComment> comments = new ArrayList<ITaskComment>();
- for (TaskAttribute commentAttribute : this.commentAttributes) {
- comments.add(convertToTaskComment(getModel(), commentAttribute));
- }
- String currentPersonId = getModel().getTaskRepository().getUserName();
- List<CommentGroup> commentGroups = getCommentGroupStrategy().groupComments(comments, currentPersonId);
-
- commentGroupViewers = new ArrayList<CommentGroupViewer>(commentGroups.size());
- if (commentGroups.size() > 0) {
- for (int i = 0; i < commentGroups.size(); i++) {
- CommentGroupViewer viewer = new CommentGroupViewer(commentGroups.get(i));
- boolean isLastGroup = i == commentGroups.size() - 1;
- viewer.setRenderedInSubSection(!isLastGroup);
- commentGroupViewers.add(viewer);
- }
- }
- return commentGroupViewers;
- }
-
- private void initialize() {
- commentAttributes = getTaskData().getAttributeMapper().getAttributesByType(getTaskData(),
- TaskAttribute.TYPE_COMMENT);
- if (commentAttributes.size() > 0) {
- for (TaskAttribute commentAttribute : commentAttributes) {
- if (getModel().hasIncomingChanges(commentAttribute)) {
- hasIncoming = true;
- break;
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorDescriptionPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorDescriptionPart.java
deleted file mode 100644
index e7cd85ca6..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorDescriptionPart.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchHitCollector;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractDuplicateDetector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorDescriptionPart extends TaskEditorRichTextPart {
-
- public TaskEditorDescriptionPart() {
- setPartName(Messages.TaskEditorDescriptionPart_Description);
- }
-
- private void addDuplicateDetection(Composite composite, FormToolkit toolkit) {
- List<AbstractDuplicateDetector> allCollectors = new ArrayList<AbstractDuplicateDetector>();
- if (getDuplicateSearchCollectorsList() != null) {
- allCollectors.addAll(getDuplicateSearchCollectorsList());
- }
- if (!allCollectors.isEmpty()) {
- int style = ExpandableComposite.TWISTIE | ExpandableComposite.SHORT_TITLE_BAR;
- if (getTaskData().isNew()) {
- style |= ExpandableComposite.EXPANDED;
- }
- Section duplicatesSection = toolkit.createSection(composite, style);
- duplicatesSection.setText(Messages.TaskEditorDescriptionPart_Duplicate_Detection);
- duplicatesSection.setLayout(new GridLayout());
- GridDataFactory.fillDefaults().indent(SWT.DEFAULT, 15).applyTo(duplicatesSection);
- Composite relatedBugsComposite = toolkit.createComposite(duplicatesSection);
- relatedBugsComposite.setLayout(new GridLayout(4, false));
- relatedBugsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
- duplicatesSection.setClient(relatedBugsComposite);
- Label duplicateDetectorLabel = new Label(relatedBugsComposite, SWT.LEFT);
- duplicateDetectorLabel.setText(Messages.TaskEditorDescriptionPart_Detector);
-
- final CCombo duplicateDetectorChooser = new CCombo(relatedBugsComposite, SWT.FLAT | SWT.READ_ONLY);
- toolkit.adapt(duplicateDetectorChooser, false, false);
- duplicateDetectorChooser.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- duplicateDetectorChooser.setFont(TEXT_FONT);
- duplicateDetectorChooser.setLayoutData(GridDataFactory.swtDefaults().hint(150, SWT.DEFAULT).create());
-
- Collections.sort(allCollectors, new Comparator<AbstractDuplicateDetector>() {
-
- public int compare(AbstractDuplicateDetector c1, AbstractDuplicateDetector c2) {
- return c1.getName().compareToIgnoreCase(c2.getName());
- }
-
- });
-
- for (AbstractDuplicateDetector detector : allCollectors) {
- duplicateDetectorChooser.add(detector.getName());
- }
-
- duplicateDetectorChooser.select(0);
- duplicateDetectorChooser.setEnabled(true);
- duplicateDetectorChooser.setData(allCollectors);
-
- if (allCollectors.size() > 0) {
- Button searchForDuplicates = toolkit.createButton(relatedBugsComposite,
- Messages.TaskEditorDescriptionPart_Search, SWT.NONE);
- GridData searchDuplicatesButtonData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- searchForDuplicates.setLayoutData(searchDuplicatesButtonData);
- searchForDuplicates.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- String selectedDetector = duplicateDetectorChooser.getItem(duplicateDetectorChooser.getSelectionIndex());
- searchForDuplicates(selectedDetector);
- }
- });
- }
-
- toolkit.paintBordersFor(relatedBugsComposite);
- }
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- if (getAttribute() == null) {
- return;
- }
-
- super.createControl(parent, toolkit);
- addDuplicateDetection(getComposite(), toolkit);
- }
-
- @Override
- protected void fillToolBar(ToolBarManager toolBar) {
- if (!getTaskData().isNew()) {
- AbstractReplyToCommentAction replyAction = new AbstractReplyToCommentAction(getTaskEditorPage(), null) {
- @Override
- protected String getReplyText() {
- return getEditor().getValue();
- }
- };
- replyAction.setImageDescriptor(TasksUiImages.COMMENT_REPLY_SMALL);
- toolBar.add(replyAction);
- }
- super.fillToolBar(toolBar);
- }
-
- protected IRepositoryQuery getDuplicateQuery(String name) throws CoreException {
- String duplicateDetectorName = name.equals("default") ? "Stack Trace" : name; //$NON-NLS-1$ //$NON-NLS-2$
- for (AbstractDuplicateDetector detector : getDuplicateSearchCollectorsList()) {
- if (detector.getName().equals(duplicateDetectorName)) {
- return detector.getDuplicatesQuery(getTaskEditorPage().getTaskRepository(), getTaskData());
- }
- }
- return null;
- }
-
- protected Set<AbstractDuplicateDetector> getDuplicateSearchCollectorsList() {
- Set<AbstractDuplicateDetector> duplicateDetectors = new HashSet<AbstractDuplicateDetector>();
- for (AbstractDuplicateDetector detector : TasksUiPlugin.getDefault().getDuplicateSearchCollectorsList()) {
- if (isValidDuplicateDetector(detector)) {
- duplicateDetectors.add(detector);
- }
- }
- return duplicateDetectors;
- }
-
- @Override
- public void initialize(AbstractTaskEditorPage taskEditorPage) {
- super.initialize(taskEditorPage);
- setAttribute(getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION));
- }
-
- private boolean isValidDuplicateDetector(AbstractDuplicateDetector detector) {
- return (detector.getConnectorKind() == null || detector.getConnectorKind().equals(
- getTaskEditorPage().getConnectorKind())) //
- && detector.canQuery(getTaskData());
- }
-
- public void searchForDuplicates(String duplicateDetectorName) {
- try {
- IRepositoryQuery duplicatesQuery = getDuplicateQuery(duplicateDetectorName);
- if (duplicatesQuery != null) {
- SearchHitCollector collector = new SearchHitCollector(TasksUiInternal.getTaskList(),
- getTaskEditorPage().getTaskRepository(), duplicatesQuery);
- NewSearchUI.runQueryInBackground(collector);
- } else {
- TasksUiInternal.displayStatus(Messages.TaskEditorDescriptionPart_Duplicate_Detection_Failed,
- new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.TaskEditorDescriptionPart_The_duplicate_detector_did_not_return_a_valid_query));
- }
- } catch (CoreException e) {
- TasksUiInternal.displayStatus(Messages.TaskEditorDescriptionPart_Duplicate_Detection_Failed, e.getStatus());
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionReader.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionReader.java
deleted file mode 100644
index 3c1ff3004..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionReader.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorExtension;
-
-/**
- * @author David Green
- */
-public class TaskEditorExtensionReader {
-
- private static final String CONNECTOR_KIND = "connectorKind"; //$NON-NLS-1$
-
- public static final String ATTR_ID = "id"; //$NON-NLS-1$
-
- public static final String ATTR_NAME = "name"; //$NON-NLS-1$
-
- public static final String EXTENSION_TASK_EDITOR_EXTENSIONS = "org.eclipse.mylyn.tasks.ui.taskEditorExtensions"; //$NON-NLS-1$
-
- private static final String REPOSITORY_ASSOCIATION = "repositoryAssociation"; //$NON-NLS-1$
-
- private static final String TASK_EDITOR_EXTENSION = "taskEditorExtension"; //$NON-NLS-1$
-
- public static void initExtensions() {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
-
- IExtensionPoint editorExtensionPoint = registry.getExtensionPoint(EXTENSION_TASK_EDITOR_EXTENSIONS);
- IExtension[] editorExtensions = editorExtensionPoint.getExtensions();
- for (IExtension extension : editorExtensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(TASK_EDITOR_EXTENSION)) {
- readEditorExtension(element);
- } else if (element.getName().equals(REPOSITORY_ASSOCIATION)) {
- readEditorExtensionAssociation(element);
- }
- }
- }
- }
-
- private static void readEditorExtension(IConfigurationElement element) {
- try {
- String id = element.getAttribute(ATTR_ID);
- String name = element.getAttribute(ATTR_NAME);
- AbstractTaskEditorExtension extension = (AbstractTaskEditorExtension) element.createExecutableExtension("class"); //$NON-NLS-1$
- TaskEditorExtensions.addTaskEditorExtension(element.getNamespaceIdentifier(), id, name, extension);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load taskEditorExtension", //$NON-NLS-1$
- e));
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load taskEditorExtension", //$NON-NLS-1$
- e));
- }
- }
-
- private static void readEditorExtensionAssociation(IConfigurationElement element) {
- try {
- String repository = element.getAttribute(CONNECTOR_KIND);
- String taskEditorExtension = element.getAttribute(TASK_EDITOR_EXTENSION);
- TaskEditorExtensions.addRepositoryAssociation(repository, taskEditorExtension);
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load repositoryAssociation", e)); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionSettingsContribution.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionSettingsContribution.java
deleted file mode 100644
index 3bbe284e8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensionSettingsContribution.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.SortedSet;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensions.RegisteredTaskEditorExtension;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractTaskRepositoryPageContribution;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A contribution that adds a section for 'Editor' on the task repository settings page.
- *
- * @author David Green
- */
-public class TaskEditorExtensionSettingsContribution extends AbstractTaskRepositoryPageContribution {
-
- private static final String LABEL_NONE = Messages.TaskEditorExtensionSettingsContribution_Plain_Text;
-
- private static final String LABEL_DEFAULT_SUFFIX = Messages.TaskEditorExtensionSettingsContribution__default_;
-
- private static final String DATA_EDITOR_EXTENSION = "editorExtension"; //$NON-NLS-1$
-
- private final SelectionListener listener = new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- selectedExtensionId = (String) ((Widget) e.getSource()).getData(DATA_EDITOR_EXTENSION);
- fireValidationRequired();
- }
- };
-
- private String selectedExtensionId;
-
- public TaskEditorExtensionSettingsContribution() {
- super(Messages.TaskEditorExtensionSettingsContribution_Editor,
- Messages.TaskEditorExtensionSettingsContribution_Select_the_capabilities_of_the_task_editor);
- }
-
- @Override
- public void applyTo(TaskRepository repository) {
- TaskEditorExtensions.setTaskEditorExtensionId(repository, selectedExtensionId == null ? "none" //$NON-NLS-1$
- : selectedExtensionId);
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return true;
- }
-
- @Override
- public boolean isPageComplete() {
- return true;
- }
-
- @Override
- public Control createControl(Composite parentControl) {
- Composite parent = new Composite(parentControl, SWT.NONE);
- GridLayout layout = new GridLayout(1, true);
- layout.marginWidth = 0;
- parent.setLayout(layout);
-
- String defaultExtensionId = TaskEditorExtensions.getDefaultTaskEditorExtensionId(getConnectorKind());
- selectedExtensionId = getRepository() == null ? defaultExtensionId
- : TaskEditorExtensions.getTaskEditorExtensionId(getRepository());
-
- // configure a 'Plain Text' (none) button
- Button noneButton = new Button(parent, SWT.RADIO);
- String noneTitle = LABEL_NONE;
- boolean isDefault = defaultExtensionId == null || defaultExtensionId.length() == 0;
- if (isDefault) {
- noneTitle += LABEL_DEFAULT_SUFFIX;
- }
- noneButton.setText(noneTitle);
- noneButton.addSelectionListener(listener);
-
- boolean foundSelection = false;
-
- // now add selection buttons for all registered extensions
- SortedSet<RegisteredTaskEditorExtension> allEditorExtensions = TaskEditorExtensions.getTaskEditorExtensions();
- for (RegisteredTaskEditorExtension editorExtension : allEditorExtensions) {
- if (WorkbenchUtil.allowUseOf(editorExtension)) {
- String name = editorExtension.getName();
- isDefault = editorExtension.getId().equals(defaultExtensionId);
- if (isDefault) {
- name += LABEL_DEFAULT_SUFFIX;
- }
- Button button = new Button(parent, SWT.RADIO);
- button.setText(name);
-
- if (editorExtension.getId().equals(selectedExtensionId)) {
- foundSelection = true;
- button.setSelection(true);
- }
- button.setText(name);
- button.setData(DATA_EDITOR_EXTENSION, editorExtension.getId());
- button.addSelectionListener(listener);
- }
- }
- if (!foundSelection) {
- noneButton.setSelection(true);
- }
- return parent;
- }
-
- @Override
- public IStatus validate() {
- // nothing to validate
- return null;
- }
-
- /**
- * only enabled when there are installed/registered task editor extensions.
- */
- @Override
- public boolean isEnabled() {
- return !TaskEditorExtensions.getTaskEditorExtensions().isEmpty();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java
deleted file mode 100644
index 4656de0a8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorExtension;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.IPluginContribution;
-
-/**
- * @author David Green
- */
-public class TaskEditorExtensions {
-
- public static final String REPOSITORY_PROPERTY_EDITOR_EXTENSION = "editorExtension"; //$NON-NLS-1$
-
- private static Map<String, RegisteredTaskEditorExtension> extensionsById = new HashMap<String, RegisteredTaskEditorExtension>();
-
- private static Map<String, String> associationByConnectorKind = new HashMap<String, String>();
-
- private static boolean initialized;
-
- public static SortedSet<RegisteredTaskEditorExtension> getTaskEditorExtensions() {
- init();
- return new TreeSet<RegisteredTaskEditorExtension>(extensionsById.values());
- }
-
- /**
- * Contributes an extension to the {@link TaskEditor}.
- *
- * @param pluginId
- * the id of the contributing plug-in, may be <code>null</code>
- * @param id
- * the id of the extension, may not be <code>null</code>
- * @param name
- * the name of the extension that is displayed in the settings page
- * @param extension
- * the extension implementation
- */
- public static void addTaskEditorExtension(String pluginId, String id, String name,
- AbstractTaskEditorExtension extension) {
- Assert.isNotNull(id);
- RegisteredTaskEditorExtension descriptor = new RegisteredTaskEditorExtension(extension, id, name);
- descriptor.setPluginId(pluginId);
- RegisteredTaskEditorExtension previous = extensionsById.put(id, descriptor);
- if (previous != null) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Duplicate taskEditorExtension id=" //$NON-NLS-1$
- + id, null));
- }
- }
-
- public static void addRepositoryAssociation(String connectorKind, String extensionId) {
- if (connectorKind == null || extensionId == null) {
- throw new IllegalArgumentException();
- }
- String previous = associationByConnectorKind.put(connectorKind, extensionId);
- if (previous != null) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, String.format(
- "Duplicate association for repository %s: %s replaces %s", connectorKind, extensionId, previous), //$NON-NLS-1$
- null));
- }
- }
-
- /**
- * get a task editor extension for a specific repository
- *
- * @param taskRepository
- * @return the extension, or null if there is none
- *
- * @see #getDefaultTaskEditorExtension(TaskRepository)
- */
- public static AbstractTaskEditorExtension getTaskEditorExtension(TaskRepository taskRepository) {
- init();
- String extensionId = getTaskEditorExtensionId(taskRepository);
- if (extensionId != null) {
- RegisteredTaskEditorExtension taskEditorExtension = extensionsById.get(extensionId);
- return taskEditorExtension == null ? null : taskEditorExtension.getExtension();
- }
- return null;
- }
-
- public static String getTaskEditorExtensionId(TaskRepository taskRepository) {
- init();
- String id = taskRepository.getProperty(REPOSITORY_PROPERTY_EDITOR_EXTENSION);
- if (id == null) {
- id = getDefaultTaskEditorExtensionId(taskRepository);
- }
- return id;
- }
-
- public static void setTaskEditorExtensionId(TaskRepository repository, String editorExtensionId) {
- repository.setProperty(REPOSITORY_PROPERTY_EDITOR_EXTENSION, editorExtensionId);
- }
-
- /**
- * Get the default task editor extension id for the given task repository
- *
- * @param taskRepository
- * @return the default task editor extension id or null if there is no default
- */
- public static String getDefaultTaskEditorExtensionId(TaskRepository taskRepository) {
- return getDefaultTaskEditorExtensionId(taskRepository.getConnectorKind());
- }
-
- /**
- * Get the default task editor extension id for the given kind of connector
- *
- * @param connectorKind
- * the kind of connector
- *
- * @return the default task editor extension id or null if there is no default
- */
- public static String getDefaultTaskEditorExtensionId(String connectorKind) {
- init();
- return associationByConnectorKind.get(connectorKind);
- }
-
- /**
- * get a default task editor extension for a specific repository
- *
- * @param taskRepository
- * @return the extension, or null if there is none
- *
- * @see #getTaskEditorExtension(TaskRepository)
- */
- public static AbstractTaskEditorExtension getDefaultTaskEditorExtension(TaskRepository taskRepository) {
- init();
- String extensionId = getDefaultTaskEditorExtensionId(taskRepository);
- if (extensionId != null) {
- RegisteredTaskEditorExtension taskEditorExtension = extensionsById.get(extensionId);
- return taskEditorExtension == null ? null : taskEditorExtension.getExtension();
- }
- return null;
- }
-
- private static void init() {
- if (!initialized) {
- initialized = true;
- TaskEditorExtensionReader.initExtensions();
- }
- }
-
- public static class RegisteredTaskEditorExtension implements Comparable<RegisteredTaskEditorExtension>,
- IPluginContribution {
-
- private final String id;
-
- private final String name;
-
- private final AbstractTaskEditorExtension extension;
-
- private String pluginId;
-
- private RegisteredTaskEditorExtension(AbstractTaskEditorExtension extension, String id, String name) {
- this.extension = extension;
- this.id = id;
- this.name = name;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public AbstractTaskEditorExtension getExtension() {
- return extension;
- }
-
- public int compareTo(RegisteredTaskEditorExtension o) {
- if (o == this) {
- return 0;
- }
- int i = name.compareTo(o.name);
- if (i == 0) {
- i = id.compareTo(o.id);
- }
- return i;
- }
-
- public String getLocalId() {
- return id;
- }
-
- public String getPluginId() {
- return pluginId;
- }
-
- public void setPluginId(String pluginId) {
- this.pluginId = pluginId;
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorInputFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorInputFactory.java
deleted file mode 100644
index 4d44e4b19..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorInputFactory.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-
-/**
- * @author Rob Elves
- */
-public class TaskEditorInputFactory implements IElementFactory {
-
- public static final String TAG_TASK_HANDLE = "taskHandle"; //$NON-NLS-1$
-
- public static final String ID_FACTORY = "org.eclipse.mylyn.tasks.ui.elementFactories.task.editor"; //$NON-NLS-1$
-
- public IAdaptable createElement(IMemento memento) {
- String handle = memento.getString(TAG_TASK_HANDLE);
- AbstractTask task = TasksUiPlugin.getTaskList().getTask(handle);
- if (task != null) {
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- if (taskRepository != null) {
- return new TaskEditorInput(taskRepository, task);
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN, "Repository for connector kind " //$NON-NLS-1$
- + task.getConnectorKind() + " with url " + task.getRepositoryUrl() + " cannont be found.")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- "Failed to restore task editor: Task with handle \"" + handle //$NON-NLS-1$
- + "\" could not be found in task list.")); //$NON-NLS-1$
- }
- return null;
- }
-
- public static void saveState(IMemento memento, TaskEditorInput input) {
- if (input.getTask() != null) {
- memento.putString(TAG_TASK_HANDLE, input.getTask().getHandleIdentifier());
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNewCommentPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNewCommentPart.java
deleted file mode 100644
index 0def5c59a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNewCommentPart.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorNewCommentPart extends TaskEditorRichTextPart {
-
- public TaskEditorNewCommentPart() {
- setPartName(Messages.TaskEditorNewCommentPart_New_Comment);
- setSectionStyle(ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED);
- setExpandVertically(true);
- }
-
- @Override
- public void initialize(AbstractTaskEditorPage taskEditorPage) {
- super.initialize(taskEditorPage);
- setAttribute(getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNotesPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNotesPart.java
deleted file mode 100644
index 7aee8b6e3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorNotesPart.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.internal.EditorAreaHelper;
-import org.eclipse.ui.internal.WorkbenchPage;
-
-/**
- * @author Shawn Minto
- * @author Steffen Pingel
- */
-public class TaskEditorNotesPart extends AbstractTaskEditorPart {
-
- private String value;
-
- private AbstractTask task;
-
- private SourceViewer noteEditor;
-
- public TaskEditorNotesPart() {
- setPartName(Messages.TaskPlanningEditor_Notes);
- }
-
- @Override
- public void initialize(AbstractTaskEditorPage taskEditorPage) {
- super.initialize(taskEditorPage);
- task = (AbstractTask) taskEditorPage.getTask();
- }
-
- private boolean notesEqual() {
- if (task.getNotes() == null && value == null) {
- return true;
- }
-
- if (task.getNotes() != null && value != null) {
- return task.getNotes().equals(value);
- }
- return false;
- }
-
- @Override
- public void commit(boolean onSave) {
- Assert.isNotNull(task);
-
- if (!notesEqual()) {
- task.setNotes(value);
- // XXX REFRESH THE TASLKIST
- }
-
- super.commit(onSave);
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- this.value = task.getNotes();
- if (this.value == null) {
- this.value = ""; //$NON-NLS-1$
- }
-
- Section section = createSection(parent, toolkit, this.value != null && this.value.length() > 0);
-
- Composite composite = toolkit.createComposite(section);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- composite.setLayout(layout);
-
- noteEditor = new SourceViewer(composite, null, SWT.FLAT | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
- noteEditor.configure(new RepositoryTextViewerConfiguration(getModel().getTaskRepository(), true));
- CommonTextSupport textSupport = (CommonTextSupport) getTaskEditorPage().getAdapter(CommonTextSupport.class);
- if (textSupport != null) {
- textSupport.configure(noteEditor, new Document(this.value), true);
- }
- noteEditor.addTextListener(new ITextListener() {
- public void textChanged(TextEvent event) {
- TaskEditorNotesPart.this.value = noteEditor.getTextWidget().getText();
- markDirty();
- }
- });
-
- final GridData gd = new GridData(GridData.FILL_BOTH);
- int widthHint = 0;
-
- if (getManagedForm() != null && getManagedForm().getForm() != null) {
- widthHint = getManagedForm().getForm().getClientArea().width - 90;
- }
- if (widthHint <= 0 && getTaskEditorPage().getEditor().getEditorSite() != null
- && getTaskEditorPage().getEditor().getEditorSite().getPage() != null) {
- EditorAreaHelper editorManager = ((WorkbenchPage) getTaskEditorPage().getEditor().getEditorSite().getPage()).getEditorPresentation();
- if (editorManager != null && editorManager.getLayoutPart() != null) {
- widthHint = editorManager.getLayoutPart().getControl().getBounds().width - 90;
- }
- }
-
- if (widthHint <= 0) {
- widthHint = 100;
- }
-
- gd.widthHint = widthHint;
- gd.minimumHeight = 100;
- gd.grabExcessHorizontalSpace = true;
-
- noteEditor.getControl().setLayoutData(gd);
- noteEditor.getControl().setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- noteEditor.setEditable(true);
-
- toolkit.paintBordersFor(composite);
- section.setClient(composite);
- setSection(toolkit, section);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlineNode.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlineNode.java
deleted file mode 100644
index a3ada9523..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlineNode.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * A node for the tree in {@link TaskEditorOutlinePage}.
- *
- * @author Steffen Pingel
- */
-public class TaskEditorOutlineNode {
-
- public static final String LABEL_COMMENTS = Messages.TaskEditorOutlineNode_Comments;
-
- public static final String LABEL_DESCRIPTION = Messages.TaskEditorOutlineNode_Description;
-
- public static final String LABEL_NEW_COMMENT = Messages.TaskEditorOutlineNode_New_Comment;
-
- private static TaskEditorOutlineNode createNode(TaskData taskData, String attributeId, String label) {
- TaskAttribute taskAttribute = taskData.getRoot().getMappedAttribute(attributeId);
- if (taskAttribute != null) {
- if (label == null) {
- label = taskAttribute.getValue();
- }
- return new TaskEditorOutlineNode(label, taskAttribute);
- }
- return null;
- }
-
- private static TaskEditorOutlineNode createNode(TaskAttribute taskAttribute) {
- String type = taskAttribute.getMetaData().getType();
- if (TaskAttribute.TYPE_COMMENT.equals(type)) {
- ITaskComment taskComment = TasksUiPlugin.getRepositoryModel().createTaskComment(taskAttribute);
- if (taskComment != null) {
- taskAttribute.getTaskData().getAttributeMapper().updateTaskComment(taskComment, taskAttribute);
- StringBuilder sb = new StringBuilder();
- sb.append(taskComment.getNumber());
- sb.append(": "); //$NON-NLS-1$
- IRepositoryPerson author = taskComment.getAuthor();
- if (author != null) {
- sb.append(author.toString());
- }
- Date creationDate = taskComment.getCreationDate();
- if (creationDate != null) {
- sb.append(" ("); //$NON-NLS-1$
- sb.append(EditorUtil.formatDateTime(creationDate));
- sb.append(")"); //$NON-NLS-1$
- }
- TaskEditorOutlineNode node = new TaskEditorOutlineNode(sb.toString(), taskAttribute);
- node.setTaskComment(taskComment);
- return node;
- }
- } else {
- String label = taskAttribute.getTaskData().getAttributeMapper().getValueLabel(taskAttribute);
- return new TaskEditorOutlineNode(label, taskAttribute);
- }
- return null;
- }
-
- public static TaskEditorOutlineNode parse(TaskData taskData) {
- TaskEditorOutlineNode rootNode = createNode(taskData, TaskAttribute.SUMMARY, null);
- if (rootNode == null) {
- rootNode = new TaskEditorOutlineNode(Messages.TaskEditorOutlineNode_Task_ + taskData.getTaskId());
- }
- addNode(rootNode, taskData, TaskAttribute.DESCRIPTION, LABEL_DESCRIPTION);
- List<TaskAttribute> comments = taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_COMMENT);
- if (comments.size() > 0) {
- TaskEditorOutlineNode commentsNode = new TaskEditorOutlineNode(LABEL_COMMENTS);
- rootNode.addChild(commentsNode);
- for (TaskAttribute commentAttribute : comments) {
- TaskEditorOutlineNode node = createNode(commentAttribute);
- if (node != null) {
- commentsNode.addChild(node);
- }
- }
- }
- addNode(rootNode, taskData, TaskAttribute.COMMENT_NEW, LABEL_NEW_COMMENT);
- return rootNode;
- }
-
- private static TaskEditorOutlineNode addNode(TaskEditorOutlineNode parentNode, TaskData taskData,
- String attributeId, String label) {
- TaskEditorOutlineNode node = createNode(taskData, attributeId, label);
- if (node != null) {
- parentNode.addChild(node);
- }
- return node;
- }
-
- private List<TaskEditorOutlineNode> children;
-
- private final String label;
-
- /** The parent of this node or null if it is the bug report */
- private TaskEditorOutlineNode parent;
-
- private final TaskAttribute taskAttribute;
-
- private ITaskComment taskComment;
-
- public TaskEditorOutlineNode(String label) {
- this(label, null);
- }
-
- public TaskEditorOutlineNode(String label, TaskAttribute taskAttribute) {
- this.label = label;
- this.taskAttribute = taskAttribute;
- }
-
- public void addChild(TaskEditorOutlineNode node) {
- Assert.isNotNull(node);
- if (children == null) {
- children = new ArrayList<TaskEditorOutlineNode>();
- }
- node.parent = this;
- children.add(node);
- }
-
- /**
- * @return <code>true</code> if the given object is another node representing the same piece of data in the editor.
- */
- @Override
- public boolean equals(Object o) {
- if (o instanceof TaskEditorOutlineNode) {
- TaskEditorOutlineNode node = (TaskEditorOutlineNode) o;
- return getLabel().equals(node.getLabel());
- }
- return false;
- }
-
- public TaskEditorOutlineNode[] getChildren() {
- return (children == null) ? new TaskEditorOutlineNode[0]
- : children.toArray(new TaskEditorOutlineNode[children.size()]);
- }
-
- public ITaskComment getTaskComment() {
- return taskComment;
- }
-
- public void setTaskComment(ITaskComment taskComment) {
- this.taskComment = taskComment;
- }
-
- public TaskAttribute getData() {
- return taskAttribute;
- }
-
- public String getLabel() {
- return label;
- }
-
- public TaskEditorOutlineNode getParent() {
- return parent;
- }
-
- @Override
- public int hashCode() {
- return getLabel().hashCode();
- }
-
- @Override
- public String toString() {
- return getLabel();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlinePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlinePage.java
deleted file mode 100644
index 52a3046b7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorOutlinePage.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-
-/**
- * An outline page for a {@link TaskEditor}.
- *
- * @author Steffen Pingel
- */
-public class TaskEditorOutlinePage extends ContentOutlinePage {
-
- private static class TaskEditorOutlineContentProvider implements ITreeContentProvider {
-
- public void dispose() {
- // ignore
- }
-
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof TaskEditorOutlineNode) {
- Object[] children = ((TaskEditorOutlineNode) parentElement).getChildren();
- return children;
- }
- return new Object[0];
- }
-
- public Object[] getElements(Object inputElement) {
- if (inputElement instanceof TaskEditorOutlineModel) {
- return new Object[] { ((TaskEditorOutlineModel) inputElement).getRoot() };
- }
- return new Object[0];
- }
-
- public Object getParent(Object element) {
- if (element instanceof TaskEditorOutlineNode) {
- return ((TaskEditorOutlineNode) element).getParent();
- }
- return null;
- }
-
- public boolean hasChildren(Object element) {
- if (element instanceof TaskEditorOutlineNode) {
- return ((TaskEditorOutlineNode) element).getChildren().length > 0;
- }
- return false;
- }
-
- public void inputChanged(Viewer viewerChanged, Object oldInput, Object newInput) {
- // ignore
- }
-
- }
-
- private static class TaskEditorOutlineModel {
-
- private final TaskEditorOutlineNode root;
-
- public TaskEditorOutlineModel(TaskEditorOutlineNode root) {
- this.root = root;
- }
-
- public TaskEditorOutlineNode getRoot() {
- return root;
- }
-
- }
-
- private TaskEditorOutlineModel model;
-
- private TaskRepository taskRepository;
-
- private TreeViewer viewer;
-
- public TaskEditorOutlinePage() {
- }
-
- public void setInput(TaskRepository taskRepository, TaskEditorOutlineNode rootNode) {
- this.taskRepository = taskRepository;
- if (rootNode != null) {
- this.model = new TaskEditorOutlineModel(rootNode);
- } else {
- this.model = null;
- }
- if (viewer != null) {
- viewer.setInput(this.model);
- viewer.refresh(true);
- }
- }
-
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- viewer = getTreeViewer();
- viewer.setContentProvider(new TaskEditorOutlineContentProvider());
- viewer.setLabelProvider(new LabelProvider() {
- @Override
- public Image getImage(Object element) {
- if (element instanceof TaskEditorOutlineNode) {
- TaskEditorOutlineNode node = (TaskEditorOutlineNode) element;
- if (TaskEditorOutlineNode.LABEL_COMMENTS.equals(node.getLabel())
- || TaskEditorOutlineNode.LABEL_NEW_COMMENT.equals(node.getLabel())) {
- return CommonImages.getImage(TasksUiImages.COMMENT);
- }
- if (TaskEditorOutlineNode.LABEL_DESCRIPTION.equals(node.getLabel())) {
- return CommonImages.getImage(TasksUiImages.TASK_NOTES);
- } else if (node.getTaskComment() != null) {
- IRepositoryPerson author = node.getTaskComment().getAuthor();
- if (taskRepository != null && author != null
- && author.getPersonId().equals(taskRepository.getUserName())) {
- return CommonImages.getImage(CommonImages.PERSON_ME);
- } else {
- return CommonImages.getImage(CommonImages.PERSON);
- }
- } else {
- return CommonImages.getImage(TasksUiImages.TASK);
- }
- } else {
- return super.getImage(element);
- }
- }
-
- @Override
- public String getText(Object element) {
- if (element instanceof TaskEditorOutlineNode) {
- TaskEditorOutlineNode node = (TaskEditorOutlineNode) element;
- return node.getLabel();
- }
- return super.getText(element);
- }
- });
- viewer.setInput(model);
- viewer.expandAll();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java
deleted file mode 100644
index 650a6755b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorPeoplePart extends AbstractTaskEditorPart {
-
- private static final int COLUMN_MARGIN = 5;
-
- public TaskEditorPeoplePart() {
- setPartName(Messages.TaskEditorPeoplePart_People);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute) {
- AbstractAttributeEditor editor = createAttributeEditor(attribute);
- if (editor != null) {
- editor.createLabelControl(composite, toolkit);
- GridDataFactory.defaultsFor(editor.getLabelControl()).indent(COLUMN_MARGIN, 0).applyTo(
- editor.getLabelControl());
- editor.createControl(composite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.TOP).applyTo(editor.getControl());
- }
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Section section = createSection(parent, toolkit, true);
-
- Composite peopleComposite = toolkit.createComposite(section);
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 5;
- peopleComposite.setLayout(layout);
-
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.ADD_SELF_CC));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_CC));
-
- toolkit.paintBordersFor(peopleComposite);
- section.setClient(peopleComposite);
- setSection(toolkit, section);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java
deleted file mode 100644
index 26d2f835b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.Calendar;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.commons.core.DateUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DayDateRange;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-import org.eclipse.mylyn.internal.tasks.ui.ScheduleDatePicker;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.monitor.ui.MonitorUi;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivityListener;
-import org.eclipse.mylyn.tasks.core.TaskActivityAdapter;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorPlanningPart extends AbstractTaskEditorPart {
-
- private static final int CONTROL_WIDTH = 135;
-
- private DatePicker dueDatePicker;
-
- private Text elapsedTimeText;
-
- private Spinner estimatedTime;
-
- private ScheduleDatePicker scheduleDatePicker;
-
- private AbstractTask task;
-
- private final ITaskListChangeListener TASK_LIST_LISTENER = new TaskListChangeAdapter() {
-
- @Override
- public void containersChanged(Set<TaskContainerDelta> containers) {
- for (TaskContainerDelta taskContainerDelta : containers) {
- if (taskContainerDelta.getElement() instanceof ITask) {
- final AbstractTask updateTask = (AbstractTask) taskContainerDelta.getElement();
- if (updateTask != null && task != null
- && updateTask.getHandleIdentifier().equals(task.getHandleIdentifier())) {
- if (PlatformUI.getWorkbench() != null && !PlatformUI.getWorkbench().isClosing()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- updateFromTask(updateTask);
- }
- });
- }
- }
- }
- }
- }
-
- };
-
- private final ITaskActivityListener timingListener = new TaskActivityAdapter() {
-
- @Override
- public void elapsedTimeUpdated(ITask task, long newElapsedTime) {
- if (task.equals(TaskEditorPlanningPart.this.task)) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (elapsedTimeText != null && !elapsedTimeText.isDisposed()) {
- updateElapsedTime();
- }
- }
- });
-
- }
- }
- };
-
- public TaskEditorPlanningPart() {
- setPartName(Messages.TaskEditorPlanningPart_Personal_Planning);
- }
-
- @Override
- public void commit(boolean onSave) {
- AbstractTask task = (AbstractTask) getTaskEditorPage().getTask();
- Assert.isNotNull(task);
-
- if (scheduleDatePicker != null && scheduleDatePicker.getScheduledDate() != null) {
- if (task.getScheduledForDate() == null
- || (task.getScheduledForDate() != null && !scheduleDatePicker.getScheduledDate().equals(
- task.getScheduledForDate())) || (task).getScheduledForDate() instanceof DayDateRange) {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task, scheduleDatePicker.getScheduledDate());
- (task).setReminded(false);
- }
- } else {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task, null);
- (task).setReminded(false);
- }
-
- if (estimatedTime != null) {
- task.setEstimatedTimeHours(estimatedTime.getSelection());
- }
-
- if (dueDatePicker != null && dueDatePicker.getDate() != null) {
- TasksUiPlugin.getTaskActivityManager().setDueDate(task, dueDatePicker.getDate().getTime());
- } else {
- TasksUiPlugin.getTaskActivityManager().setDueDate(task, null);
- }
-
- super.commit(onSave);
- }
-
- private void createActualTime(FormToolkit toolkit, Composite parent) {
- Label label = toolkit.createLabel(parent, Messages.TaskEditorPlanningPart_Active);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- label.setToolTipText(Messages.TaskEditorPlanningPart_Time_working_on_this_task);
-
- Composite nameValueComp = createComposite(parent, 2, toolkit);
-
- elapsedTimeText = toolkit.createText(nameValueComp, null);
- updateElapsedTime();
-
- GridData td = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- td.grabExcessHorizontalSpace = true;
- elapsedTimeText.setLayoutData(td);
- elapsedTimeText.setEditable(false);
-
- ImageHyperlink resetActivityTimeButton = toolkit.createImageHyperlink(nameValueComp, SWT.NONE);
- resetActivityTimeButton.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR));
- resetActivityTimeButton.setToolTipText(Messages.TaskEditorPlanningPart_Reset);
- resetActivityTimeButton.addHyperlinkListener(new HyperlinkAdapter() {
-
- @Override
- public void linkActivated(HyperlinkEvent e) {
- if (MessageDialog.openConfirm(getControl().getShell(), Messages.TaskEditorPlanningPart_Confirm_Activity_Time_Deletion,
- Messages.TaskEditorPlanningPart_Do_you_wish_to_reset_your_activity_time_on_this_task_)) {
- MonitorUi.getActivityContextManager().removeActivityTime(task.getHandleIdentifier(), 0l,
- System.currentTimeMillis());
- }
- }
- });
- }
-
- private void updateElapsedTime() {
- String elapsedTimeString = DateUtil.getFormattedDurationShort(TasksUiPlugin.getTaskActivityManager()
- .getElapsedTime(task));
- if (elapsedTimeString.equals("")) { //$NON-NLS-1$
- elapsedTimeString = Messages.TaskEditorPlanningPart_0_SECOUNDS;
- }
- elapsedTimeText.setText(elapsedTimeString);
- }
-
- private Composite createComposite(Composite parent, int col, FormToolkit toolkit) {
- Composite nameValueComp = toolkit.createComposite(parent);
- GridLayout layout = new GridLayout(3, false);
- layout.marginHeight = 3;
- nameValueComp.setLayout(layout);
- return nameValueComp;
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- task = (AbstractTask) getTaskEditorPage().getTask();
- boolean hasDueDate = !getTaskEditorPage().getConnector().hasRepositoryDueDate(
- getTaskEditorPage().getTaskRepository(), task, getTaskData());
-
- Section section = createSection(parent, toolkit, true);
- Composite composite = getManagedForm().getToolkit().createComposite(section);
- composite.setLayout(new GridLayout((hasDueDate) ? 4 : 6, false));
-
- createScheduledDatePicker(toolkit, composite);
-
- // disable due date picker if it's a repository due date
- if (hasDueDate) {
- createDueDatePicker(toolkit, composite);
- }
-
- createEstimatedTime(toolkit, composite);
-
- createActualTime(toolkit, composite);
-
- TasksUiInternal.getTaskList().addChangeListener(TASK_LIST_LISTENER);
- TasksUiPlugin.getTaskActivityManager().addActivityListener(timingListener);
-
- toolkit.paintBordersFor(composite);
- section.setClient(composite);
- setSection(toolkit, section);
- }
-
- private void createDueDatePicker(FormToolkit toolkit, Composite parent) {
- Label label = toolkit.createLabel(parent, Messages.TaskEditorPlanningPart_Due);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- Composite composite = createComposite(parent, 2, toolkit);
-
- dueDatePicker = new DatePicker(composite, SWT.FLAT, DatePicker.LABEL_CHOOSE, true, 0);
- GridDataFactory.fillDefaults().hint(CONTROL_WIDTH, SWT.DEFAULT).applyTo(dueDatePicker);
- dueDatePicker.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
- dueDatePicker.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- if (task.getDueDate() != null) {
- Calendar calendar = TaskActivityUtil.getCalendar();
- calendar.setTime(task.getDueDate());
- dueDatePicker.setDate(calendar);
- }
- dueDatePicker.addPickerSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent arg0) {
- markDirty();
- }
- });
- toolkit.adapt(dueDatePicker, false, false);
- toolkit.paintBordersFor(composite);
-
- ImageHyperlink clearDueDate = toolkit.createImageHyperlink(composite, SWT.NONE);
- clearDueDate.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR));
- clearDueDate.setToolTipText(Messages.TaskEditorPlanningPart_Clear);
- clearDueDate.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- dueDatePicker.setDate(null);
- markDirty();
- }
- });
- }
-
- private void createEstimatedTime(FormToolkit toolkit, Composite parent) {
- Label label = toolkit.createLabel(parent, Messages.TaskEditorPlanningPart_Estimated);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- Composite composite = createComposite(parent, 2, toolkit);
-
- // Estimated time
- estimatedTime = new Spinner(composite, SWT.FLAT);
- estimatedTime.setDigits(0);
- estimatedTime.setMaximum(100);
- estimatedTime.setMinimum(0);
- estimatedTime.setIncrement(1);
- estimatedTime.setSelection(task.getEstimatedTimeHours());
- estimatedTime.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- estimatedTime.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- if (task.getEstimatedTimeHours() != estimatedTime.getSelection()) {
- markDirty();
- }
- }
- });
-
- ImageHyperlink clearEstimated = toolkit.createImageHyperlink(composite, SWT.NONE);
- clearEstimated.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR));
- clearEstimated.setToolTipText(Messages.TaskEditorPlanningPart_Clear);
- clearEstimated.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- estimatedTime.setSelection(0);
- markDirty();
- }
- });
- toolkit.paintBordersFor(composite);
- }
-
- private void createScheduledDatePicker(FormToolkit toolkit, Composite parent) {
- Label label = toolkit.createLabel(parent, Messages.TaskEditorPlanningPart_Scheduled);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- Composite composite = createComposite(parent, 2, toolkit);
-
- scheduleDatePicker = new ScheduleDatePicker(composite, task, SWT.FLAT);
- GridDataFactory.fillDefaults().hint(CONTROL_WIDTH, SWT.DEFAULT).applyTo(scheduleDatePicker);
- scheduleDatePicker.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.adapt(scheduleDatePicker, false, false);
- toolkit.paintBordersFor(composite);
-
- scheduleDatePicker.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
- scheduleDatePicker.addPickerSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent arg0) {
- // ignore
- }
-
- public void widgetSelected(SelectionEvent arg0) {
- markDirty();
- }
- });
-
- ImageHyperlink clearScheduledDate = toolkit.createImageHyperlink(composite, SWT.NONE);
- clearScheduledDate.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR));
- clearScheduledDate.setToolTipText(Messages.TaskEditorPlanningPart_Clear);
- clearScheduledDate.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- scheduleDatePicker.setScheduledDate(null);
- // XXX why is this set here?
- task.setReminded(false);
- markDirty();
- }
- });
- }
-
- @Override
- public void dispose() {
- TasksUiPlugin.getTaskActivityManager().removeActivityListener(timingListener);
- TasksUiInternal.getTaskList().removeChangeListener(TASK_LIST_LISTENER);
- }
-
- private void updateFromTask(AbstractTask updateTask) {
- if (scheduleDatePicker != null && !scheduleDatePicker.isDisposed()) {
- if (updateTask.getScheduledForDate() != null) {
- scheduleDatePicker.setScheduledDate(updateTask.getScheduledForDate());
- } else {
- scheduleDatePicker.setScheduledDate(null);
- }
- }
-
- if (estimatedTime != null && !estimatedTime.isDisposed()) {
- estimatedTime.setSelection(updateTask.getEstimatedTimeHours());
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java
deleted file mode 100644
index 9686b1f62..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.internal.EditorAreaHelper;
-import org.eclipse.ui.internal.WorkbenchPage;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskEditorRichTextPart extends AbstractTaskEditorPart {
-
- private RichTextAttributeEditor editor;
-
- private TaskAttribute attribute;
-
- private Composite composite;
-
- private int sectionStyle;
-
- private ToggleToMaximizePartAction toggleToMaximizePartAction;
-
- private Action togglePreviewAction;
-
- private Action toggleBrowserAction;
-
- public TaskEditorRichTextPart() {
- setSectionStyle(ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
- }
-
- public void appendText(String text) {
- if (editor == null) {
- return;
- }
-
- StringBuilder strBuilder = new StringBuilder();
- String oldText = editor.getViewer().getDocument().get();
- if (strBuilder.length() != 0) {
- strBuilder.append("\n"); //$NON-NLS-1$
- }
- strBuilder.append(oldText);
- strBuilder.append(text);
- editor.getViewer().getDocument().set(strBuilder.toString());
- TaskAttribute attribute = getTaskData().getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- if (attribute != null) {
- attribute.setValue(strBuilder.toString());
- getTaskEditorPage().getModel().attributeChanged(attribute);
- }
- editor.getViewer().getTextWidget().setCaretOffset(strBuilder.length());
- }
-
- public int getSectionStyle() {
- return sectionStyle;
- }
-
- public void setSectionStyle(int sectionStyle) {
- this.sectionStyle = sectionStyle;
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- if (attribute == null) {
- return;
- }
- AbstractAttributeEditor attributEditor = createAttributeEditor(attribute);
- if (!(attributEditor instanceof RichTextAttributeEditor)) {
- String clazz;
- if (attributEditor != null) {
- clazz = attributEditor.getClass().getName();
- } else {
- clazz = "<null>"; //$NON-NLS-1$
- }
- StatusHandler.log(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- "Expected an instance of RichTextAttributeEditor, got \"" + clazz + "\"")); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
-
- Section section = createSection(parent, toolkit, sectionStyle);
-
- composite = toolkit.createComposite(section);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- composite.setLayout(layout);
-
- editor = (RichTextAttributeEditor) attributEditor;
-
- editor.createControl(composite, toolkit);
- if (editor.isReadOnly()) {
- composite.setLayout(new FillWidthLayout(EditorUtil.getLayoutAdvisor(getTaskEditorPage()), 0, 0, 0, 3));
- } else {
- final GridData gd = new GridData();
- // wrap text at this margin, see comment below
- int width = getEditorWidth();
- // the goal is to make the text viewer as big as the text so it does not require scrolling when first drawn
- // on screen
- Point size = editor.getViewer().getTextWidget().computeSize(width, SWT.DEFAULT, true);
- gd.widthHint = EditorUtil.MAXIMUM_WIDTH;
- gd.minimumWidth = EditorUtil.MAXIMUM_WIDTH;
- gd.horizontalAlignment = SWT.FILL;
- gd.grabExcessHorizontalSpace = true;
- // limit height to be avoid dynamic resizing of the text widget:
- // MAXIMUM_HEIGHT < height < MAXIMUM_HEIGHT * 3
- //gd.minimumHeight = AbstractAttributeEditor.MAXIMUM_HEIGHT;
- gd.heightHint = Math.min(Math.max(EditorUtil.MAXIMUM_HEIGHT, size.y), EditorUtil.MAXIMUM_HEIGHT * 3);
- if (getExpandVertically()) {
- gd.verticalAlignment = SWT.FILL;
- gd.grabExcessVerticalSpace = true;
- }
- editor.getControl().setLayoutData(gd);
- editor.getControl().setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- // shrink the text control if the editor width is reduced, otherwise the text field will always keep it's original
- // width and will cause the editor to have a horizonal scroll bar
-// composite.addControlListener(new ControlAdapter() {
-// @Override
-// public void controlResized(ControlEvent e) {
-// int width = sectionComposite.getSize().x;
-// Point size = descriptionTextViewer.getTextWidget().computeSize(width, SWT.DEFAULT, true);
-// // limit width to parent widget
-// gd.widthHint = width;
-// // limit height to avoid dynamic resizing of the text widget
-// gd.heightHint = Math.min(Math.max(DESCRIPTION_HEIGHT, size.y), DESCRIPTION_HEIGHT * 4);
-// sectionComposite.layout();
-// }
-// });
- }
-
- getEditor().getControl().setData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION, getMaximizePartAction());
- if (getEditor().getControl() instanceof Composite) {
- for (Control control : ((Composite) getEditor().getControl()).getChildren()) {
- control.setData(EditorUtil.KEY_TOGGLE_TO_MAXIMIZE_ACTION, getMaximizePartAction());
- }
- }
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
-
- toolkit.paintBordersFor(composite);
- section.setClient(composite);
- setSection(toolkit, section);
- }
-
- private int getEditorWidth() {
- int widthHint = 0;
- if (getManagedForm() != null && getManagedForm().getForm() != null) {
- widthHint = getManagedForm().getForm().getClientArea().width - 90;
- }
- if (widthHint <= 0 && getTaskEditorPage().getEditor().getEditorSite() != null
- && getTaskEditorPage().getEditor().getEditorSite().getPage() != null) {
- EditorAreaHelper editorManager = ((WorkbenchPage) getTaskEditorPage().getEditor().getEditorSite().getPage()).getEditorPresentation();
- if (editorManager != null && editorManager.getLayoutPart() != null) {
- widthHint = editorManager.getLayoutPart().getControl().getBounds().width - 90;
- }
- }
- if (widthHint <= 0) {
- widthHint = EditorUtil.MAXIMUM_WIDTH;
- }
- return widthHint;
- }
-
- public TaskAttribute getAttribute() {
- return attribute;
- }
-
- protected Composite getComposite() {
- return composite;
- }
-
- protected RichTextAttributeEditor getEditor() {
- return editor;
- }
-
- public void setAttribute(TaskAttribute attribute) {
- this.attribute = attribute;
- }
-
- @Override
- public void setFocus() {
- if (editor != null) {
- editor.getControl().setFocus();
- }
- }
-
- protected Action getMaximizePartAction() {
- if (toggleToMaximizePartAction == null) {
- toggleToMaximizePartAction = new ToggleToMaximizePartAction();
- }
- return toggleToMaximizePartAction;
- }
-
- private class ToggleToMaximizePartAction extends Action {
-
- private static final String COMMAND_ID = "org.eclipse.mylyn.tasks.ui.command.maximizePart"; //$NON-NLS-1$
-
- private/*static*/final String MAXIMIZE = Messages.TaskEditorRichTextPart_Maximize;
-
- private static final int SECTION_HEADER_HEIGHT = 50;
-
- private int originalHeight = -1;
-
- public ToggleToMaximizePartAction() {
- super("", SWT.TOGGLE); //$NON-NLS-1$
- setImageDescriptor(CommonImages.PART_MAXIMIZE);
- setToolTipText(MAXIMIZE);
- setActionDefinitionId(COMMAND_ID);
- setChecked(false);
- }
-
- @Override
- public void run() {
- if (!(getEditor().getControl().getLayoutData() instanceof GridData)) {
- return;
- }
-
- GridData gd = (GridData) getEditor().getControl().getLayoutData();
-
- if (originalHeight == -1) {
- originalHeight = gd.heightHint;
- }
-
- try {
- getTaskEditorPage().setReflow(false);
-
- int heightHint;
- if (isChecked()) {
- heightHint = getManagedForm().getForm().getClientArea().height - SECTION_HEADER_HEIGHT;
- } else {
- heightHint = originalHeight;
- }
-
- // ignore when not necessary
- if (gd.heightHint == heightHint) {
- return;
- }
- gd.heightHint = heightHint;
- gd.minimumHeight = heightHint;
- } finally {
- getTaskEditorPage().setReflow(true);
- }
-
- getTaskEditorPage().reflow();
- CommonFormUtil.ensureVisible(getEditor().getControl());
- }
- }
-
- @Override
- protected void fillToolBar(ToolBarManager manager) {
- if (getEditor().hasPreview()) {
- togglePreviewAction = new Action("", SWT.TOGGLE) { //$NON-NLS-1$
- @Override
- public void run() {
- if (isChecked()) {
- editor.showPreview();
- } else {
- editor.showEditor();
- }
-
- if (toggleBrowserAction != null) {
- toggleBrowserAction.setChecked(false);
- }
- }
- };
- togglePreviewAction.setImageDescriptor(CommonImages.PREVIEW_WEB);
- togglePreviewAction.setToolTipText(Messages.TaskEditorRichTextPart_Preview);
- togglePreviewAction.setChecked(false);
- manager.add(togglePreviewAction);
- }
- if (togglePreviewAction == null && getEditor().hasBrowser()) {
- toggleBrowserAction = new Action("", SWT.TOGGLE) { //$NON-NLS-1$
- @Override
- public void run() {
- if (isChecked()) {
- editor.showBrowser();
- } else {
- editor.showEditor();
- }
-
- if (togglePreviewAction != null) {
- togglePreviewAction.setChecked(false);
- }
- }
- };
- toggleBrowserAction.setImageDescriptor(CommonImages.PREVIEW_WEB);
- toggleBrowserAction.setToolTipText(Messages.TaskEditorRichTextPart_Browser_Preview);
- toggleBrowserAction.setChecked(false);
- manager.add(toggleBrowserAction);
- }
- manager.add(getMaximizePartAction());
- super.fillToolBar(manager);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorSummaryPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorSummaryPart.java
deleted file mode 100644
index 2457c0b06..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorSummaryPart.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Raphael Ackermann - initial API and implementation, bug 195514
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Raphael Ackermann
- * @author Steffen Pingel
- */
-public class TaskEditorSummaryPart extends AbstractTaskEditorPart {
-
- private static final int COLUMN_MARGIN = 6;
-
- private Composite headerComposite;
-
- private AbstractAttributeEditor summaryEditor;
-
- public TaskEditorSummaryPart() {
- setPartName(Messages.TaskEditorSummaryPart_Summary);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute) {
- addAttribute(composite, toolkit, attribute, COLUMN_MARGIN);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute, int indent) {
- addAttribute(composite, toolkit, attribute, indent, true);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute, int indent,
- boolean showLabel) {
- AbstractAttributeEditor editor = createAttributeEditor(attribute);
- if (editor != null) {
- // having editable controls in the header looks odd
- editor.setReadOnly(true);
- editor.setDecorationEnabled(false);
-
- boolean isPriority = isAttribute(attribute, TaskAttribute.PRIORITY);
-
- if (showLabel && !isPriority) {
- editor.createLabelControl(composite, toolkit);
- GridDataFactory.defaultsFor(editor.getLabelControl()).indent(indent, 0).applyTo(
- editor.getLabelControl());
- }
-
- if (isPriority) {
- ITaskMapping mapping = getTaskEditorPage().getConnector().getTaskMapping(getTaskData());
- if (mapping != null) {
- PriorityLevel priorityLevel = mapping.getPriorityLevel();
- if (priorityLevel != null) {
- Image image = CommonImages.getImage(TasksUiInternal.getPriorityImage(getTaskEditorPage().getTask()));
- if (image != null) {
- Label label = toolkit.createLabel(headerComposite, null);
- label.setImage(image);
- GridDataFactory.defaultsFor(label).indent(5, -3).applyTo(label);
- }
- }
- }
- }
-
- if (isAttribute(attribute, TaskAttribute.DATE_MODIFICATION) && editor instanceof DateAttributeEditor) {
- ((DateAttributeEditor) editor).setShowTime(true);
- }
-
- editor.createControl(composite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- }
- }
-
- private boolean isAttribute(TaskAttribute attribute, String id) {
- return attribute.getId().equals(
- attribute.getTaskData().getAttributeMapper().mapToRepositoryKey(attribute.getParentAttribute(), id));
- }
-
- private void addSummaryText(Composite composite, FormToolkit toolkit) {
- summaryEditor = createAttributeEditor(getTaskData().getRoot().getMappedAttribute(TaskAttribute.SUMMARY));
- if (summaryEditor != null) {
- summaryEditor.createControl(composite, toolkit);
- GridDataFactory.fillDefaults().hint(EditorUtil.MAXIMUM_WIDTH, SWT.DEFAULT).grab(true, false).applyTo(
- summaryEditor.getControl());
- getTaskEditorPage().getAttributeEditorToolkit().adapt(summaryEditor);
- }
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Composite composite = toolkit.createComposite(parent);
- GridLayout layout = new GridLayout();
- layout.verticalSpacing = 5;
- composite.setLayout(layout);
-
- addSummaryText(composite, toolkit);
-
- if (needsHeader()) {
- createHeaderLayout(composite, toolkit);
- }
-
- toolkit.paintBordersFor(composite);
-
- setControl(composite);
- }
-
- protected void createHeaderLayout(Composite composite, FormToolkit toolkit) {
- headerComposite = toolkit.createComposite(composite);
- GridLayout layout = new GridLayout(11, false);
- layout.verticalSpacing = 1;
- layout.marginHeight = 1;
- layout.marginWidth = 1;
- headerComposite.setLayout(layout);
-
-// ITaskMapping mapping = getTaskEditorPage().getConnector().getTaskMapping(getTaskData());
-// if (mapping != null) {
-// toolkit.createLabel(headerComposite, mapping.getStatus());
-// String resolution = mapping.getResolution();
-// if (resolution != null && resolution.length() > 0) {
-// toolkit.createLabel(headerComposite, "(" + resolution + ")");
-// }
-// String priority = mapping.getPriority();
-// if (priority != null) {
-// Label label = toolkit.createLabel(headerComposite, "Priority:");
-// label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-// PriorityLevel priorityLevel = mapping.getPriorityLevel();
-// if (priorityLevel != null) {
-// Image image = TasksUiImages.getImageForPriority(priorityLevel);
-// if (image != null) {
-// label = toolkit.createLabel(headerComposite, null);
-// label.setImage(image);
-// }
-// }
-// toolkit.createLabel(headerComposite, priority);
-// }
-// }
- TaskAttribute priorityAttribute = getTaskData().getRoot().getMappedAttribute(TaskAttribute.PRIORITY);
- addAttribute(headerComposite, toolkit, priorityAttribute);
-
- TaskAttribute statusAtribute = getTaskData().getRoot().getMappedAttribute(TaskAttribute.STATUS);
- addAttribute(headerComposite, toolkit, statusAtribute, 0);
-
- ITaskMapping mapping = getTaskEditorPage().getConnector().getTaskMapping(getTaskData());
- if (mapping != null && mapping.getResolution() != null && mapping.getResolution().length() > 0) {
- TaskAttribute resolutionAtribute = getTaskData().getRoot().getMappedAttribute(TaskAttribute.RESOLUTION);
- addAttribute(headerComposite, toolkit, resolutionAtribute, 0, false);
- }
-
- TaskAttribute keyAttribute = getTaskData().getRoot().getMappedAttribute(TaskAttribute.TASK_KEY);
- addAttribute(headerComposite, toolkit, keyAttribute);
-
- TaskAttribute dateCreation = getTaskData().getRoot().getMappedAttribute(TaskAttribute.DATE_CREATION);
- addAttribute(headerComposite, toolkit, dateCreation);
-
- TaskAttribute dateModified = getTaskData().getRoot().getMappedAttribute(TaskAttribute.DATE_MODIFICATION);
- addAttribute(headerComposite, toolkit, dateModified);
- }
-
- public boolean needsHeader() {
- return !getTaskData().isNew();
- }
-
- @Override
- public void setFocus() {
- if (summaryEditor != null) {
- summaryEditor.getControl().setFocus();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkDetector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkDetector.java
deleted file mode 100644
index d3d7cfd06..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkDetector.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector;
-
-/**
- * Delegates to {@link AbstractRepositoryConnectorUi} for detecting hyperlinks.
- *
- * @author Steffen Pingel
- */
-public class TaskHyperlinkDetector extends AbstractTaskHyperlinkDetector {
-
- @Override
- protected List<IHyperlink> detectHyperlinks(ITextViewer textViewer, final String content, final int index,
- final int contentOffset) {
- List<IHyperlink> result = null;
- for (final TaskRepository repository : getTaskRepositories(textViewer)) {
- final AbstractRepositoryConnectorUi connectorUi = getConnectorUi(repository);
- if (connectorUi == null) {
- continue;
- }
- final IHyperlink[][] links = new IHyperlink[1][];
- SafeRunnable.run(new ISafeRunnable() {
-
- public void handleException(Throwable exception) {
- }
-
- public void run() throws Exception {
- links[0] = connectorUi.findHyperlinks(repository, content, index, contentOffset);
- }
-
- });
- if (links[0] != null && links[0].length > 0) {
- if (result == null) {
- result = new ArrayList<IHyperlink>();
- }
- result.addAll(Arrays.asList(links[0]));
- }
- }
- return result;
- }
-
- protected AbstractRepositoryConnectorUi getConnectorUi(TaskRepository repository) {
- return TasksUiPlugin.getConnectorUi(repository.getConnectorKind());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkTextPresentationManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkTextPresentationManager.java
deleted file mode 100644
index 55d75624d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskHyperlinkTextPresentationManager.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-import org.eclipse.swt.custom.StyleRange;
-
-/**
- * A manager that decorates task hyperlinks with strike-through when the task is completed.
- *
- * @author David Green
- */
-public class TaskHyperlinkTextPresentationManager extends AbstractHyperlinkTextPresentationManager {
-
- private final TaskList taskList = TasksUiPlugin.getTaskList();
-
- @Override
- public boolean select(IHyperlink hyperlink) {
- if (hyperlink instanceof TaskHyperlink) {
- TaskHyperlink taskHyperlink = (TaskHyperlink) hyperlink;
- String taskId = taskHyperlink.getTaskId();
- String repositoryUrl = taskHyperlink.getRepository().getRepositoryUrl();
-
- ITask task = taskList.getTask(repositoryUrl, taskId);
- if (task == null) {
- task = taskList.getTaskByKey(repositoryUrl, taskId);
- }
- return task != null && task.isCompleted();
- }
- return false;
- }
-
- @Override
- protected void decorate(StyleRange styleRange) {
- // currently only strike-through is used to indicate completed tasks
- styleRange.strikeout = true;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskListChangeAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskListChangeAdapter.java
deleted file mode 100644
index 0cb4e91e1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskListChangeAdapter.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.Set;
-
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-
-public class TaskListChangeAdapter implements ITaskListChangeListener {
-
- public void containersChanged(Set<TaskContainerDelta> containers) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskMigrator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskMigrator.java
deleted file mode 100644
index 6cb9c9b51..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskMigrator.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Date;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.ui.ChangeActivityHandleOperation;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskMigrator {
-
- private static boolean active;
-
- private final ITask oldTask;
-
- private boolean delete;
-
- private boolean openEditors;
-
- private TaskEditor editor;
-
- public TaskMigrator(ITask oldTask) {
- this.oldTask = oldTask;
- this.openEditors = true;
- }
-
- public boolean openEditors() {
- return openEditors;
- }
-
- public void setOpenEditors(boolean openEditors) {
- this.openEditors = openEditors;
- }
-
- public boolean delete() {
- return delete;
- }
-
- public void setDelete(boolean delete) {
- this.delete = delete;
- }
-
- /**
- * Migrates local properties of <code>oldTask</code> to <code>newTask</code>:
- * <ul>
- * <li>Copy properties
- * <li>Delete old task
- * <li>Reactivate new task
- * <li>Open new task
- * </ul>
- *
- * @param newTask
- * the task to migrate properties to
- */
- public void execute(ITask newTask) {
- copyProperties(newTask);
-
- try {
- // temporarily disable auto editor management
- active = true;
-
- boolean reactivate = oldTask.isActive();
- if (reactivate) {
- TasksUi.getTaskActivityManager().deactivateTask(oldTask);
- }
-
- boolean editorIsActive = closeEditor();
-
- deleteOldTask();
-
- if (reactivate) {
- TasksUi.getTaskActivityManager().activateTask(newTask);
- }
-
- if (openEditors()) {
- if (editorIsActive) {
- TasksUiUtil.openTask(newTask);
- } else {
- TasksUiInternal.openTaskInBackground(newTask, false);
- }
- }
- } finally {
- active = false;
- }
- }
-
- public void setEditor(TaskEditor editor) {
- this.editor = editor;
- }
-
- public TaskEditor getEditor() {
- return editor;
- }
-
- private boolean closeEditor() {
- boolean editorIsActive = false;
- if (editor != null) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage activePage = window.getActivePage();
- if (activePage != null) {
- if (activePage.getActiveEditor() == editor) {
- editorIsActive = true;
- }
- }
- }
- editor.close(false);
- }
- return editorIsActive;
- }
-
- private void deleteOldTask() {
- // delete old task details
- if (delete()) {
- TasksUiInternal.getTaskList().deleteTask(oldTask);
- ContextCore.getContextManager().deleteContext(oldTask.getHandleIdentifier());
- try {
- TasksUiPlugin.getTaskDataManager().deleteTaskData(oldTask);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to delete task data", e)); //$NON-NLS-1$
- }
- }
- }
-
- private void copyProperties(ITask newTask) {
- // migrate task details
- if (oldTask instanceof AbstractTask && newTask instanceof AbstractTask) {
- ((AbstractTask) newTask).setNotes(((AbstractTask) oldTask).getNotes());
- DateRange scheduledDate = ((AbstractTask) oldTask).getScheduledForDate();
- TasksUiPlugin.getTaskActivityManager().setScheduledFor((AbstractTask) newTask, scheduledDate);
- Date dueDate = ((AbstractTask) oldTask).getDueDate();
- TasksUiPlugin.getTaskActivityManager().setDueDate(newTask, dueDate);
- ((AbstractTask) newTask).setEstimatedTimeHours(((AbstractTask) oldTask).getEstimatedTimeHours());
- }
-
- // migrate context
- ContextCorePlugin.getContextStore().saveActiveContext();
- ContextCore.getContextStore().cloneContext(oldTask.getHandleIdentifier(), newTask.getHandleIdentifier());
-
- // migrate task activity
- ChangeActivityHandleOperation operation = new ChangeActivityHandleOperation(oldTask.getHandleIdentifier(),
- newTask.getHandleIdentifier());
- try {
- operation.run(new NullProgressMonitor());
- } catch (InvocationTargetException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- "Failed to migrate activity to new task", e.getCause())); //$NON-NLS-1$
- } catch (InterruptedException e) {
- // ignore
- }
- }
-
- public static boolean isActive() {
- return active;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java
deleted file mode 100644
index ddc849be0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java
+++ /dev/null
@@ -1,961 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Ken Sueda - initial prototype
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import com.ibm.icu.text.DateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Set;
-
-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.action.IToolBarManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DayDateRange;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.ScheduleDatePicker;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteTaskEditorAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewSubTaskAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.AbstractRetrieveTitleFromUrlJob;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.monitor.ui.MonitorUi;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivityListener;
-import org.eclipse.mylyn.tasks.core.TaskActivityAdapter;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.mylyn.tasks.ui.editors.TaskFormPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IExpansionListener;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TaskPlanningEditor extends TaskFormPage {
-
- private static final int WIDTH_SUMMARY = 500;
-
- private static final int NOTES_MINSIZE = 100;
-
- private DatePicker dueDatePicker;
-
- private ScheduleDatePicker scheduleDatePicker;
-
- private AbstractTask task;
-
- private Composite editorComposite;
-
- private Text endDate;
-
- private ScrolledForm form;
-
- private TextViewer summaryEditor;
-
- private Text issueReportURL;
-
- private CCombo priorityCombo;
-
- private CCombo statusCombo;
-
- private TextViewer noteEditor;
-
- private Spinner estimated;
-
- private ImageHyperlink getDescLink;
-
- private ImageHyperlink openUrlLink;
-
- private final TaskEditor parentEditor;
-
- private final ITaskListChangeListener TASK_LIST_LISTENER = new TaskListChangeAdapter() {
-
- @Override
- public void containersChanged(Set<TaskContainerDelta> containers) {
- for (TaskContainerDelta taskContainerDelta : containers) {
- if (taskContainerDelta.getElement() instanceof ITask) {
- final AbstractTask updateTask = (AbstractTask) taskContainerDelta.getElement();
- if (updateTask != null && task != null
- && updateTask.getHandleIdentifier().equals(task.getHandleIdentifier())) {
- if (PlatformUI.getWorkbench() != null && !PlatformUI.getWorkbench().isClosing()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (summaryEditor != null && summaryEditor.getTextWidget() != null) {
- updateTaskData(updateTask);
- }
- }
- });
- }
- break;
- }
- }
- }
- }
-
- };
-
- private FormToolkit toolkit;
-
- private ITaskActivityListener timingListener;
-
- private boolean isDirty;
-
- private CommonTextSupport textSupport;
-
- private boolean summaryChanged;
-
- public TaskPlanningEditor(TaskEditor editor) {
- super(editor, ITasksUiConstants.ID_PAGE_PLANNING, Messages.TaskPlanningEditor_Planning);
- this.parentEditor = editor;
- TasksUiInternal.getTaskList().addChangeListener(TASK_LIST_LISTENER);
- }
-
- @Override
- public TaskEditor getEditor() {
- return (TaskEditor) super.getEditor();
- }
-
- @Override
- public void init(IEditorSite site, IEditorInput input) {
- super.init(site, input);
- this.textSupport = new CommonTextSupport((IHandlerService) getSite().getService(IHandlerService.class));
- this.textSupport.setSelectionChangedListener((TaskEditorActionContributor) getEditorSite().getActionBarContributor());
- }
-
- /**
- * Override for customizing the tool bar.
- */
- @Override
- public void fillToolBar(IToolBarManager toolBarManager) {
- TaskEditorInput taskEditorInput = (TaskEditorInput) getEditorInput();
- if (taskEditorInput.getTask() instanceof LocalTask) {
- DeleteTaskEditorAction deleteAction = new DeleteTaskEditorAction(taskEditorInput.getTask());
- toolBarManager.add(deleteAction);
-
- NewSubTaskAction newSubTaskAction = new NewSubTaskAction();
- newSubTaskAction.selectionChanged(newSubTaskAction, new StructuredSelection(taskEditorInput.getTask()));
- if (newSubTaskAction.isEnabled()) {
- toolBarManager.add(newSubTaskAction);
- }
- }
- }
-
- /** public for testing */
- public void updateTaskData(final AbstractTask updateTask) {
- if (scheduleDatePicker != null && !scheduleDatePicker.isDisposed()) {
- if (updateTask.getScheduledForDate() != null) {
- scheduleDatePicker.setScheduledDate(updateTask.getScheduledForDate());
- } else {
- scheduleDatePicker.setScheduledDate(null);
- }
- }
-
- if (summaryEditor == null) {
- return;
- }
-
- if (!summaryEditor.getTextWidget().isDisposed()) {
- if (!summaryChanged) {
- summaryEditor.getTextWidget().setText(updateTask.getSummary());
- }
- if (parentEditor != null) {
- parentEditor.updateHeaderToolBar();
- }
- }
-
- if (!priorityCombo.isDisposed() && updateTask != null) {
- PriorityLevel level = PriorityLevel.fromString(updateTask.getPriority());
- if (level != null) {
- int prioritySelectionIndex = priorityCombo.indexOf(level.getDescription());
- priorityCombo.select(prioritySelectionIndex);
- }
- }
- if (!statusCombo.isDisposed()) {
- if (task.isCompleted()) {
- statusCombo.select(0);
- } else {
- statusCombo.select(1);
- }
- }
- if ((updateTask instanceof LocalTask) && !endDate.isDisposed()) {
- endDate.setText(getTaskDateString(updateTask));
- }
- }
-
- @Override
- public void doSave(IProgressMonitor monitor) {
- if (task instanceof LocalTask) {
- String label = summaryEditor.getTextWidget().getText();
- task.setSummary(label);
-
- // TODO: refactor mutation into TaskList?
- task.setUrl(issueReportURL.getText());
- String priorityDescription = priorityCombo.getItem(priorityCombo.getSelectionIndex());
- PriorityLevel level = PriorityLevel.fromDescription(priorityDescription);
- if (level != null) {
- task.setPriority(level.toString());
- }
- if (!task.isCompleted() && statusCombo.getSelectionIndex() == 0) {
- task.setCompletionDate(new Date());
- } else {
- task.setCompletionDate(null);
- }
- TasksUiInternal.getTaskList().notifyElementChanged(task);
- }
-
- String note = noteEditor.getTextWidget().getText();// notes.getText();
- task.setNotes(note);
- task.setEstimatedTimeHours(estimated.getSelection());
- if (scheduleDatePicker != null && scheduleDatePicker.getScheduledDate() != null) {
- if (task.getScheduledForDate() == null
- || (task.getScheduledForDate() != null && !scheduleDatePicker.getScheduledDate().equals(
- task.getScheduledForDate())) || (task).getScheduledForDate() instanceof DayDateRange) {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task, scheduleDatePicker.getScheduledDate());
- (task).setReminded(false);
- }
- } else {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor(task, null);
- (task).setReminded(false);
- }
- if (dueDatePicker != null && dueDatePicker.getDate() != null) {
- TasksUiPlugin.getTaskActivityManager().setDueDate(task, dueDatePicker.getDate().getTime());
- } else {
- TasksUiPlugin.getTaskActivityManager().setDueDate(task, null);
- }
-// if (parentEditor != null) {
-// parentEditor.notifyTaskChanged();
-// }
- markDirty(false);
- }
-
- @Override
- public void doSaveAs() {
- // don't support saving as
- }
-
- @Override
- public boolean isDirty() {
- return isDirty;
- }
-
- @Override
- public boolean isSaveAsAllowed() {
- return false;
- }
-
- @Override
- protected void createFormContent(IManagedForm managedForm) {
- super.createFormContent(managedForm);
-
- form = managedForm.getForm();
-
- TaskEditorInput taskEditorInput = (TaskEditorInput) getEditorInput();
- task = (AbstractTask) taskEditorInput.getTask();
-
- toolkit = managedForm.getToolkit();
-
- editorComposite = managedForm.getForm().getBody();
- GridLayout editorLayout = new GridLayout();
- editorLayout.verticalSpacing = 3;
- editorComposite.setLayout(editorLayout);
- //editorComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- if (task instanceof LocalTask) {
- createSummarySection(editorComposite);
- }
- createPlanningSection(editorComposite);
- createNotesSection(editorComposite);
-
- if (summaryEditor != null && summaryEditor.getTextWidget() != null
- && LocalRepositoryConnector.DEFAULT_SUMMARY.equals(summaryEditor.getTextWidget().getText())) {
- summaryEditor.setSelectedRange(0, summaryEditor.getTextWidget().getText().length());
- summaryEditor.getTextWidget().setFocus();
- } else if (summaryEditor != null && summaryEditor.getTextWidget() != null) {
- summaryEditor.getTextWidget().setFocus();
- }
- }
-
- @Override
- public void setFocus() {
- // form.setFocus();
- if (summaryEditor != null && summaryEditor.getTextWidget() != null
- && !summaryEditor.getTextWidget().isDisposed()) {
- summaryEditor.getTextWidget().setFocus();
- }
- }
-
- private Text addNameValueComp(Composite parent, String label, String value, int style) {
- Composite nameValueComp = toolkit.createComposite(parent);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = 3;
- nameValueComp.setLayout(layout);
- toolkit.createLabel(nameValueComp, label, SWT.NONE).setForeground(
- toolkit.getColors().getColor(IFormColors.TITLE));
- Text text;
- if ((SWT.READ_ONLY & style) == SWT.READ_ONLY) {
- text = new Text(nameValueComp, style);
- toolkit.adapt(text, false, false);
- text.setText(value);
- } else {
- text = toolkit.createText(nameValueComp, value, style);
- }
- return text;
- }
-
- private void createSummarySection(Composite parent) {
- // Summary
- Composite summaryComposite = toolkit.createComposite(parent);
- GridLayout summaryLayout = new GridLayout();
- summaryLayout.verticalSpacing = 2;
- summaryLayout.marginHeight = 2;
- summaryLayout.marginLeft = 5;
- summaryComposite.setLayout(summaryLayout);
- GridDataFactory.fillDefaults().grab(true, false).applyTo(summaryComposite);
-
- TaskRepository repository = null;
- if (task != null && !(task instanceof LocalTask)) {
- ITask repositoryTask = task;
- repository = TasksUi.getRepositoryManager().getRepository(repositoryTask.getConnectorKind(),
- repositoryTask.getRepositoryUrl());
- }
- summaryEditor = addTextEditor(repository, summaryComposite, task.getSummary(), true, SWT.FLAT | SWT.SINGLE);
-
- GridDataFactory.fillDefaults().hint(WIDTH_SUMMARY, SWT.DEFAULT).minSize(NOTES_MINSIZE, SWT.DEFAULT).grab(true,
- false).applyTo(summaryEditor.getTextWidget());
- summaryEditor.getControl().setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-
- if (!(task instanceof LocalTask)) {
- summaryEditor.setEditable(false);
- } else {
- summaryEditor.setEditable(true);
- summaryEditor.addTextListener(new ITextListener() {
- public void textChanged(TextEvent event) {
- if (!task.getSummary().equals(summaryEditor.getTextWidget().getText())) {
- summaryChanged = true;
- markDirty(true);
- }
- }
- });
- }
- toolkit.paintBordersFor(summaryComposite);
-
- Composite statusComposite = toolkit.createComposite(parent);
- GridLayout compLayout = new GridLayout(8, false);
- compLayout.verticalSpacing = 0;
- compLayout.horizontalSpacing = 5;
- compLayout.marginHeight = 3;
- statusComposite.setLayout(compLayout);
- statusComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Composite nameValueComp = toolkit.createComposite(statusComposite);
- GridLayout nameValueLayout = new GridLayout(2, false);
- nameValueLayout.marginHeight = 3;
- nameValueComp.setLayout(nameValueLayout);
- toolkit.createLabel(nameValueComp, Messages.TaskPlanningEditor_Priority).setForeground(
- toolkit.getColors().getColor(IFormColors.TITLE));
- priorityCombo = new CCombo(nameValueComp, SWT.FLAT | SWT.READ_ONLY);
- toolkit.adapt(priorityCombo, false, false);
- priorityCombo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.paintBordersFor(nameValueComp);
-
- // Populate the combo box with priority levels
- for (String priorityLevel : TaskListView.PRIORITY_LEVEL_DESCRIPTIONS) {
- priorityCombo.add(priorityLevel);
- }
-
- PriorityLevel level = PriorityLevel.fromString(task.getPriority());
- if (level != null) {
- int prioritySelectionIndex = priorityCombo.indexOf(level.getDescription());
- priorityCombo.select(prioritySelectionIndex);
- }
-
- if (!(task instanceof LocalTask)) {
- priorityCombo.setEnabled(false);
- } else {
- priorityCombo.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- TaskPlanningEditor.this.markDirty(true);
-
- }
- });
- }
-
- nameValueComp = toolkit.createComposite(statusComposite);
- nameValueComp.setLayout(new GridLayout(2, false));
- toolkit.createLabel(nameValueComp, Messages.TaskPlanningEditor_Status).setForeground(
- toolkit.getColors().getColor(IFormColors.TITLE));
- statusCombo = new CCombo(nameValueComp, SWT.FLAT | SWT.READ_ONLY);
- toolkit.adapt(statusCombo, true, true);
- statusCombo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.paintBordersFor(nameValueComp);
- statusCombo.add(Messages.TaskPlanningEditor_Complete);
- statusCombo.add(Messages.TaskPlanningEditor_Incomplete);
- if (task.isCompleted()) {
- statusCombo.select(0);
- } else {
- statusCombo.select(1);
- }
- if (!(task instanceof LocalTask)) {
- statusCombo.setEnabled(false);
- } else {
- statusCombo.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- TaskPlanningEditor.this.markDirty(true);
- }
- });
- }
-
- Date creationDate = task.getCreationDate();
- String creationDateString = (creationDate != null) ? DateFormat.getDateInstance(DateFormat.LONG).format(
- creationDate) : ""; //$NON-NLS-1$
- addNameValueComp(statusComposite, Messages.TaskPlanningEditor_Created, creationDateString, SWT.FLAT
- | SWT.READ_ONLY);
-
- String completionDateString = ""; //$NON-NLS-1$
- if (task.isCompleted()) {
- completionDateString = getTaskDateString(task);
- }
- endDate = addNameValueComp(statusComposite, Messages.TaskPlanningEditor_Completed, completionDateString,
- SWT.FLAT | SWT.READ_ONLY);
- // URL
- Composite urlComposite = toolkit.createComposite(parent);
- GridLayout urlLayout = new GridLayout(4, false);
- urlLayout.verticalSpacing = 0;
- urlLayout.marginHeight = 2;
- urlLayout.marginLeft = 5;
- urlComposite.setLayout(urlLayout);
- GridDataFactory.fillDefaults().grab(true, false).applyTo(urlComposite);
-
- Label label = toolkit.createLabel(urlComposite, Messages.TaskPlanningEditor_URL);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- issueReportURL = toolkit.createText(urlComposite, task.getUrl(), SWT.FLAT);
- issueReportURL.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- if (!(task instanceof LocalTask)) {
- issueReportURL.setEditable(false);
- } else {
- issueReportURL.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- markDirty(true);
- }
- });
- }
-
- getDescLink = toolkit.createImageHyperlink(urlComposite, SWT.NONE);
- getDescLink.setImage(CommonImages.getImage(TasksUiImages.TASK_RETRIEVE));
- getDescLink.setToolTipText(Messages.TaskPlanningEditor_Retrieve_task_description_from_URL);
- getDescLink.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
- setButtonStatus();
-
- issueReportURL.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent e) {
- setButtonStatus();
- }
-
- public void keyReleased(KeyEvent e) {
- setButtonStatus();
- }
- });
-
- getDescLink.addHyperlinkListener(new IHyperlinkListener() {
-
- public void linkActivated(HyperlinkEvent e) {
- retrieveTaskDescription(issueReportURL.getText());
- }
-
- public void linkEntered(HyperlinkEvent e) {
- }
-
- public void linkExited(HyperlinkEvent e) {
- }
- });
-
- openUrlLink = toolkit.createImageHyperlink(urlComposite, SWT.NONE);
- openUrlLink.setImage(CommonImages.getImage(CommonImages.BROWSER_SMALL));
- openUrlLink.setToolTipText(Messages.TaskPlanningEditor_Open_with_Web_Browser);
- openUrlLink.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
- openUrlLink.addHyperlinkListener(new IHyperlinkListener() {
-
- public void linkActivated(HyperlinkEvent e) {
- TasksUiUtil.openUrl(issueReportURL.getText());
- }
-
- public void linkEntered(HyperlinkEvent e) {
- }
-
- public void linkExited(HyperlinkEvent e) {
- }
- });
-
- toolkit.paintBordersFor(urlComposite);
- toolkit.paintBordersFor(statusComposite);
- }
-
- private TextViewer addTextEditor(TaskRepository repository, Composite parent, String text, boolean spellCheck,
- int style) {
- SourceViewer viewer = new SourceViewer(parent, null, style);
- viewer.configure(new RepositoryTextViewerConfiguration(repository, spellCheck));
- textSupport.configure(viewer, new Document(text), spellCheck);
- viewer.getControl().setMenu(getEditor().getMenu());
- viewer.getTextWidget().setFont(getCommentFont());
- return viewer;
- }
-
- private void markDirty(boolean dirty) {
- if (!dirty) {
- summaryChanged = false;
- }
- isDirty = dirty;
- getManagedForm().dirtyStateChanged();
- }
-
- /**
- * Attempts to set the task pageTitle to the title from the specified url
- */
- protected void retrieveTaskDescription(final String url) {
- AbstractRetrieveTitleFromUrlJob job = new AbstractRetrieveTitleFromUrlJob(issueReportURL.getText()) {
- @Override
- protected void titleRetrieved(String pageTitle) {
- if (summaryEditor != null && summaryEditor.getControl() != null
- && !summaryEditor.getControl().isDisposed()) {
- summaryEditor.getTextWidget().setText(pageTitle);
- TaskPlanningEditor.this.markDirty(true);
- }
- }
- };
- job.schedule();
- }
-
- /**
- * Sets the Get Description button enabled or not depending on whether there is a URL specified
- */
- protected void setButtonStatus() {
- String url = issueReportURL.getText();
-
- if (url.length() > 10 && (url.startsWith("http://") || url.startsWith("https://"))) { //$NON-NLS-1$ //$NON-NLS-2$
- // String defaultPrefix =
- // ContextCore.getPreferenceStore().getString(
- // TaskListPreferenceConstants.DEFAULT_URL_PREFIX);
- // if (url.equals(defaultPrefix)) {
- // getDescButton.setEnabled(false);
- // } else {
- getDescLink.setEnabled(true);
- // }
- } else {
- getDescLink.setEnabled(false);
- }
- }
-
- private void createPlanningSection(Composite parent) {
- Section section = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE);
- section.setText(Messages.TaskPlanningEditor_Personal_Planning);
- section.setLayout(new GridLayout());
- section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- section.setExpanded(true);
- section.addExpansionListener(new IExpansionListener() {
- public void expansionStateChanging(ExpansionEvent e) {
- form.reflow(true);
- }
-
- public void expansionStateChanged(ExpansionEvent e) {
- form.reflow(true);
- }
- });
-
- Composite sectionClient = toolkit.createComposite(section);
- section.setClient(sectionClient);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- layout.horizontalSpacing = 15;
- layout.makeColumnsEqualWidth = false;
- sectionClient.setLayout(layout);
- GridData clientDataLayout = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- sectionClient.setLayoutData(clientDataLayout);
-
- Composite nameValueComp = makeComposite(sectionClient, 3);
- Label label = toolkit.createLabel(nameValueComp, Messages.TaskPlanningEditor_Scheduled_for);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- scheduleDatePicker = new ScheduleDatePicker(nameValueComp, task, SWT.FLAT);
- GridData gd = new GridData();
- gd.widthHint = 135;
- scheduleDatePicker.setLayoutData(gd);
- scheduleDatePicker.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.adapt(scheduleDatePicker, false, false);
- toolkit.paintBordersFor(nameValueComp);
-
- scheduleDatePicker.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
- scheduleDatePicker.addPickerSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent arg0) {
- TaskPlanningEditor.this.markDirty(true);
- }
- });
-
- ImageHyperlink clearScheduledDate = toolkit.createImageHyperlink(nameValueComp, SWT.NONE);
- clearScheduledDate.setImage(CommonImages.getImage(CommonImages.REMOVE));
- clearScheduledDate.setToolTipText(Messages.TaskPlanningEditor_Clear);
- clearScheduledDate.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- scheduleDatePicker.setScheduledDate(null);
- (task).setReminded(false);
- TaskPlanningEditor.this.markDirty(true);
- }
- });
-
- nameValueComp = makeComposite(sectionClient, 3);
- label = toolkit.createLabel(nameValueComp, Messages.TaskPlanningEditor_Due);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- dueDatePicker = new DatePicker(nameValueComp, SWT.FLAT, DatePicker.LABEL_CHOOSE, true,
- TasksUiPlugin.getDefault().getPreferenceStore().getInt(ITasksUiPreferenceConstants.PLANNING_ENDHOUR));
-
- Calendar calendar = TaskActivityUtil.getCalendar();
-
- if (task.getDueDate() != null) {
- calendar.setTime(task.getDueDate());
- dueDatePicker.setDate(calendar);
- }
-
- dueDatePicker.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
- dueDatePicker.addPickerSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- if (!areEqual(dueDatePicker.getDate(), task.getDueDate())) {
- TaskPlanningEditor.this.markDirty(true);
- }
- }
- });
-
- dueDatePicker.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.adapt(dueDatePicker, false, false);
- toolkit.paintBordersFor(nameValueComp);
-
- ImageHyperlink clearDueDate = toolkit.createImageHyperlink(nameValueComp, SWT.NONE);
- clearDueDate.setImage(CommonImages.getImage(CommonImages.REMOVE));
- clearDueDate.setToolTipText(Messages.TaskPlanningEditor_Clear);
- clearDueDate.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- dueDatePicker.setDate(null);
- if (!areEqual(dueDatePicker.getDate(), task.getDueDate())) {
- TaskPlanningEditor.this.markDirty(true);
- }
- }
- });
-
- // disable due date picker if it's a repository due date
- if (task != null) {
- try {
- TaskData taskData = TasksUi.getTaskDataManager().getTaskData(task);
- if (taskData != null) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(taskData.getConnectorKind());
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(
- taskData.getConnectorKind(), taskData.getRepositoryUrl());
- if (connector != null && taskRepository != null
- && connector.hasRepositoryDueDate(taskRepository, task, taskData)) {
- dueDatePicker.setEnabled(false);
- clearDueDate.setEnabled(false);
- }
- }
- } catch (CoreException e) {
- // ignore
- }
- }
-
- // Estimated time
- nameValueComp = makeComposite(sectionClient, 3);
- label = toolkit.createLabel(nameValueComp, Messages.TaskPlanningEditor_Estimated_hours);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
-
- estimated = new Spinner(nameValueComp, SWT.FLAT);
- toolkit.adapt(estimated, false, false);
- estimated.setSelection(task.getEstimatedTimeHours());
- estimated.setDigits(0);
- estimated.setMaximum(100);
- estimated.setMinimum(0);
- estimated.setIncrement(1);
- estimated.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- TaskPlanningEditor.this.markDirty(true);
- }
- });
-
- estimated.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- toolkit.paintBordersFor(nameValueComp);
- GridData estimatedDataLayout = new GridData();
- estimatedDataLayout.widthHint = 30;
- estimated.setLayoutData(estimatedDataLayout);
-
- ImageHyperlink clearEstimated = toolkit.createImageHyperlink(nameValueComp, SWT.NONE);
- clearEstimated.setImage(CommonImages.getImage(CommonImages.REMOVE));
- clearEstimated.setToolTipText(Messages.TaskPlanningEditor_Clear);
- clearEstimated.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- estimated.setSelection(0);
- TaskPlanningEditor.this.markDirty(true);
- }
- });
-
- // Active Time
- nameValueComp = makeComposite(sectionClient, 3);
- GridDataFactory.fillDefaults().applyTo(nameValueComp);
-
- label = toolkit.createLabel(nameValueComp, Messages.TaskPlanningEditor_Active);
- label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- label.setToolTipText(Messages.TaskPlanningEditor_Time_working_on_this_task);
-
- String elapsedTimeString = Messages.TaskPlanningEditor_0_seconds;
- try {
- elapsedTimeString = TasksUiInternal.getFormattedDuration(TasksUiPlugin.getTaskActivityManager()
- .getElapsedTime(task), false);
- if (elapsedTimeString.equals("")) { //$NON-NLS-1$
- elapsedTimeString = Messages.TaskPlanningEditor_0_seconds;
- }
- } catch (RuntimeException e) {
- // FIXME what exception is caught here?
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not format elapsed time", e)); //$NON-NLS-1$
- }
-
- final Text elapsedTimeText = toolkit.createText(nameValueComp, elapsedTimeString);
- elapsedTimeText.setText(elapsedTimeString);
-
- GridData td = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
- td.grabExcessHorizontalSpace = true;
- elapsedTimeText.setLayoutData(td);
- elapsedTimeText.setEditable(false);
-
- timingListener = new TaskActivityAdapter() {
-
- @Override
- public void elapsedTimeUpdated(ITask task, long newElapsedTime) {
- if (task.equals(TaskPlanningEditor.this.task)) {
- String elapsedTimeString = Messages.TaskPlanningEditor_0_seconds;
- try {
- elapsedTimeString = TasksUiInternal.getFormattedDuration(newElapsedTime, false);
- if (elapsedTimeString.equals("")) { //$NON-NLS-1$
- elapsedTimeString = Messages.TaskPlanningEditor_0_seconds;
- }
-
- } catch (RuntimeException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not format elapsed time", e)); //$NON-NLS-1$
- }
- final String elapsedString = elapsedTimeString;
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-
- public void run() {
- if (!elapsedTimeText.isDisposed()) {
- elapsedTimeText.setText(elapsedString);
- }
- }
- });
-
- }
- }
- };
-
- TasksUiPlugin.getTaskActivityManager().addActivityListener(timingListener);
-
- ImageHyperlink resetActivityTimeButton = toolkit.createImageHyperlink(nameValueComp, SWT.NONE);
- resetActivityTimeButton.setImage(CommonImages.getImage(CommonImages.REMOVE));
- resetActivityTimeButton.setToolTipText(Messages.TaskPlanningEditor_Reset);
- resetActivityTimeButton.addHyperlinkListener(new HyperlinkAdapter() {
-
- @Override
- public void linkActivated(HyperlinkEvent e) {
- if (MessageDialog.openConfirm(TaskPlanningEditor.this.getSite().getShell(),
- Messages.TaskPlanningEditor_Confirm_Activity_Time_Deletion,
- Messages.TaskPlanningEditor_Do_you_wish_to_reset_your_activity_time_on_this_task_)) {
- MonitorUi.getActivityContextManager().removeActivityTime(task.getHandleIdentifier(), 0l,
- System.currentTimeMillis());
- }
- }
- });
-
- toolkit.paintBordersFor(sectionClient);
- }
-
- private Composite makeComposite(Composite parent, int col) {
- Composite nameValueComp = toolkit.createComposite(parent);
- GridLayout layout = new GridLayout(3, false);
- layout.marginHeight = 3;
- nameValueComp.setLayout(layout);
- return nameValueComp;
- }
-
- private void createNotesSection(Composite parent) {
- Section section = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR);
- section.setText(Messages.TaskPlanningEditor_Notes);
- section.setExpanded(true);
- section.setLayout(new GridLayout());
- section.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Composite container = toolkit.createComposite(section);
- section.setClient(container);
- container.setLayout(new GridLayout());
- GridData notesData = new GridData(GridData.FILL_BOTH);
- notesData.grabExcessVerticalSpace = true;
- container.setLayoutData(notesData);
-
- TaskRepository repository = null;
- if (task != null && !(task instanceof LocalTask)) {
- ITask repositoryTask = task;
- repository = TasksUi.getRepositoryManager().getRepository(repositoryTask.getConnectorKind(),
- repositoryTask.getRepositoryUrl());
- }
-
- noteEditor = addTextEditor(repository, container, task.getNotes(), true, SWT.FLAT | SWT.MULTI | SWT.WRAP
- | SWT.V_SCROLL);
- GridDataFactory.fillDefaults().minSize(NOTES_MINSIZE, NOTES_MINSIZE).grab(true, true).applyTo(
- noteEditor.getControl());
- noteEditor.getControl().setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- noteEditor.setEditable(true);
- noteEditor.addTextListener(new ITextListener() {
- public void textChanged(TextEvent event) {
- if (!task.getNotes().equals(noteEditor.getTextWidget().getText())) {
- markDirty(true);
- }
- }
- });
-
- toolkit.paintBordersFor(container);
- }
-
- private Font getCommentFont() {
- IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
- Font font = themeManager.getCurrentTheme().getFontRegistry().get(CommonThemes.FONT_EDITOR_COMMENT);
- return font;
- }
-
- private String getTaskDateString(ITask task) {
- if (task == null) {
- return ""; //$NON-NLS-1$
- }
- if (task.getCompletionDate() == null) {
- return ""; //$NON-NLS-1$
- }
-
- String completionDateString = ""; //$NON-NLS-1$
- try {
- completionDateString = DateFormat.getDateInstance(DateFormat.LONG).format(task.getCompletionDate());
- } catch (RuntimeException e) {
- // FIXME what exception is caught here?
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not format date", e)); //$NON-NLS-1$
- return completionDateString;
- }
- return completionDateString;
- }
-
- @Override
- public void dispose() {
- if (textSupport != null) {
- textSupport.dispose();
- }
- if (timingListener != null) {
- TasksUiPlugin.getTaskActivityManager().removeActivityListener(timingListener);
- }
- TasksUiInternal.getTaskList().removeChangeListener(TASK_LIST_LISTENER);
- }
-
- @Override
- public String toString() {
- return Messages.TaskPlanningEditor__info_editor_for_task_ + task + ")"; //$NON-NLS-1$
- }
-
- /** for testing - should cause dirty state */
- public void setNotes(String notes) {
- this.noteEditor.getTextWidget().setText(notes);
- }
-
- /** for testing - should cause dirty state */
- public void setDescription(String desc) {
- this.summaryEditor.getTextWidget().setText(desc);
- }
-
- /** for testing */
- public String getDescription() {
- return this.summaryEditor.getTextWidget().getText();
- }
-
- private boolean areEqual(Object oldValue, Object newValue) {
- return (oldValue != null) ? oldValue.equals(newValue) : oldValue == newValue;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java
deleted file mode 100644
index ee5ca57b8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskRelationHyperlinkDetector.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskRelationHyperlinkDetector extends AbstractTaskHyperlinkDetector {
-
- private static Pattern HYPERLINK_PATTERN = Pattern.compile("([^\\s,]+)"); //$NON-NLS-1$
-
- @Override
- public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
- if (region.getLength() > 0) {
- return super.detectHyperlinks(textViewer, region, canShowMultipleHyperlinks);
- } else {
- if (textViewer.getDocument() == null) {
- return null;
- }
-
- TaskRepository taskRepository = getTaskRepository(textViewer);
- if (taskRepository != null) {
- String prefix = extractPrefix(textViewer, region.getOffset());
- String postfix = extractPostfix(textViewer, region.getOffset());
- String taskKey = prefix + postfix;
- if (taskKey.length() > 0) {
- Region hyperlinkRegion = new Region(region.getOffset() - prefix.length(), taskKey.length());
- return new IHyperlink[] { new TaskHyperlink(hyperlinkRegion, taskRepository, taskKey) };
- }
- }
- }
- return null;
- }
-
- @Override
- protected List<IHyperlink> detectHyperlinks(ITextViewer textViewer, String content, int index, int contentOffset) {
- List<IHyperlink> links = null;
- for (TaskRepository repository : getTaskRepositories(textViewer)) {
- Matcher m = HYPERLINK_PATTERN.matcher(content);
- while (m.find()) {
- if (links == null) {
- links = new ArrayList<IHyperlink>();
- }
- Region region = new Region(contentOffset + m.start(), m.end() - m.start());
- links.add(new TaskHyperlink(region, repository, m.group()));
- }
- }
- return links;
- }
-
- private String extractPrefix(ITextViewer viewer, int offset) {
- int i = offset;
- IDocument document = viewer.getDocument();
- if (i > document.getLength()) {
- return ""; //$NON-NLS-1$
- }
-
- try {
- if (isSeparator(document.getChar(i))) {
- return ""; //$NON-NLS-1$
- }
- while (i > 0) {
- char ch = document.getChar(i - 1);
- if (isSeparator(ch)) {
- break;
- }
- i--;
- }
- return document.get(i, offset - i);
- } catch (BadLocationException e) {
- return ""; //$NON-NLS-1$
- }
- }
-
- private String extractPostfix(ITextViewer viewer, int offset) {
- int i = offset;
- IDocument document = viewer.getDocument();
- int length = document.getLength();
- if (i > length) {
- return ""; //$NON-NLS-1$
- }
-
- try {
- if (isSeparator(document.getChar(i))) {
- return ""; //$NON-NLS-1$
- }
- while (i < length - 1) {
- char ch = document.getChar(i + 1);
- if (isSeparator(ch)) {
- break;
- }
- i++;
- }
- return document.get(offset, i - offset + 1);
- } catch (BadLocationException e) {
- }
- return ""; //$NON-NLS-1$
- }
-
- private boolean isSeparator(char ch) {
- return Character.isWhitespace(ch) || ch == ',';
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java
deleted file mode 100644
index 8ba190b74..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.URLHyperlink;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-
-/**
- * @author Rob Elves
- */
-public class TaskUrlHyperlink extends URLHyperlink {
-
- public TaskUrlHyperlink(IRegion region, String urlString) {
- super(region, urlString);
- }
-
- @Override
- public void open() {
- TasksUiUtil.openTask(getURLString());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java
deleted file mode 100644
index 32f0a54c3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * David Green - fix for bug 266693
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-
-/**
- * Detects URLs based on a regular expression.
- *
- * @author David Green
- */
-public class TaskUrlHyperlinkDetector extends AbstractHyperlinkDetector {
-
- // based on RFC 3986
- // even though it's valid, the platform hyperlink detector doesn't detect hyperlinks that end with '.', ',' or ')'
- // so we do the same here
- private static final Pattern URL_PATTERN = Pattern.compile("([a-zA-Z][a-zA-Z+.-]{0,10}://[a-zA-Z0-9%._~!$&?#'()*+,;:@/=-]*[a-zA-Z0-9%_~!$&?#'(*+;:@/=-])"); //$NON-NLS-1$
-
- public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
- if (region == null || textViewer == null) {
- return null;
- }
-
- IDocument document = textViewer.getDocument();
-
- int offset = region.getOffset();
- if (document == null) {
- return null;
- }
-
- IRegion lineInfo;
- String line;
- try {
- lineInfo = document.getLineInformationOfOffset(offset);
- line = document.get(lineInfo.getOffset(), lineInfo.getLength());
- } catch (BadLocationException ex) {
- return null;
- }
-
- // offset of the region in the line
- final int offsetInLine = offset - lineInfo.getOffset();
- final int regionLength = region.getLength();
-
- List<IHyperlink> hyperlinks = null;
- Matcher matcher = URL_PATTERN.matcher(line);
- while (matcher.find()) {
- int urlOffsetInLine = matcher.start(1);
- int endUrlOffsetInLine = matcher.end(1);
- if ((regionLength == 0 && offsetInLine >= urlOffsetInLine && offsetInLine <= endUrlOffsetInLine)
- || ((regionLength > 0 && offsetInLine <= urlOffsetInLine && (offsetInLine + regionLength) > urlOffsetInLine))) {
- // region length of 0 and offset hits within the hyperlink url
- // OR
- // region spans the start of the hyperlink url.
-
- // verify that the URL is valid
- try {
- String urlString = matcher.group(1);
- new URL(urlString);
-
- // URL looks okay, so add a hyperlink
- if (hyperlinks == null) {
- hyperlinks = new ArrayList<IHyperlink>(5);
- }
- IRegion urlRegion = new Region(lineInfo.getOffset() + urlOffsetInLine, endUrlOffsetInLine
- - urlOffsetInLine);
- hyperlinks.add(new TaskUrlHyperlink(urlRegion, urlString));
- } catch (MalformedURLException e) {
- // ignore
- }
- }
- }
- return hyperlinks == null ? null : hyperlinks.toArray(new IHyperlink[hyperlinks.size()]);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TextAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TextAttributeEditor.java
deleted file mode 100644
index e6a2459f9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TextAttributeEditor.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- */
-public class TextAttributeEditor extends AbstractAttributeEditor {
-
- private Text text;
-
- public TextAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.SINGLE, ColumnSpan.SINGLE));
- }
-
- protected Text getText() {
- return text;
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- if (isReadOnly()) {
- text = new Text(parent, SWT.FLAT | SWT.READ_ONLY);
- text.setFont(EditorUtil.TEXT_FONT);
- text.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE);
- text.setText(getValue());
- } else {
- text = toolkit.createText(parent, getValue(), SWT.FLAT);
- text.setFont(EditorUtil.TEXT_FONT);
- text.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.TRUE);
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- setValue(text.getText());
- CommonFormUtil.ensureVisible(text);
- }
- });
- }
- toolkit.adapt(text, false, false);
- setControl(text);
- }
-
- public String getValue() {
- return getAttributeMapper().getValue(getTaskAttribute());
- }
-
- public void setValue(String text) {
- getAttributeMapper().setValue(getTaskAttribute(), text);
- attributeChanged();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TraverseOnTabKeyListener.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TraverseOnTabKeyListener.java
deleted file mode 100644
index 3d21fd125..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TraverseOnTabKeyListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.editors;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.VerifyKeyListener;
-import org.eclipse.swt.events.VerifyEvent;
-
-class TraverseOnTabKeyListener implements VerifyKeyListener {
-
- public void verifyKey(VerifyEvent event) {
- // if there is a tab key, do not "execute" it and instead traverse to the next control
- if (event.keyCode == SWT.TAB) {
- event.doit = false;
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties
deleted file mode 100644
index 501e7fab8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-AbstractReplyToCommentAction_Reply=Reply
-
-AttachmentSizeFormatter_0_bytes=0 bytes
-AttachmentSizeFormatter_0_GB=0.00 GB
-AttachmentSizeFormatter_0_KB=0.00 KB
-AttachmentSizeFormatter_0_MB=0.00 MB
-AttachmentSizeFormatter_1_byte=1 byte
-
-AttachmentTableLabelProvider_File_=File:
-AttachmentTableLabelProvider_Patch=\ Patch
-AttachmentTableLabelProvider_Task_Context=\ Task Context
-AttachmentTableLabelProvider_Type_=Type:
-BrowserPreviewViewer_Error=Error
-BrowserPreviewViewer_Formatting_Wiki_Text=Formatting Wiki Text
-BrowserPreviewViewer_Loading_preview_=Loading preview...
-BrowserPreviewViewer_The_repository_does_not_support_HTML_preview=The repository does not support HTML preview.
-
-CategoryEditor_Category_Summary=Category Summary
-CategoryEditor_Description_=Description:
-CategoryEditor_URL_=URL:
-
-CategoryEditorInput_Category_Editor=Category Editor
-
-CommentGroupStrategy_Current=Current
-CommentGroupStrategy_Older=Older
-CommentGroupStrategy_Recent=Recent
-
-DateAttributeEditor_Clear=Clear
-
-PlanningPageFactory_Planning=Planning
-
-RichTextAttributeEditor_Viewer_Source=View Unformatted Text
-
-TaskAttachmentDropListener_Note_that_only_the_first_file_dragged_will_be_attached=Note that only the first file dragged will be attached.
-TaskEditorActionContributor_Add_to_X=Add to {0}
-
-TaskEditorActionPart_Actions=Actions
-TaskEditorActionPart_Add_to_Category=Add to Category
-TaskEditorActionPart_Attach_Context=Attach Context
-TaskEditorActionPart_Submit=Submit
-TaskEditorActionPart_Submit_to_X=Submit to {0}
-TaskEditorAttachmentPart_Attach_=Attach...
-TaskEditorAttachmentPart_Attach__Screenshot=Attach Screenshot...
-TaskEditorAttachmentPart_Attachments=Attachments
-TaskEditorAttachmentPart_Created=Created
-TaskEditorAttachmentPart_Creator=Creator
-TaskEditorAttachmentPart_Description=Description
-TaskEditorAttachmentPart_Name=Name
-TaskEditorAttachmentPart_No_attachments=No attachments
-TaskEditorAttachmentPart_Size=Size
-
-TaskEditorAttributePart_Attributes=Attributes
-TaskEditorAttributePart_Refresh_Attributes=Refresh Attributes
-TaskEditorAttributePart_Update_Failed=Update Failed
-TaskEditorAttributePart_Updating_of_repository_configuration_failed=Updating of repository configuration failed
-
-TaskEditorCommentPart_0=\ (
-TaskEditorCommentPart_1=)
-TaskEditorCommentPart_Collapse_Comments=Collapse Comments
-TaskEditorCommentPart_Comments=Comments
-TaskEditorCommentPart_Expand_Comments=Expand Comments
-
-TaskEditorDescriptionPart_Description=Description
-TaskEditorDescriptionPart_Detector=Detector:
-TaskEditorDescriptionPart_Duplicate_Detection_Failed=Duplicate Detection Failed
-TaskEditorDescriptionPart_Duplicate_Detection=Duplicate Detection
-TaskEditorDescriptionPart_The_duplicate_detector_did_not_return_a_valid_query=The duplicate detector did not return a valid query.
-TaskEditorDescriptionPart_Search=Search
-
-TaskEditorNewCommentPart_New_Comment=New Comment
-TaskEditorOutlineNode_Comments=Comments
-TaskEditorOutlineNode_Description=Description
-TaskEditorOutlineNode_New_Comment=New Comment
-TaskEditorOutlineNode_Task_=Task
-
-TaskEditorPeoplePart_People=People
-
-TaskEditorPlanningPart_0_SECOUNDS=0 seconds
-TaskEditorPlanningPart_Active=Active:
-TaskEditorPlanningPart_Clear=Clear
-TaskEditorPlanningPart_Confirm_Activity_Time_Deletion=Confirm Activity Time Deletion
-TaskEditorPlanningPart_Do_you_wish_to_reset_your_activity_time_on_this_task_=Do you wish to reset your activity time on this task?\n\nThis will take immediate affect and can not be undone.
-TaskEditorPlanningPart_Due=Due:
-TaskEditorPlanningPart_Estimated=Estimated:
-TaskEditorPlanningPart_Personal_Planning=Personal Planning
-TaskEditorPlanningPart_Reset=Reset
-TaskEditorPlanningPart_Scheduled=Scheduled:
-TaskEditorPlanningPart_Time_working_on_this_task=Time working on this task
-
-TaskEditorRichTextPart_Browser_Preview=Browser Preview
-TaskEditorRichTextPart_Maximize=Maximize
-TaskEditorRichTextPart_Preview=Preview
-
-TaskEditorSummaryPart_Summary=Summary
-
-TaskPlanningEditor_0_seconds=0 seconds
-TaskPlanningEditor_Active=Active:
-TaskPlanningEditor_Clear=Clear
-TaskPlanningEditor_Complete=Complete
-TaskPlanningEditor_Completed=Completed:
-TaskPlanningEditor_Confirm_Activity_Time_Deletion=Confirm Activity Time Deletion
-TaskPlanningEditor_Created=Created:
-TaskPlanningEditor_Do_you_wish_to_reset_your_activity_time_on_this_task_=Do you wish to reset your activity time on this task?\n\nThis will take immediate affect and can not be undone.
-TaskPlanningEditor_Due=Due:
-TaskPlanningEditor_Estimated_hours=Estimated hours:
-TaskPlanningEditor_Incomplete=Incomplete
-TaskPlanningEditor__info_editor_for_task_=(info editor for task:
-TaskPlanningEditor_Notes=Notes
-TaskPlanningEditor_Open_with_Web_Browser=Open with Web Browser
-TaskPlanningEditor_Personal_Planning=Personal Planning
-TaskPlanningEditor_Planning=Planning
-TaskPlanningEditor_Priority=Priority:
-TaskPlanningEditor_Reset=Reset
-TaskPlanningEditor_Retrieve_task_description_from_URL=Retrieve task description from URL
-TaskPlanningEditor_Scheduled_for=Scheduled for:
-TaskPlanningEditor_Status=Status:
-TaskPlanningEditor_Time_working_on_this_task=Time working on this task
-TaskPlanningEditor_URL=URL:
-
-AbstractTaskEditorPage_Comment_required=Comment required
-AbstractTaskEditorPage_Could_not_save_task=Could not save task
-AbstractTaskEditorPage_Error_opening_task=Error opening task
-AbstractTaskEditorPage_Failed_to_read_task_data_=Failed to read task data:
-AbstractTaskEditorPage_History=History
-AbstractTaskEditorPage_Open_failed=Open failed
-AbstractTaskEditorPage_Open_with_Web_Browser=Open with Web Browser
-AbstractTaskEditorPage_Save_failed=Save failed
-AbstractTaskEditorPage_Submit_failed=Submit failed
-AbstractTaskEditorPage_Submit_failed_=Submit failed:
-AbstractTaskEditorPage_Synchronize_to_retrieve_task_data=Synchronize to retrieve task data
-AbstractTaskEditorPage_Synchronize_to_update_editor_contents=Synchronize to update editor contents
-AbstractTaskEditorPage_Add_task_to_tasklist=Not in Task List. Click to add.
-AbstractTaskEditorPage_Task_has_incoming_changes=Task has incoming changes
-AbstractTaskEditorPage_Title=Title
-AbstractTaskEditorPage_Unable_to_submit_at_this_time=Unable to submit at this time. Check connectivity and retry.
-
-AttributeEditorToolkit_Content_Assist_Available__X_=Content Assist Available ({0})
-TaskEditor_Task_=Task:
-TaskEditor_Task_added_to_the_Uncategorized_container=Task added to the Uncategorized container
-
-TaskEditorExtensionSettingsContribution__default_=\ (default)
-TaskEditorExtensionSettingsContribution_Editor=Task Editor Settings
-TaskEditorExtensionSettingsContribution_Plain_Text=Plain Text
-TaskEditorExtensionSettingsContribution_Select_the_capabilities_of_the_task_editor=Select the capabilities of the task editor
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/messages.properties
deleted file mode 100644
index 35113dfd3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/messages.properties
+++ /dev/null
@@ -1,74 +0,0 @@
-ActivityExternalizationParticipant_Activity_Context=Activity Context
-
-AddExistingTaskJob_Adding_task_X_=Adding task: "{0}"...
-ChangeActivityHandleOperation_Activity_migration=Activity migration
-
-DialogErrorReporter_Mylyn_Error=Mylyn Error
-DialogErrorReporter_Please_report_the_following_error_at=Please report the following error at:\n\
-\n\
-http://bugs.eclipse.org/bugs/enter_bug.cgi?product=Mylyn\n\
-\n\
-Or via the popup menu in the Error Log view (see Window -> Show View)
-
-MoveToCategoryMenuContributor_Move_to=Move to
-
-OpenRepositoryTaskJob_Could_not_find_repository_configuration_for_X=Could not find repository configuration for {0}.
-OpenRepositoryTaskJob_Opening_Remote_Task=Opening Remote Task
-OpenRepositoryTaskJob_Opening_repository_task_X=Opening repository task {0}
-OpenRepositoryTaskJob_Please_set_up_repository_via_X=Please set up repository via {0}.
-OpenRepositoryTaskJob_Repository_Not_Found=Repository Not Found
-OpenRepositoryTaskJob_Unable_to_open_task=Unable to open task
-
-RefactorRepositoryUrlOperation_Repository_URL_update=Repository URL update
-
-ScheduleTaskMenuContributor_Cannot_schedule_completed_tasks=Cannot schedule completed tasks
-ScheduleTaskMenuContributor_Choose_Date_=Choose Date...
-ScheduleTaskMenuContributor_Future=Future
-ScheduleTaskMenuContributor_Not_Scheduled=Not Scheduled
-ScheduleTaskMenuContributor_Schedule_for=Schedule for
-
-TaskHistoryDropDown_Activate_Task_=Activate Task...
-TaskHistoryDropDown_Deactivate_Task=Deactivate Task
-
-TaskJobFactory_Receiving_configuration=Receiving configuration
-TaskJobFactory_Refreshing_repository_configuration=Refreshing repository configuration
-
-TaskListBackupManager_Error_occured_during_scheduled_tasklist_backup=Error occured during scheduled tasklist backup.\nCheck settings on Tasklist preferences page.
-TaskListBackupManager_Scheduled_task_data_backup=Scheduled task data backup
-
-TaskListNotificationManager_Open_Notification_Job=Open Notification Job
-
-TaskRepositoryLocationUi_Enter_HTTP_password=Enter HTTP password
-TaskRepositoryLocationUi_Enter_proxy_password=Enter proxy password
-TaskRepositoryLocationUi_Enter_repository_password=Enter repository password
-
-TaskSearchPage_ERROR_Unable_to_present_query_page=ERROR: Unable to present query page, ensure repository configuration is valid and retry
-
-TaskSearchPage_No_task_found_matching_key_=No task found matching key:
-TaskSearchPage_Repository_Search=Repository Search
-TaskSearchPage_Select_Repository_=Se&lect Repository:
-TaskSearchPage_Task_Key_ID=Task Key/ID:
-TaskSearchPage_Task_Search=Task Search
-
-TasksReminderDialog_Description=Description
-TasksReminderDialog_Dismiss_All=Dismiss All
-TasksReminderDialog_Dismiss_Selected=Dismiss Selected
-TasksReminderDialog_Priority=Priority
-TasksReminderDialog_Remind_tommorrow=Remind tomorrow
-TasksReminderDialog_Reminder_Day=Reminder Day
-TasksReminderDialog_Reminders=Reminders
-
-TasksUiPlugin_Initializing_Task_List=Initializing Task List
-TasksUiPlugin_Task_Repositories=Task Repositories
-TasksUiPlugin_Load_Data_Directory=Load Data Directory
-
-TaskTrimWidget__no_active_task_=<no active task>
-TaskTrimWidget__no_task_active_=<no task active>
-
-AbstractRepositoryConnectorUi_Task=Task
-
-TaskElementLabelProvider__no_summary_available_=: <no summary available>
-TaskHyperlink_Could_not_determine_repository_for_report=Could not determine repository for report
-TaskHyperlink_Open_Task_X_in_X=Open Task {0} in {1}
-
-AbstractRetrieveTitleFromUrlJob_Retrieving_summary_from_URL=Retrieving summary from URL
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/Messages.java
deleted file mode 100644
index 8b9d50d42..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.notifications.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TaskDataDiff_more_;
-
- public static String TaskDiffUtil_attachment;
-
- public static String TaskDiffUtil_Comment_by_X;
-
- public static String TaskDiffUtil_Unknown;
-
- public static String TaskListNotificationPopup_Mark_Task_Read;
-
- public static String TaskListNotificationPopup_more;
-
- public static String TaskListNotifier_New_unread_task;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskAttributeDiff.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskAttributeDiff.java
deleted file mode 100644
index f7c0deff4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskAttributeDiff.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskAttributeDiff {
-
- private String attributeId;
-
- private final TaskAttribute newAttribute;
-
- private final List<String> newValues;
-
- private final TaskAttribute oldAttribute;
-
- private final List<String> oldValues;
-
- public TaskAttributeDiff(TaskAttribute oldAttribute, TaskAttribute newAttribute) {
- Assert.isTrue(oldAttribute != null || newAttribute != null);
- this.oldAttribute = oldAttribute;
- this.newAttribute = newAttribute;
- if (oldAttribute != null) {
- this.oldValues = oldAttribute.getTaskData().getAttributeMapper().getValueLabels(oldAttribute);
- this.attributeId = oldAttribute.getId();
- } else {
- this.oldValues = Collections.emptyList();
- }
- if (newAttribute != null) {
- this.newValues = newAttribute.getTaskData().getAttributeMapper().getValueLabels(newAttribute);
- this.attributeId = newAttribute.getId();
- } else {
- this.newValues = Collections.emptyList();
- }
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- TaskAttributeDiff other = (TaskAttributeDiff) obj;
- if (attributeId == null) {
- if (other.attributeId != null) {
- return false;
- }
- } else if (!attributeId.equals(other.attributeId)) {
- return false;
- }
- return true;
- }
-
- public List<String> getAddedValues() {
- List<String> result = new ArrayList<String>(getNewValues());
- if (getOldValues() != null) {
- result.removeAll(getOldValues());
- }
- return result;
- }
-
- public TaskAttribute getNewAttribute() {
- return newAttribute;
- }
-
- public List<String> getNewValues() {
- return newValues;
- }
-
- public TaskAttribute getOldAttribute() {
- return oldAttribute;
- }
-
- public List<String> getOldValues() {
- return oldValues;
- }
-
- public List<String> getRemovedValues() {
- List<String> result = new ArrayList<String>(getOldValues());
- if (getNewValues() != null) {
- result.removeAll(getNewValues());
- }
- return result;
- }
-
- public boolean hasChanges() {
- return !oldValues.equals(newValues);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((attributeId == null) ? 0 : attributeId.hashCode());
- return result;
- }
-
- public String getLabel() {
- if (newAttribute != null) {
- return newAttribute.getTaskData().getAttributeMapper().getLabel(newAttribute);
- } else {
- return oldAttribute.getTaskData().getAttributeMapper().getLabel(oldAttribute);
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDataDiff.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDataDiff.java
deleted file mode 100644
index 23a756790..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDataDiff.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryModel;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskDataDiff {
-
- private static final int MAX_CHANGED_ATTRIBUTES = 2;
-
- private final String[] ATTRIBUTES_IDS = new String[] { TaskAttribute.SUMMARY, TaskAttribute.DESCRIPTION,
- TaskAttribute.PRODUCT, TaskAttribute.PRIORITY, TaskAttribute.USER_ASSIGNED, TaskAttribute.STATUS, };
-
- private final TaskData newTaskData;
-
- private final TaskData oldTaskData;
-
- private final Set<ITaskComment> newComments = new LinkedHashSet<ITaskComment>();
-
- private final Set<TaskAttributeDiff> changedAttributes = new LinkedHashSet<TaskAttributeDiff>();
-
- private final RepositoryModel repositoryModel;
-
- public TaskDataDiff(RepositoryModel repositoryModel, TaskData newTaskData, TaskData oldTaskData) {
- Assert.isNotNull(repositoryModel);
- Assert.isNotNull(newTaskData);
- this.repositoryModel = repositoryModel;
- this.newTaskData = newTaskData;
- this.oldTaskData = oldTaskData;
- parse();
- }
-
- public Collection<ITaskComment> getNewComments() {
- return newComments;
- }
-
- public Collection<TaskAttributeDiff> getChangedAttributes() {
- return changedAttributes;
- }
-
- private void parse() {
- for (String attributeId : ATTRIBUTES_IDS) {
- TaskAttribute newAttribute = newTaskData.getRoot().getMappedAttribute(attributeId);
- TaskAttribute oldAttribute = null;
- if (oldTaskData != null) {
- oldAttribute = oldTaskData.getRoot().getMappedAttribute(attributeId);
- }
- if (oldAttribute == null && newAttribute == null) {
- continue;
- }
- addChangedAttribute(oldAttribute, newAttribute, true);
- }
-
- // other attributes that have changed on newTaskData
- for (TaskAttribute newAttribute : newTaskData.getRoot().getAttributes().values()) {
- TaskAttribute oldAttribute = null;
- if (oldTaskData != null) {
- oldAttribute = oldTaskData.getRoot().getMappedAttribute(newAttribute.getPath());
- }
- addChangedAttribute(oldAttribute, newAttribute, false);
- }
- // other attributes that have been removed from newTaskData
- if (oldTaskData != null) {
- for (TaskAttribute oldAttribute : oldTaskData.getRoot().getAttributes().values()) {
- TaskAttribute newAttribute = newTaskData.getRoot().getMappedAttribute(oldAttribute.getPath());
- if (newAttribute == null) {
- addChangedAttribute(oldAttribute, newAttribute, false);
- }
- }
- }
- }
-
- private void addChangedAttribute(TaskAttribute oldAttribute, TaskAttribute newAttribute, boolean ignoreKind) {
- TaskAttribute attribute;
- if (newAttribute != null) {
- attribute = newAttribute;
- } else {
- attribute = oldAttribute;
- }
- String type = attribute.getMetaData().getType();
- if (TaskAttribute.TYPE_COMMENT.equals(type)) {
- addChangedComment(oldAttribute, newAttribute);
- } else if (TaskAttribute.TYPE_OPERATION.equals(type)) {
- // ignore
- } else if (ignoreKind || attribute.getMetaData().getKind() != null) {
- TaskAttributeDiff diff = new TaskAttributeDiff(oldAttribute, newAttribute);
- if (diff.hasChanges()) {
- changedAttributes.add(diff);
- }
- }
- }
-
- private void addChangedComment(TaskAttribute oldAttribute, TaskAttribute newAttribute) {
- if (oldAttribute == null) {
- ITaskComment comment = repositoryModel.createTaskComment(newAttribute);
- if (comment != null) {
- newComments.add(comment);
- }
- }
- }
-
- @Override
- public String toString() {
- return toString(60);
- }
-
- // TODO implement trim based on text width
- public String toString(int maxWidth) {
- StringBuilder sb = new StringBuilder();
- String sep = ""; //$NON-NLS-1$
- // append first comment
- int newCommentCount = newComments.size();
- if (newCommentCount > 0) {
- ITaskComment comment = newComments.iterator().next();
- sb.append(TaskDiffUtil.trim(TaskDiffUtil.commentToString(comment), 60));
- if (newCommentCount > 1) {
- sb.append(" (" + (newCommentCount - 1) + Messages.TaskDataDiff_more_); //$NON-NLS-1$
- }
- sep = "\n"; //$NON-NLS-1$
- }
- // append changed attributes
- int n = 0;
- for (TaskAttributeDiff attributeDiff : changedAttributes) {
- String label = attributeDiff.getLabel();
- if (label != null) {
- sb.append(sep);
- sb.append(" "); //$NON-NLS-1$
- sb.append(label);
- sb.append(" "); //$NON-NLS-1$
- sb.append(TaskDiffUtil.trim(TaskDiffUtil.listToString(attributeDiff.getRemovedValues()), 28));
- sb.append(" -> "); //$NON-NLS-1$
- sb.append(TaskDiffUtil.trim(TaskDiffUtil.listToString(attributeDiff.getAddedValues()), 28));
- if (++n == MAX_CHANGED_ATTRIBUTES) {
- break;
- }
- sep = "\n"; //$NON-NLS-1$
- }
- }
- return sb.toString();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java
deleted file mode 100644
index 7d8158d9a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskDiffUtil.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Drawable;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskDiffUtil {
-
- // could use the ellipsis glyph on some platforms "\u2026"
- private static final String ELLIPSIS = "..."; //$NON-NLS-1$
-
- private static int DRAW_FLAGS = SWT.DRAW_MNEMONIC | SWT.DRAW_TAB | SWT.DRAW_TRANSPARENT | SWT.DRAW_DELIMITER;
-
- public static String commentToString(ITaskComment comment) {
- StringBuilder sb = new StringBuilder();
- sb.append(MessageFormat.format(Messages.TaskDiffUtil_Comment_by_X, personToString(comment.getAuthor())));
- sb.append(": "); //$NON-NLS-1$
- sb.append(cleanCommentText(comment.getText()));
- return sb.toString();
- }
-
- private static String personToString(IRepositoryPerson author) {
- if (author == null) {
- return Messages.TaskDiffUtil_Unknown;
- } else if (author.getName() != null) {
- return author.getName();
- }
- return author.getPersonId();
- }
-
- public static String cleanCommentText(String value) {
- String text = ""; //$NON-NLS-1$
- String[] lines = value.split("\n"); //$NON-NLS-1$
- boolean attachment = false;
- boolean needSeparator = false;
- for (String line : lines) {
- // skip comments and info lines
- if (attachment) {
- text += Messages.TaskDiffUtil_attachment + line;
- needSeparator = true;
- attachment = false;
- } else if (line.startsWith(">") // //$NON-NLS-1$
- || line.matches("^\\s*\\(In reply to comment.*")) { //$NON-NLS-1$
- needSeparator = true;
- continue;
- } else if (line.startsWith("Created an attachment (id=")) { //$NON-NLS-1$
- attachment = true;
- } else {
- if (needSeparator) {
- if (!text.matches(".*\\p{Punct}\\s*")) { //$NON-NLS-1$
- text = text.trim();
- if (text.length() > 0) {
- text += "."; //$NON-NLS-1$
- }
- }
- }
- text += " " + line; //$NON-NLS-1$
- attachment = false;
- needSeparator = false;
- }
- }
- return foldSpaces(text);
- }
-
- public static String listToString(List<String> values) {
- if (values == null) {
- return ""; //$NON-NLS-1$
- }
-
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (String value : values) {
- if (!first) {
- sb.append(", "); //$NON-NLS-1$
- } else {
- first = false;
- }
- sb.append(foldSpaces(value));
- }
- return sb.toString();
- }
-
- public static String foldSpaces(String value) {
- return value.replaceAll("\\s+", " ").trim(); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public static String trim(String value, int length) {
- if (value.length() > length) {
- value = value.substring(0, length - 3) + "..."; //$NON-NLS-1$
- }
- return value;
- }
-
- /**
- * Note: Copied from CLabel.
- *
- * Shorten the given text <code>t</code> so that its length doesn't exceed the given width. The default
- * implementation replaces characters in the center of the original string with an ellipsis ("..."). Override if you
- * need a different strategy.
- *
- * @param gc
- * the gc to use for text measurement
- * @param t
- * the text to shorten
- * @param width
- * the width to shorten the text to, in pixels
- * @return the shortened text
- */
- public static final String shortenText2(Composite composite, String t, int width) {
- GC gc = new GC(composite);
-
- if (t == null) {
- return null;
- }
- int w = gc.textExtent(ELLIPSIS, DRAW_FLAGS).x;
- if (width <= w) {
- return t;
- }
- int l = t.length();
- int max = l / 2;
- int min = 0;
- int mid = (max + min) / 2 - 1;
- if (mid <= 0) {
- return t;
- }
- while (min < mid && mid < max) {
- String s1 = t.substring(0, mid);
- String s2 = t.substring(l - mid, l);
- int l1 = gc.textExtent(s1, DRAW_FLAGS).x;
- int l2 = gc.textExtent(s2, DRAW_FLAGS).x;
- if (l1 + w + l2 > width) {
- max = mid;
- mid = (max + min) / 2;
- } else if (l1 + w + l2 < width) {
- min = mid;
- mid = (max + min) / 2;
- } else {
- min = max;
- }
- }
-
- gc.dispose();
-
- if (mid == 0) {
- return t;
- }
- return t.substring(0, mid) + ELLIPSIS + t.substring(l - mid, l);
- }
-
- // From PerspectiveBarContributionItem
- public static String shortenText(Drawable composite, String text, int maxWidth) {
- String returnText = text;
- GC gc = new GC(composite);
- if (gc.textExtent(text).x > maxWidth) {
- for (int i = text.length(); i > 0; i--) {
- String subString = text.substring(0, i);
- subString = subString + "..."; //$NON-NLS-1$
- if (gc.textExtent(subString).x < maxWidth) {
- returnText = subString;
- break;
- }
- }
- }
- gc.dispose();
- return returnText;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotification.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotification.java
deleted file mode 100644
index 32e693dbe..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotification.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.Date;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class TaskListNotification extends AbstractNotification {
-
- protected final ITask task;
-
- protected Date date;
-
- private String description;
-
- private final DecoratingLabelProvider labelProvider = new DecoratingLabelProvider(
- new TaskElementLabelProvider(true), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
-
- private final Object token;
-
- public TaskListNotification(ITask task) {
- this(task, null);
- }
-
- public TaskListNotification(ITask task, Object token) {
- Assert.isNotNull(task);
- this.task = task;
- this.token = token;
- }
-
- @Override
- public String getDescription() {
- return description;
- }
-
- @Override
- public String getLabel() {
- return labelProvider.getText(task);
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- @Override
- public void open() {
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
- public void run() {
- TasksUiInternal.refreshAndOpenTaskListElement(task);
- }
- });
- }
-
- @Override
- public Image getNotificationImage() {
- return labelProvider.getImage(task);
- }
-
- protected ITask getTask() {
- return task;
- }
-
- @Override
- public Image getNotificationKindImage() {
- if (task.getSynchronizationState() == SynchronizationState.INCOMING_NEW) {
- return CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING_NEW);
- } else if (task.getSynchronizationState() == SynchronizationState.OUTGOING_NEW) {
- return CommonImages.getImage(CommonImages.OVERLAY_SYNC_OUTGOING_NEW);
- } else {
- return CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING);
- }
- }
-
- @Override
- public Date getDate() {
- return date;
- }
-
- @Override
- public void setDate(Date date) {
- this.date = date;
- }
-
- public int compareTo(AbstractNotification anotherNotification) throws ClassCastException {
- if (!(anotherNotification != null)) {
- throw new ClassCastException("A ITaskListNotification object expected."); //$NON-NLS-1$
- }
- Date anotherDate = (anotherNotification).getDate();
- if (date != null && anotherDate != null) {
- return date.compareTo(anotherDate);
- } else if (date == null) {
- return -1;
- } else {
- return 1;
- }
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((date == null) ? 0 : date.hashCode());
- result = prime * result + ((description == null) ? 0 : description.hashCode());
- result = prime * result + ((task == null) ? 0 : task.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- TaskListNotification other = (TaskListNotification) obj;
- if (date == null) {
- if (other.date != null) {
- return false;
- }
- } else if (!date.equals(other.date)) {
- return false;
- }
- if (description == null) {
- if (other.description != null) {
- return false;
- }
- } else if (!description.equals(other.description)) {
- return false;
- }
- if (task == null) {
- if (other.task != null) {
- return false;
- }
- } else if (!task.equals(other.task)) {
- return false;
- }
- return true;
- }
-
- @SuppressWarnings("unchecked")
- public Object getAdapter(Class adapter) {
- if (adapter == AbstractTask.class) {
- return task;
- }
- return null;
- }
-
- @Override
- public Object getToken() {
- return token;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationPopup.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationPopup.java
deleted file mode 100644
index 2a5b31646..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationPopup.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotificationPopup;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.TaskHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class TaskListNotificationPopup extends AbstractNotificationPopup {
-
- private static final String NOTIFICATIONS_HIDDEN = Messages.TaskListNotificationPopup_more;
-
- private static final int NUM_NOTIFICATIONS_TO_DISPLAY = 4;
-
- private List<AbstractNotification> notifications;
-
- public TaskListNotificationPopup(Shell parent) {
- super(parent.getDisplay());
- }
-
- public void setContents(List<AbstractNotification> notifications) {
- this.notifications = notifications;
- }
-
- public List<AbstractNotification> getNotifications() {
- return new ArrayList<AbstractNotification>(notifications);
- }
-
- @Override
- protected void createTitleArea(Composite parent) {
- super.createTitleArea(parent);
- }
-
- @Override
- protected void createContentArea(Composite parent) {
- int count = 0;
- for (final AbstractNotification notification : notifications) {
- Composite notificationComposite = new Composite(parent, SWT.NO_FOCUS);
- GridLayout gridLayout = new GridLayout(2, false);
- GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.TOP).applyTo(notificationComposite);
- notificationComposite.setLayout(gridLayout);
- notificationComposite.setBackground(parent.getBackground());
-
- if (count < NUM_NOTIFICATIONS_TO_DISPLAY) {
- final Label notificationLabelIcon = new Label(notificationComposite, SWT.NO_FOCUS);
- notificationLabelIcon.setBackground(parent.getBackground());
- notificationLabelIcon.setImage(notification.getNotificationKindImage());
- if (!(notification instanceof TaskListNotificationReminder)) {
- final AbstractTask task = (AbstractTask) notification.getAdapter(AbstractTask.class);
- if (task != null) {
- notificationLabelIcon.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseUp(MouseEvent e) {
- TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
- notificationLabelIcon.setImage(null);
- notificationLabelIcon.setToolTipText(null);
- }
- });
- notificationLabelIcon.setToolTipText(Messages.TaskListNotificationPopup_Mark_Task_Read);
- }
- }
-
- final TaskHyperlink itemLink = new TaskHyperlink(notificationComposite, SWT.BEGINNING | SWT.NO_FOCUS);
- GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.TOP).applyTo(itemLink);
-
- itemLink.setText(notification.getLabel());
- itemLink.setImage(notification.getNotificationImage());
- itemLink.setBackground(parent.getBackground());
- itemLink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- notification.open();
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- Shell windowShell = window.getShell();
- if (windowShell != null) {
- if (windowShell.getMinimized()) {
- windowShell.setMinimized(false);
- }
-
- windowShell.open();
- windowShell.forceActive();
- }
- }
- }
- });
-
- String descriptionText = null;
- if (notification.getDescription() != null) {
- descriptionText = notification.getDescription();
- }
- if (descriptionText != null && !descriptionText.trim().equals("")) { //$NON-NLS-1$
- Label descriptionLabel = new Label(notificationComposite, SWT.NO_FOCUS);
- descriptionLabel.setText(descriptionText);
- descriptionLabel.setBackground(parent.getBackground());
- GridDataFactory.fillDefaults()
- .span(2, SWT.DEFAULT)
- .grab(true, false)
- .align(SWT.FILL, SWT.TOP)
- .applyTo(descriptionLabel);
- }
- } else {
- int numNotificationsRemain = notifications.size() - count;
- TaskHyperlink remainingHyperlink = new TaskHyperlink(notificationComposite, SWT.NO_FOCUS);
- remainingHyperlink.setBackground(parent.getBackground());
-
- remainingHyperlink.setText(numNotificationsRemain + " " + NOTIFICATIONS_HIDDEN); //$NON-NLS-1$
- GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).applyTo(remainingHyperlink);
- remainingHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TasksUiUtil.openTasksViewInActivePerspective().setFocus();
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- Shell windowShell = window.getShell();
- if (windowShell != null) {
- windowShell.setMaximized(true);
- windowShell.open();
- }
- }
- }
- });
- break;
- }
- count++;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationQueryIncoming.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationQueryIncoming.java
deleted file mode 100644
index 04c466529..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationQueryIncoming.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.Date;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Rob Elves
- */
-public class TaskListNotificationQueryIncoming extends TaskListNotification {
-
- public TaskListNotificationQueryIncoming(ITask task) {
- super(task);
- }
-
- @Override
- public String getDescription() {
- return task.getSummary();
- }
-
- @Override
- public int compareTo(AbstractNotification anotherNotification) throws ClassCastException {
- if (!(anotherNotification != null)) {
- throw new ClassCastException("A ITaskListNotification object expected."); //$NON-NLS-1$
- }
- Date anotherDate = (anotherNotification).getDate();
- if (date != null && anotherDate != null) {
- return date.compareTo(anotherDate);
- } else if (date == null) {
- return -1;
- } else {
- return 1;
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationReminder.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationReminder.java
deleted file mode 100644
index ddcf7bb26..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotificationReminder.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.Date;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Rob Elves
- * @author Mik Kersten
- */
-public class TaskListNotificationReminder extends TaskListNotification {
-
- public TaskListNotificationReminder(AbstractTask task) {
- super(task);
- }
-
- @Override
- public Image getNotificationKindImage() {
- return CommonImages.getImage(CommonImages.OVERLAY_DATE_DUE);
- }
-
- @Override
- public int compareTo(AbstractNotification anotherNotification) throws ClassCastException {
- if (!(anotherNotification != null)) {
- throw new ClassCastException("A ITaskListNotification object expected."); //$NON-NLS-1$
- }
- Date anotherDate = (anotherNotification).getDate();
- if (date != null && anotherDate != null) {
- return date.compareTo(anotherDate);
- } else if (date == null) {
- return -1;
- } else {
- return 1;
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotifier.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotifier.java
deleted file mode 100644
index ff11b4077..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/TaskListNotifier.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.notifications;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryModel;
-import org.eclipse.mylyn.internal.tasks.core.data.ITaskDataManagerListener;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManagerEvent;
-import org.eclipse.mylyn.internal.tasks.ui.ITaskListNotificationProvider;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskListNotifier implements ITaskDataManagerListener, ITaskListNotificationProvider {
-
- private final TaskDataManager taskDataManager;
-
- private final List<TaskListNotification> notificationQueue = new ArrayList<TaskListNotification>();
-
- private final RepositoryModel repositoryModel;
-
- public TaskListNotifier(RepositoryModel repositoryModel, TaskDataManager taskDataManager) {
- this.repositoryModel = repositoryModel;
- this.taskDataManager = taskDataManager;
- this.taskDataManager.addListener(this);
- }
-
- public TaskListNotification getNotification(ITask task, Object token) {
- if (task.getSynchronizationState() == SynchronizationState.INCOMING_NEW) {
- TaskListNotification notification = new TaskListNotification(task, token);
- notification.setDescription(Messages.TaskListNotifier_New_unread_task);
- return notification;
- } else if (task.getSynchronizationState() == SynchronizationState.INCOMING) {
- TaskDataDiff diff = getDiff(task);
- if (diff != null) {
- TaskListNotification notification = new TaskListNotification(task, token);
- notification.setDescription(diff.toString());
- return notification;
- }
- }
- return null;
- }
-
- public TaskDataDiff getDiff(ITask task) {
- ITaskDataWorkingCopy workingCopy;
- try {
- workingCopy = taskDataManager.getTaskDataState(task);
- if (workingCopy != null) {
- TaskDataDiff diff = new TaskDataDiff(repositoryModel, workingCopy.getRepositoryData(),
- workingCopy.getLastReadData());
- return diff;
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to get task data for task: \"" //$NON-NLS-1$
- + task + "\"", e)); //$NON-NLS-1$
- }
- return null;
- }
-
- public void taskDataUpdated(TaskDataManagerEvent event) {
- if (event.getToken() != null && event.getTaskDataChanged()) {
- AbstractRepositoryConnectorUi connectorUi = TasksUi.getRepositoryConnectorUi(event.getTaskData()
- .getConnectorKind());
- if (!connectorUi.hasCustomNotifications()) {
- TaskListNotification notification = getNotification(event.getTask(), event.getToken());
- if (notification != null) {
- synchronized (notificationQueue) {
- notificationQueue.add(notification);
- }
- }
- }
- }
- }
-
- public Set<AbstractNotification> getNotifications() {
- synchronized (notificationQueue) {
- if (notificationQueue.isEmpty()) {
- return Collections.emptySet();
- }
- HashSet<AbstractNotification> result = new HashSet<AbstractNotification>(notificationQueue);
- notificationQueue.clear();
- return result;
- }
- }
-
- public void editsDiscarded(TaskDataManagerEvent event) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/messages.properties
deleted file mode 100644
index 794076479..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/notifications/messages.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-TaskDataDiff_more_=\ more)
-
-TaskDiffUtil_attachment=\ attachment:
-TaskDiffUtil_Comment_by_X=Comment by {0}
-TaskDiffUtil_Unknown=Unknown
-
-TaskListNotificationPopup_Mark_Task_Read=Mark Task Read
-TaskListNotificationPopup_more=more, Open Task List to view
-
-TaskListNotifier_New_unread_task=New unread task
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java
deleted file mode 100644
index aa5c47226..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.preferences;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.preferences.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TasksUiPreferencePage_Advanced;
-
- public static String TasksUiPreferencePage_Browse_;
-
- public static String TasksUiPreferencePage_Change_data_directory;
-
- public static String TasksUiPreferencePage_Confirm_Task_List_data_directory_change;
-
- public static String TasksUiPreferencePage_Data_directory_;
-
- public static String TasksUiPreferencePage_Destination_folder_does_not_exist;
-
- public static String TasksUiPreferencePage_Display_notifications_for_overdue_tasks_and_incoming_changes;
-
- public static String TasksUiPreferencePage_Enable_inactivity_timeouts;
-
- public static String TasksUiPreferencePage_Error_applying_Task_List_data_directory_changes;
-
- public static String TasksUiPreferencePage_Folder_Selection;
-
- public static String TasksUiPreferencePage_If_disabled;
-
- public static String TasksUiPreferencePage_minutes;
-
- public static String TasksUiPreferencePage_minutes_of_inactivity;
-
- public static String TasksUiPreferencePage_A_new_empty_Task_List_will_be_created_in_the_chosen_directory_if_one_does_not_already_exists;
-
- public static String TasksUiPreferencePage_Rich_Editor__Recommended_;
-
- public static String TasksUiPreferencePage_Scheduling;
-
- public static String TasksUiPreferencePage_See_X_for_configuring_Task_List_colors;
-
- public static String TasksUiPreferencePage_Specify_the_folder_for_tasks;
-
- public static String TasksUiPreferencePage_Stop_time_accumulation_after;
-
- public static String TasksUiPreferencePage_Synchronize_schedule_time_must_be_GT_0;
-
- public static String TasksUiPreferencePage_Synchronize_schedule_time_must_be_valid_integer;
-
- public static String TasksUiPreferencePage_Synchronize_with_repositories_every;
-
- public static String TasksUiPreferencePage_Synchronization;
-
- public static String TasksUiPreferencePage_Task_Data;
-
- public static String TasksUiPreferencePage_Task_Data_Directory_Error;
-
- public static String TasksUiPreferencePage_Task_Editing;
-
- public static String TasksUiPreferencePage_Task_Timing;
-
- public static String TasksUiPreferencePage_Use_the_Restore_dialog_to_recover_missing_tasks;
-
- public static String TasksUiPreferencePage_Web_Browser;
-
- public static String TasksUiPreferencePage_Week_Start;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java
deleted file mode 100644
index ea58e5187..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java
+++ /dev/null
@@ -1,772 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.preferences;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.monitor.ui.ActivityContextManager;
-import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin;
-import org.eclipse.mylyn.internal.provisional.commons.core.CommonMessages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.RestoreTaskListAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.dialogs.PreferenceLinkArea;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
- public static final String ID = "org.eclipse.mylyn.tasks.ui.preferences"; //$NON-NLS-1$
-
- private static final String FORWARDSLASH = "/"; //$NON-NLS-1$
-
- private static final String BACKSLASH_MULTI = "\\\\"; //$NON-NLS-1$
-
- private static final int MS_MINUTES = 60 * 1000;
-
- private Button useRichEditor;
-
- private Button useWebBrowser;
-
- private Text synchScheduleTime = null;
-
- private Button enableBackgroundSynch;
-
- private Text taskDirectoryText = null;
-
- private Button browse = null;
-
- private Button notificationEnabledButton = null;
-
- private int taskDataDirectoryAction = -1;
-
- private final FormToolkit toolkit;
-
- private Spinner timeoutMinutes;
-
- private Button timeoutEnabledButton;
-
- private ExpandableComposite advancedComposite;
-
- private Combo weekStartCombo;
-
- public TasksUiPreferencePage() {
- super();
- setPreferenceStore(TasksUiPlugin.getDefault().getPreferenceStore());
- toolkit = new FormToolkit(Display.getCurrent());
-
- }
-
- @Override
- protected Control createContents(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout(1, false);
- container.setLayout(layout);
-
- if (getContainer() instanceof IWorkbenchPreferenceContainer) {
- String message = Messages.TasksUiPreferencePage_See_X_for_configuring_Task_List_colors;
- new PreferenceLinkArea(container, SWT.NONE, "org.eclipse.ui.preferencePages.ColorsAndFonts", message, //$NON-NLS-1$
- (IWorkbenchPreferenceContainer) getContainer(), null);
- }
-
- createTaskRefreshScheduleGroup(container);
- createSchedulingGroup(container);
- createOpenWith(container);
- Composite advanced = createAdvancedSection(container);
- createTaskActivityGroup(advanced);
- createTaskDataControl(advanced);
- createLinks(container);
-
- updateRefreshGroupEnablements();
- applyDialogFont(container);
- return container;
- }
-
- private void createLinks(Composite container) {
- Hyperlink link = new Hyperlink(container, SWT.NULL);
- link.setForeground(CommonColors.HYPERLINK_WIDGET);
- link.setUnderlined(true);
- link.setText(Messages.TasksUiPreferencePage_Use_the_Restore_dialog_to_recover_missing_tasks);
- link.addHyperlinkListener(new IHyperlinkListener() {
-
- public void linkActivated(HyperlinkEvent e) {
- getShell().close();
- new RestoreTaskListAction().run();
- }
-
- public void linkEntered(HyperlinkEvent e) {
- // ignore
- }
-
- public void linkExited(HyperlinkEvent e) {
- // ignore
- }
-
- });
- }
-
- private Composite createAdvancedSection(Composite container) {
- advancedComposite = toolkit.createExpandableComposite(container, ExpandableComposite.COMPACT
- | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR);
- advancedComposite.setFont(container.getFont());
- advancedComposite.setBackground(container.getBackground());
- advancedComposite.setText(Messages.TasksUiPreferencePage_Advanced);
- advancedComposite.setLayout(new GridLayout(1, false));
- advancedComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- advancedComposite.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent e) {
- getControl().getShell().pack();
- }
- });
-
- Composite advanced = new Composite(advancedComposite, SWT.NONE);
- advanced.setLayout(new GridLayout(1, false));
- advancedComposite.setClient(advanced);
- return advanced;
- }
-
- public void init(IWorkbench workbench) {
- // TODO Auto-generated method stub
- }
-
- @Override
- public boolean performOk() {
- getPreferenceStore().setValue(ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED,
- notificationEnabledButton.getSelection());
- //getPreferenceStore().setValue(TasksUiPreferenceConstants.BACKUP_SCHEDULE, backupScheduleTimeText.getText());
-
- getPreferenceStore().setValue(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH, useRichEditor.getSelection());
- getPreferenceStore().setValue(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED,
- enableBackgroundSynch.getSelection());
- long miliseconds = 60000 * Long.parseLong(synchScheduleTime.getText());
- getPreferenceStore().setValue(ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_MILISECONDS,
- "" + miliseconds); //$NON-NLS-1$
-
- getPreferenceStore().setValue(ITasksUiPreferenceConstants.WEEK_START_DAY, getWeekStartValue());
- //getPreferenceStore().setValue(TasksUiPreferenceConstants.PLANNING_STARTHOUR, hourDayStart.getSelection());
-// getPreferenceStore().setValue(TasksUiPreferenceConstants.PLANNING_ENDHOUR, hourDayEnd.getSelection());
- MonitorUiPlugin.getDefault().getPreferenceStore().setValue(ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED,
- timeoutEnabledButton.getSelection());
- MonitorUiPlugin.getDefault().getPreferenceStore().setValue(ActivityContextManager.ACTIVITY_TIMEOUT,
- timeoutMinutes.getSelection() * (60 * 1000));
- //backupNow.setEnabled(true);
-
- String taskDirectory = taskDirectoryText.getText();
- taskDirectory = taskDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH);
-
- if (!taskDirectory.equals(TasksUiPlugin.getDefault().getDataDirectory())) {
- if (taskDataDirectoryAction == IDialogConstants.OK_ID) {
- Exception exception = null;
- try {
- TasksUiPlugin.getDefault().setDataDirectory(taskDirectory);
- } catch (CoreException e) {
- exception = e;
- StatusHandler.log(e.getStatus());
- MessageDialog.openError(getShell(), Messages.TasksUiPreferencePage_Task_Data_Directory_Error,
- Messages.TasksUiPreferencePage_Error_applying_Task_List_data_directory_changes);
-
- } catch (OperationCanceledException ce) {
- exception = ce;
- }
- if (exception != null && !taskDirectoryText.isDisposed()) {
- String originalDirectory = TasksUiPlugin.getDefault().getDefaultDataDirectory();
- if (!taskDirectory.equals(originalDirectory)) {
- taskDirectoryText.setText(originalDirectory);
- }
- }
-
- } else if (taskDataDirectoryAction == IDialogConstants.CANCEL_ID) {
- // shouldn't get here
- }
- }
-
- return true;
- }
-
- private int getWeekStartValue() {
- return weekStartCombo.getSelectionIndex() + 1;
- }
-
- @Override
- public boolean performCancel() {
- taskDirectoryText.setText(TasksUiPlugin.getDefault().getDefaultDataDirectory());
- notificationEnabledButton.setSelection(getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED));
- //backupScheduleTimeText.setText(getPreferenceStore().getString(TasksUiPreferenceConstants.BACKUP_SCHEDULE));
- //backupFolderText.setText(TasksUiPlugin.getDefault().getBackupFolderPath());
-
- useRichEditor.setSelection(getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
-
- // synchQueries.setSelection(getPreferenceStore().getBoolean(
- // TaskListPreferenceConstants.REPOSITORY_SYNCH_ON_STARTUP));
- enableBackgroundSynch.setSelection(getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED));
- synchScheduleTime.setText(getMinutesString());
-
- weekStartCombo.select(getPreferenceStore().getInt(ITasksUiPreferenceConstants.WEEK_START_DAY) - 1);
- //hourDayStart.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_STARTHOUR));
-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR));
- //backupNow.setEnabled(true);
- int minutes = MonitorUiPlugin.getDefault().getPreferenceStore().getInt(ActivityContextManager.ACTIVITY_TIMEOUT)
- / MS_MINUTES;
- timeoutMinutes.setSelection(minutes);
- timeoutEnabledButton.setSelection(MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED));
- return true;
- }
-
- @Override
- public void performDefaults() {
- super.performDefaults();
- String taskDirectory = TasksUiPlugin.getDefault().getDefaultDataDirectory();
- if (!taskDirectory.equals(TasksUiPlugin.getDefault().getDataDirectory())) {
- checkForExistingTasklist(taskDirectory);
- if (taskDataDirectoryAction != IDialogConstants.CANCEL_ID) {
- taskDirectoryText.setText(taskDirectory);
-// backupFolderText.setText(taskDirectory + FORWARDSLASH + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME);
-// backupNow.setEnabled(false);
- }
- } else {
- taskDirectoryText.setText(taskDirectory);
-// backupFolderText.setText(taskDirectory + FORWARDSLASH + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME);
-// backupNow.setEnabled(true);
- }
-
- notificationEnabledButton.setSelection(getPreferenceStore().getDefaultBoolean(
- ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED));
- //backupScheduleTimeText.setText(getPreferenceStore().getDefaultString(TasksUiPreferenceConstants.BACKUP_SCHEDULE));
-
- useRichEditor.setSelection(getPreferenceStore().getDefaultBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
-
- // synchQueries.setSelection(getPreferenceStore().getDefaultBoolean(
- // TaskListPreferenceConstants.REPOSITORY_SYNCH_ON_STARTUP));
- enableBackgroundSynch.setSelection(getPreferenceStore().getDefaultBoolean(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED));
- // userRefreshOnly.setSelection(!enableBackgroundSynch.getSelection());
- long miliseconds = getPreferenceStore().getDefaultLong(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_MILISECONDS);
- long minutes = miliseconds / 60000;
- synchScheduleTime.setText("" + minutes); //$NON-NLS-1$
- weekStartCombo.select(getPreferenceStore().getDefaultInt(ITasksUiPreferenceConstants.WEEK_START_DAY) - 1);
- // hourDayStart.setSelection(getPreferenceStore().getDefaultInt(TasksUiPreferenceConstants.PLANNING_STARTHOUR));
-// hourDayEnd.setSelection(getPreferenceStore().getDefaultInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR));
- int activityTimeoutMinutes = MonitorUiPlugin.getDefault().getPreferenceStore().getDefaultInt(
- ActivityContextManager.ACTIVITY_TIMEOUT)
- / MS_MINUTES;
- timeoutMinutes.setSelection(activityTimeoutMinutes);
- timeoutEnabledButton.setSelection(MonitorUiPlugin.getDefault().getPreferenceStore().getDefaultBoolean(
- ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED));
- updateRefreshGroupEnablements();
- }
-
- private void createTaskRefreshScheduleGroup(Composite parent) {
- Group group = new Group(parent, SWT.SHADOW_ETCHED_IN);
- group.setText(Messages.TasksUiPreferencePage_Synchronization);
- GridLayout gridLayout = new GridLayout(1, false);
- group.setLayout(gridLayout);
-
- group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- Composite enableSynch = new Composite(group, SWT.NULL);
- gridLayout = new GridLayout(4, false);
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- enableSynch.setLayout(gridLayout);
- enableBackgroundSynch = new Button(enableSynch, SWT.CHECK);
- enableBackgroundSynch.setText(Messages.TasksUiPreferencePage_Synchronize_with_repositories_every);
- enableBackgroundSynch.setSelection(getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED));
- enableBackgroundSynch.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- updateRefreshGroupEnablements();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
- synchScheduleTime = new Text(enableSynch, SWT.BORDER | SWT.RIGHT);
- GridData gridData = new GridData();
- gridData.widthHint = 25;
- synchScheduleTime.setLayoutData(gridData);
- synchScheduleTime.setText(getMinutesString());
- synchScheduleTime.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- updateRefreshGroupEnablements();
- }
- });
- Label label = new Label(enableSynch, SWT.NONE);
- label.setText(Messages.TasksUiPreferencePage_minutes);
-
- notificationEnabledButton = new Button(group, SWT.CHECK);
- notificationEnabledButton.setText(Messages.TasksUiPreferencePage_Display_notifications_for_overdue_tasks_and_incoming_changes);
- notificationEnabledButton.setSelection(getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED));
-
- }
-
- private void createOpenWith(Composite parent) {
- Group container = new Group(parent, SWT.SHADOW_ETCHED_IN);
- container.setLayout(new GridLayout(3, false));
- container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- container.setText(Messages.TasksUiPreferencePage_Task_Editing);
- useRichEditor = new Button(container, SWT.RADIO);
- useRichEditor.setText(Messages.TasksUiPreferencePage_Rich_Editor__Recommended_);
- useRichEditor.setSelection(getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
- useWebBrowser = new Button(container, SWT.RADIO);
- useWebBrowser.setText(Messages.TasksUiPreferencePage_Web_Browser);
- useWebBrowser.setSelection(!getPreferenceStore().getBoolean(ITasksUiPreferenceConstants.EDITOR_TASKS_RICH));
- }
-
- private void createTaskDataControl(Composite parent) {
-
- Group taskDataGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
- taskDataGroup.setText(Messages.TasksUiPreferencePage_Task_Data);
- taskDataGroup.setLayout(new GridLayout(1, false));
- taskDataGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Composite dataDirComposite = new Composite(taskDataGroup, SWT.NULL);
- GridLayout gridLayout = new GridLayout(3, false);
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- dataDirComposite.setLayout(gridLayout);
- dataDirComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Label label = new Label(dataDirComposite, SWT.NULL);
- label.setText(Messages.TasksUiPreferencePage_Data_directory_);
-
- String taskDirectory = TasksUiPlugin.getDefault().getDataDirectory();
- taskDirectory = taskDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH);
- taskDirectoryText = new Text(dataDirComposite, SWT.BORDER);
- taskDirectoryText.setText(taskDirectory);
- taskDirectoryText.setEditable(false);
- taskDirectoryText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- browse = new Button(dataDirComposite, SWT.TRAIL);
- browse.setText(Messages.TasksUiPreferencePage_Browse_);
- browse.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- DirectoryDialog dialog = new DirectoryDialog(getShell());
- dialog.setText(Messages.TasksUiPreferencePage_Folder_Selection);
- dialog.setMessage(Messages.TasksUiPreferencePage_Specify_the_folder_for_tasks);
- String dir = taskDirectoryText.getText();
- dir = dir.replaceAll(BACKSLASH_MULTI, FORWARDSLASH);
- dialog.setFilterPath(dir);
-
- dir = dialog.open();
- if (dir == null || dir.equals("")) { //$NON-NLS-1$
- return;
- }
- dir = dir.replaceAll(BACKSLASH_MULTI, FORWARDSLASH);
- checkForExistingTasklist(dir);
-
- if (taskDataDirectoryAction != IDialogConstants.CANCEL_ID) {
- taskDirectoryText.setText(dir);
-// backupFolderText.setText(dir + FORWARDSLASH + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME);
-// backupNow.setEnabled(false);
- }
- }
-
- });
-
-// Composite backupComposite = new Composite(taskDataGroup, SWT.NULL);
-// gridLayout = new GridLayout(5, false);
-// gridLayout.marginWidth = 0;
-// gridLayout.marginHeight = 0;
-// backupComposite.setLayout(gridLayout);
-// backupComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-// label = new Label(backupComposite, SWT.NULL);
-// label.setText("Backup every");
-// backupScheduleTimeText = new Text(backupComposite, SWT.BORDER | SWT.RIGHT);
-// final GridData gridData_1 = new GridData();
-// gridData_1.widthHint = 13;
-// backupScheduleTimeText.setLayoutData(gridData_1);
-//
-// backupScheduleTimeText.setText("" + getPreferenceStore().getInt(TasksUiPreferenceConstants.BACKUP_SCHEDULE));
-// backupScheduleTimeText.addModifyListener(new ModifyListener() {
-// public void modifyText(ModifyEvent e) {
-// updateRefreshGroupEnablements();
-// }
-// });
-//
-// label = new Label(backupComposite, SWT.NONE);
-// label.setText("days to");
-
-// String backupDirectory = TasksUiPlugin.getDefault().getBackupFolderPath();// getPreferenceStore().getString(TaskListPreferenceConstants.BACKUP_FOLDER);
-// backupDirectory = backupDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH);
-// backupFolderText = new Text(backupComposite, SWT.BORDER);
-// backupFolderText.setText(backupDirectory);
-// backupFolderText.setEditable(false);
-// backupFolderText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-//
-// backupNow = new Button(backupComposite, SWT.NONE);
-// backupNow.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-// backupNow.setText("Backup Now");
-// backupNow.addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// TasksUiPlugin.getBackupManager().backupNow(true);
-// }
-// });
- }
-
- private void createSchedulingGroup(Composite container) {
- Group group = new Group(container, SWT.SHADOW_ETCHED_IN);
- group.setText(Messages.TasksUiPreferencePage_Scheduling);
- group.setLayout(new GridLayout(5, false));
- group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Label weekStartLabel = new Label(group, SWT.NONE);
- weekStartLabel.setText(Messages.TasksUiPreferencePage_Week_Start);
- weekStartCombo = new Combo(group, SWT.READ_ONLY);
- // Note: Calendar.SUNDAY = 1
-// weekStartCombo.add(LABEL_SUNDAY);
-// weekStartCombo.add(LABEL_MONDAY);
-// weekStartCombo.add(LABEL_SATURDAY);
- weekStartCombo.add(CommonMessages.Sunday);
- weekStartCombo.add(CommonMessages.Monday);
- weekStartCombo.add(CommonMessages.Tuesday);
- weekStartCombo.add(CommonMessages.Wednesday);
- weekStartCombo.add(CommonMessages.Thursday);
- weekStartCombo.add(CommonMessages.Friday);
- weekStartCombo.add(CommonMessages.Saturday);
- weekStartCombo.select(getPreferenceStore().getInt(ITasksUiPreferenceConstants.WEEK_START_DAY) - 1);
-
-// Label workWeekBeginLabel = new Label(group, SWT.NONE);
-// workWeekBeginLabel.setText(START_DAY_LABEL);
-// workWeekBegin = new Combo(group, SWT.READ_ONLY);
-// // Calendar.SUNDAY = 1
-// workWeekBegin.add("SUNDAY");
-// workWeekBegin.add("MONDAY");
-// workWeekBegin.add("TUESDAY");
-// workWeekBegin.add("WEDNESDAY");
-// workWeekBegin.add("THURSDAY");
-// workWeekBegin.add("FRIDAY");
-// workWeekBegin.add("SATURDAY");
-// workWeekBegin.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_STARTDAY)
-// - 1);
-
-// Label workWeekEndLabel = new Label(group, SWT.NONE);
-// workWeekEndLabel.setText(END_DAY_LABEL);
-// workWeekEnd = new Combo(group, SWT.READ_ONLY);
-// workWeekEnd.add("SUNDAY");
-// workWeekEnd.add("MONDAY");
-// workWeekEnd.add("TUESDAY");
-// workWeekEnd.add("WEDNESDAY");
-// workWeekEnd.add("THURSDAY");
-// workWeekEnd.add("FRIDAY");
-// workWeekEnd.add("SATURDAY");
-// workWeekEnd.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_ENDDAY)
-// - 1);
-
-// Label hourDayStartLabel = new Label(group, SWT.NONE);
-// hourDayStartLabel.setText(START_HOUR_LABEL);
-// hourDayStart = new Spinner(group, SWT.BORDER);
-// hourDayStart.setDigits(0);
-// hourDayStart.setIncrement(1);
-// hourDayStart.setMaximum(23);
-// hourDayStart.setMinimum(0);
-// hourDayStart.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_STARTHOUR));
-// hourDayStart.addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// updateRefreshGroupEnablements();
-// }
-//
-// });
-//
-// Label spacer = new Label(group, SWT.NONE);
-// GridDataFactory.fillDefaults().hint(40, SWT.DEFAULT).applyTo(spacer);
-//
-// Label hourDayEndLabel = new Label(group, SWT.NONE);
-// hourDayEndLabel.setText(END_HOUR_LABEL);
-//
-// hourDayEnd = new Spinner(group, SWT.BORDER);
-// hourDayEnd.setDigits(0);
-// hourDayEnd.setIncrement(1);
-// hourDayEnd.setMaximum(23);
-// hourDayEnd.setMinimum(0);
-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR));
-// hourDayEnd.addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// updateRefreshGroupEnablements();
-// }
-//
-// });
-
- }
-
- private void createTaskActivityGroup(Composite container) {
- Group group = new Group(container, SWT.SHADOW_ETCHED_IN);
- group.setText(Messages.TasksUiPreferencePage_Task_Timing);
- group.setLayout(new GridLayout(3, false));
- group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- boolean timeoutEnabled = MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED);
-
- timeoutEnabledButton = new Button(group, SWT.CHECK);
- timeoutEnabledButton.setText(Messages.TasksUiPreferencePage_Enable_inactivity_timeouts);
- timeoutEnabledButton.setSelection(timeoutEnabled);
- timeoutEnabledButton.setToolTipText(Messages.TasksUiPreferencePage_If_disabled);
- timeoutEnabledButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateRefreshGroupEnablements();
- }
- });
- GridDataFactory.swtDefaults().span(3, 1).applyTo(timeoutEnabledButton);
-
- Label timeoutLabel = new Label(group, SWT.NONE);
- timeoutLabel.setText(Messages.TasksUiPreferencePage_Stop_time_accumulation_after);
- timeoutMinutes = new Spinner(group, SWT.BORDER);
- timeoutMinutes.setDigits(0);
- timeoutMinutes.setIncrement(5);
- timeoutMinutes.setMaximum(60);
- timeoutMinutes.setMinimum(1);
- long minutes = MonitorUiPlugin.getDefault().getPreferenceStore().getLong(
- ActivityContextManager.ACTIVITY_TIMEOUT)
- / MS_MINUTES;
- timeoutMinutes.setSelection((int) minutes);
- timeoutMinutes.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateRefreshGroupEnablements();
- }
-
- });
-
- timeoutLabel = new Label(group, SWT.NONE);
- timeoutLabel.setText(Messages.TasksUiPreferencePage_minutes_of_inactivity);
-
-// Label spacer = new Label(group, SWT.NONE);
-// GridDataFactory.fillDefaults().hint(40, SWT.DEFAULT).applyTo(spacer);
-//
-// Label hourDayEndLabel = new Label(group, SWT.NONE);
-// hourDayEndLabel.setText(END_HOUR_LABEL);
-//
-// hourDayEnd = new Spinner(group, SWT.BORDER);
-// hourDayEnd.setDigits(0);
-// hourDayEnd.setIncrement(1);
-// hourDayEnd.setMaximum(23);
-// hourDayEnd.setMinimum(0);
-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR));
-// hourDayEnd.addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// updateRefreshGroupEnablements();
-// }
-//
-// });
-
- }
-
-// private void createSchedulingGroup(Composite container) {
-// Group group = new Group(container, SWT.SHADOW_ETCHED_IN);
-// group.setText(GROUP_WORK_WEEK_LABEL);
-// group.setLayout(new GridLayout(5, false));
-// group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-//
-// // Label workWeekBeginLabel = new Label(group, SWT.NONE);
-// // workWeekBeginLabel.setText(START_DAY_LABEL);
-// // workWeekBegin = new Combo(group, SWT.READ_ONLY);
-// // // Calendar.SUNDAY = 1
-// // workWeekBegin.add("SUNDAY");
-// // workWeekBegin.add("MONDAY");
-// // workWeekBegin.add("TUESDAY");
-// // workWeekBegin.add("WEDNESDAY");
-// // workWeekBegin.add("THURSDAY");
-// // workWeekBegin.add("FRIDAY");
-// // workWeekBegin.add("SATURDAY");
-// // workWeekBegin.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_STARTDAY)
-// // - 1);
-// //
-// // Label workWeekEndLabel = new Label(group, SWT.NONE);
-// // workWeekEndLabel.setText(END_DAY_LABEL);
-// // workWeekEnd = new Combo(group, SWT.READ_ONLY);
-// // workWeekEnd.add("SUNDAY");
-// // workWeekEnd.add("MONDAY");
-// // workWeekEnd.add("TUESDAY");
-// // workWeekEnd.add("WEDNESDAY");
-// // workWeekEnd.add("THURSDAY");
-// // workWeekEnd.add("FRIDAY");
-// // workWeekEnd.add("SATURDAY");
-// // workWeekEnd.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_ENDDAY)
-// // - 1);
-//
-// Label hourDayStartLabel = new Label(group, SWT.NONE);
-// hourDayStartLabel.setText(START_HOUR_LABEL);
-// hourDayStart = new Spinner(group, SWT.BORDER);
-// hourDayStart.setDigits(0);
-// hourDayStart.setIncrement(1);
-// hourDayStart.setMaximum(23);
-// hourDayStart.setMinimum(0);
-// hourDayStart.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_STARTHOUR));
-// hourDayStart.addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// updateRefreshGroupEnablements();
-// }
-//
-// });
-//
-// Label spacer = new Label(group, SWT.NONE);
-// GridDataFactory.fillDefaults().hint(40, SWT.DEFAULT).applyTo(spacer);
-//
-// Label hourDayEndLabel = new Label(group, SWT.NONE);
-// hourDayEndLabel.setText(END_HOUR_LABEL);
-//
-// hourDayEnd = new Spinner(group, SWT.BORDER);
-// hourDayEnd.setDigits(0);
-// hourDayEnd.setIncrement(1);
-// hourDayEnd.setMaximum(23);
-// hourDayEnd.setMinimum(0);
-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR));
-// hourDayEnd.addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// updateRefreshGroupEnablements();
-// }
-//
-// });
-//
-// }
-
- public void updateRefreshGroupEnablements() {
- String errorMessage = null;
-
-// try {
-// long number = Integer.parseInt(backupScheduleTimeText.getText());
-// if (number <= 0) {
-// errorMessage = "Backup schedule time must be > 0";
-// } else if (backupFolderText.getText() == "") {
-// errorMessage = "Backup destination folder must be specified";
-// }
-// } catch (NumberFormatException e) {
-// errorMessage = "Backup schedule time must be valid integer";
-// }
-
- if (enableBackgroundSynch.getSelection()) {
- try {
- long number = Long.parseLong(synchScheduleTime.getText());
- if (number <= 0) {
- errorMessage = Messages.TasksUiPreferencePage_Synchronize_schedule_time_must_be_GT_0;
- }
- } catch (NumberFormatException e) {
- errorMessage = Messages.TasksUiPreferencePage_Synchronize_schedule_time_must_be_valid_integer;
- }
- }
-
-// if (hourDayEnd.getSelection() <= hourDayStart.getSelection()) {
-// errorMessage = "Planning: Work day start must be before end.";
-// }
-
- setErrorMessage(errorMessage);
- setValid(errorMessage == null);
-
- synchScheduleTime.setEnabled(enableBackgroundSynch.getSelection());
-
- timeoutMinutes.setEnabled(timeoutEnabledButton.getSelection());
-
- }
-
- private String getMinutesString() {
- long miliseconds = getPreferenceStore().getLong(
- ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_MILISECONDS);
- long minutes = miliseconds / 60000;
- return "" + minutes; //$NON-NLS-1$
- }
-
- private void checkForExistingTasklist(String dir) {
- File newDataFolder = new File(dir);
- if (newDataFolder.exists()) {
-
- MessageDialog dialogConfirm = new MessageDialog(
- null,
- Messages.TasksUiPreferencePage_Confirm_Task_List_data_directory_change,
- null,
- Messages.TasksUiPreferencePage_A_new_empty_Task_List_will_be_created_in_the_chosen_directory_if_one_does_not_already_exists,
- MessageDialog.WARNING, new String[] { IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL },
- IDialogConstants.CANCEL_ID);
- taskDataDirectoryAction = dialogConfirm.open();
-
- for (TaskEditor taskEditor : TasksUiInternal.getActiveRepositoryTaskEditors()) {
- TasksUiInternal.closeTaskEditorInAllPages(taskEditor.getTaskEditorInput().getTask(), true);
- }
-
- } else {
- MessageDialog.openWarning(getControl().getShell(), Messages.TasksUiPreferencePage_Change_data_directory,
- Messages.TasksUiPreferencePage_Destination_folder_does_not_exist);
- }
- }
-
- @Override
- public void dispose() {
- if (toolkit != null) {
- if (toolkit.getColors() != null) {
- toolkit.dispose();
- }
- }
- super.dispose();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties
deleted file mode 100644
index 407438f5e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-TasksUiPreferencePage_Advanced=Advanced
-TasksUiPreferencePage_Browse_=Browse...
-TasksUiPreferencePage_Change_data_directory=Change data directory
-TasksUiPreferencePage_Confirm_Task_List_data_directory_change=Confirm Task List data directory change
-TasksUiPreferencePage_Data_directory_=Data directory:
-TasksUiPreferencePage_Destination_folder_does_not_exist=Destination folder does not exist.
-TasksUiPreferencePage_Display_notifications_for_overdue_tasks_and_incoming_changes=Display notifications for overdue tasks and incoming changes
-TasksUiPreferencePage_Enable_inactivity_timeouts=Enable inactivity timeouts
-TasksUiPreferencePage_Error_applying_Task_List_data_directory_changes=Error applying Task List data directory changes. The previous setting will be restored.
-TasksUiPreferencePage_Folder_Selection=Folder Selection
-TasksUiPreferencePage_If_disabled=If disabled, time accumulates while a task is active with no timeout due to inactivity.
-TasksUiPreferencePage_minutes=minutes
-TasksUiPreferencePage_minutes_of_inactivity=minutes of inactivity.
-TasksUiPreferencePage_A_new_empty_Task_List_will_be_created_in_the_chosen_directory_if_one_does_not_already_exists=A new empty Task List will be created in the chosen directory if one does not already exists. Your previous directory and its contents will not be deleted.\n\nProceed?
-TasksUiPreferencePage_Rich_Editor__Recommended_=Rich Editor (Recommended)
-TasksUiPreferencePage_Scheduling=Scheduling
-TasksUiPreferencePage_See_X_for_configuring_Task_List_colors=See <a>''{0}''</a> for configuring Task List colors.
-TasksUiPreferencePage_Specify_the_folder_for_tasks=Specify the folder for tasks
-TasksUiPreferencePage_Stop_time_accumulation_after=Stop time accumulation after
-TasksUiPreferencePage_Synchronize_schedule_time_must_be_GT_0=Synchronize schedule time must be > 0
-TasksUiPreferencePage_Synchronize_schedule_time_must_be_valid_integer=Synchronize schedule time must be valid integer
-TasksUiPreferencePage_Synchronize_with_repositories_every=Synchronize with repositories every
-TasksUiPreferencePage_Synchronization=Synchronization
-TasksUiPreferencePage_Task_Data=Task Data
-TasksUiPreferencePage_Task_Data_Directory_Error=Task Data Directory Error
-TasksUiPreferencePage_Task_Editing=Task Editing
-TasksUiPreferencePage_Task_Timing=Task Timing
-TasksUiPreferencePage_Use_the_Restore_dialog_to_recover_missing_tasks=Use the Restore dialog to recover missing tasks
-TasksUiPreferencePage_Web_Browser=Web Browser
-TasksUiPreferencePage_Week_Start=Week Start:
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/Messages.java
deleted file mode 100644
index 3a40d71c1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/Messages.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.properties;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.properties.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String ProjectTaskRepositoryPage_Select_a_task_repository_to_associate_with_this_project_below;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectPropertiesLinkProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectPropertiesLinkProvider.java
deleted file mode 100644
index 79f588617..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectPropertiesLinkProvider.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.properties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryManager;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Default Task Repository link provider
- *
- * @author Eugene Kuleshov
- */
-public class ProjectPropertiesLinkProvider extends AbstractTaskRepositoryLinkProvider {
-
- private static final String PROPERTY_PREFIX = "project.repository"; //$NON-NLS-1$
-
- private static final String PROJECT_REPOSITORY_KIND = PROPERTY_PREFIX + ".kind"; //$NON-NLS-1$
-
- private static final String PROJECT_REPOSITORY_URL = PROPERTY_PREFIX + ".url"; //$NON-NLS-1$
-
- @Override
- public TaskRepository getTaskRepository(IResource resource, IRepositoryManager repositoryManager) {
- IProject project = resource.getProject();
- if (project == null || !project.isAccessible()) {
- return null;
- }
-
- IScopeContext projectScope = new ProjectScope(project);
- IEclipsePreferences projectNode = projectScope.getNode(TasksUiPlugin.ID_PLUGIN);
- if (projectNode != null) {
- String kind = projectNode.get(PROJECT_REPOSITORY_KIND, ""); //$NON-NLS-1$
- String urlString = projectNode.get(PROJECT_REPOSITORY_URL, ""); //$NON-NLS-1$
- return repositoryManager.getRepository(kind, urlString);
- }
- return null;
- }
-
- @Override
- public boolean canSetTaskRepository(IResource resource) {
- IProject project = resource.getProject();
- return project != null && project.isAccessible();
- }
-
- @Override
- public boolean setTaskRepository(IResource resource, TaskRepository repository) {
- IProject project = resource.getProject();
- if (project == null || !project.isAccessible()) {
- return false;
- }
-
- IScopeContext projectScope = new ProjectScope(project);
- IEclipsePreferences projectNode = projectScope.getNode(TasksUiPlugin.ID_PLUGIN);
- if (projectNode != null) {
- if (repository != null) {
- projectNode.put(PROJECT_REPOSITORY_KIND, repository.getConnectorKind());
- projectNode.put(PROJECT_REPOSITORY_URL, repository.getRepositoryUrl());
- } else {
- projectNode.remove(PROJECT_REPOSITORY_KIND);
- projectNode.remove(PROJECT_REPOSITORY_URL);
- }
- try {
- projectNode.flush();
- return true;
- } catch (BackingStoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Failed to save task repository to project association preference", e)); //$NON-NLS-1$
- }
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectTaskRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectTaskRepositoryPage.java
deleted file mode 100644
index 8ef28d2bf..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/ProjectTaskRepositoryPage.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.properties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.internal.dialogs.DialogUtil;
-
-/**
- * A property page that support per project configuration of an associated task repository.
- *
- * @author Rob Elves
- * @see Adapted from org.eclipse.ui.internal.ide.dialogs.ProjectReferencePage
- */
-public class ProjectTaskRepositoryPage extends PropertyPage {
-
- private static final int REPOSITORY_LIST_MULTIPLIER = 30;
-
- private IProject project;
-
- private boolean modified = false;
-
- private CheckboxTableViewer listViewer;
-
- public ProjectTaskRepositoryPage() {
- }
-
- @Override
- protected Control createContents(Composite parent) {
-
- Font font = parent.getFont();
-
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- composite.setFont(font);
-
- initialize();
-
- Label description = createDescriptionLabel(composite);
- description.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
- listViewer = CheckboxTableViewer.newCheckList(composite, SWT.TOP | SWT.BORDER);
- listViewer.getTable().setFont(font);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.grabExcessHorizontalSpace = true;
-
- // Only set a height hint if it will not result in a cut off dialog
- if (DialogUtil.inRegularFontMode(parent)) {
- data.heightHint = getDefaultFontHeight(listViewer.getTable(), REPOSITORY_LIST_MULTIPLIER);
- }
- listViewer.getTable().setLayoutData(data);
- listViewer.getTable().setFont(font);
-
- listViewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
- PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
- listViewer.setContentProvider(new IStructuredContentProvider() {
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- }
-
- public void dispose() {
- }
-
- public Object[] getElements(Object parent) {
- return TasksUi.getRepositoryManager().getAllRepositories().toArray();
- }
-
- });
-
- listViewer.setSorter(new TaskRepositoriesSorter());
- listViewer.setInput(project.getWorkspace());
-
- listViewer.addCheckStateListener(new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- if (event.getChecked()) {
- // only allow single selection
- listViewer.setAllChecked(false);
- listViewer.setChecked(event.getElement(), event.getChecked());
- }
- modified = true;
- }
- });
- updateLinkedRepository();
-
- // TODO this code was copied from SelectRepositoryPage
- final AddRepositoryAction action = new AddRepositoryAction();
- action.setPromptToAddQuery(false);
-
- Button button = new Button(composite, SWT.NONE);
- button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
- button.setText(AddRepositoryAction.TITLE);
- button.setEnabled(action.isEnabled());
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- TaskRepository taskRepository = action.showWizard();
- if (taskRepository != null) {
- listViewer.setInput(project.getWorkspace());
- listViewer.setSelection(new StructuredSelection(taskRepository));
- updateLinkedRepository();
- }
- }
- });
-
- return composite;
- }
-
- void updateLinkedRepository() {
- TaskRepository repository = TasksUiPlugin.getDefault().getRepositoryForResource(project);
- if (repository != null) {
- listViewer.setCheckedElements(new Object[] { repository });
- }
- listViewer.getControl().setEnabled(TasksUiPlugin.getDefault().canSetRepositoryForResource(project));
- }
-
- private static int getDefaultFontHeight(Control control, int lines) {
- FontData[] viewerFontData = control.getFont().getFontData();
- int fontHeight = 10;
-
- // If we have no font data use our guess
- if (viewerFontData.length > 0) {
- fontHeight = viewerFontData[0].getHeight();
- }
- return lines * fontHeight;
-
- }
-
- private void initialize() {
- project = (IProject) getElement().getAdapter(IResource.class);
- noDefaultAndApplyButton();
- setDescription(Messages.ProjectTaskRepositoryPage_Select_a_task_repository_to_associate_with_this_project_below);
- }
-
- @Override
- public boolean performOk() {
- if (!modified) {
- return true;
- }
- if (listViewer.getCheckedElements().length > 0) {
- TaskRepository selectedRepository = (TaskRepository) listViewer.getCheckedElements()[0];
- TasksUiPlugin.getDefault().setRepositoryForResource(project, selectedRepository);
- } else {
- TasksUiPlugin.getDefault().setRepositoryForResource(project, null);
- }
- return true;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/messages.properties
deleted file mode 100644
index f3b472428..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/properties/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-ProjectTaskRepositoryPage_Select_a_task_repository_to_associate_with_this_project_below=Select a task repository to associate with this project below:
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/CreateQueryFromSearchAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/CreateQueryFromSearchAction.java
deleted file mode 100644
index cd9dcbb1c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/CreateQueryFromSearchAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Balazs Brinkus - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.search;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Used for add the last search result to the Task List.
- *
- * @author Balazs Brinkus (bug 172699)
- * @author Mik Kersten
- */
-public class CreateQueryFromSearchAction extends Action {
-
- /** The view this action works on */
- private final RepositorySearchResultView resultView;
-
- /**
- * Constructor
- *
- * @param text
- * The text for this action
- * @param resultView
- * The <code>RepositorySearchResultView</code> this action works on
- */
- public CreateQueryFromSearchAction(String text, RepositorySearchResultView resultView) {
- setText(text);
- setImageDescriptor(TasksUiImages.QUERY_NEW);
- this.resultView = resultView;
- }
-
- /**
- * Add the search result to the Task List.
- */
- @Override
- public void run() {
- ISelection selection = resultView.getViewer().getSelection();
- if (selection instanceof IStructuredSelection) {
- IStructuredSelection structuredSelection = (IStructuredSelection) selection;
- if (structuredSelection.getFirstElement() instanceof ITask) {
- ISearchQuery[] queries = NewSearchUI.getQueries();
- ITask task = (ITask) structuredSelection.getFirstElement();
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- task.getConnectorKind());
- if (queries.length != 0 && connector != null) {
- SearchHitCollector searchHitCollector = (SearchHitCollector) queries[0];
- IRepositoryQuery query = searchHitCollector.getRepositoryQuery();
- InputDialog dialog = new InputDialog(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getShell(), Messages.CreateQueryFromSearchAction_CLEAR_QUERY, MessageFormat.format(
- Messages.CreateQueryFromSearchAction_Name_of_query_to_be_added_to_the_X, TaskListView.LABEL_VIEW)
- + ": ", "", null); //$NON-NLS-1$ //$NON-NLS-2$
- int dialogResult = dialog.open();
- if (dialogResult == Window.OK) {
- query.setSummary(dialog.getValue());
- TasksUiInternal.getTaskList().addQuery((RepositoryQuery) query);
- TasksUiInternal.synchronizeQuery(connector, (RepositoryQuery) query, null, true);
- }
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/Messages.java
deleted file mode 100644
index ac80ae035..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/Messages.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.search.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String CreateQueryFromSearchAction_CLEAR_QUERY;
-
- public static String CreateQueryFromSearchAction_Name_of_query_to_be_added_to_the_X;
-
- public static String RepositorySearchResult_Task_search_X_matches;
-
- public static String RepositorySearchResult_Task_search_1_match;
-
- public static String RepositorySearchResultView_Add_to_X_Category;
-
- public static String RepositorySearchResultView_Create_Query_from_Search_;
-
- public static String RepositorySearchResultView_Filter_Completed_Tasks;
-
- public static String RepositorySearchResultView_Group_By_Owner;
-
- public static String RepositorySearchResultView_Open_in_Editor;
-
- public static String RepositorySearchResultView_Open_Search_with_Browser_Label;
-
- public static String RepositorySearchResultView_Refine_Search_;
-
- public static String SearchHitCollector_Max_allowed_number_of_hits_returned_exceeded;
-
- public static String SearchHitCollector_Querying_Repository_;
-
- public static String SearchHitCollector_Repository_connector_could_not_be_found;
-
- public static String SearchHitCollector_Search_failed;
-
- public static String SearchHitCollector_Search_cancelled;
-
- public static String SearchHitCollector_Search_returned_maximum_number_of_hits;
-
- public static String SearchResultsLabelProvider_OF;
-
- public static String SearchResultTreeContentProvider_Complete;
-
- public static String SearchResultTreeContentProvider_Incomplete;
-
- public static String SearchResultTreeContentProvider__unknown_;
-
- public static String SearchResultSortAction_Sort_Label;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java
deleted file mode 100644
index 605389dd4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-
-/**
- * This class is used to open a bug report in an editor.
- */
-public class OpenSearchResultAction extends Action {
-
- /** The view this action works on */
- private final RepositorySearchResultView resultView;
-
- /**
- * Constructor
- *
- * @param text
- * The text for this action
- * @param resultView
- * The <code>RepositorySearchResultView</code> this action works on
- */
- public OpenSearchResultAction(String text, RepositorySearchResultView resultView) {
- setText(text);
- this.resultView = resultView;
- }
-
- /**
- * Open the selected bug reports in their own editors.
- */
- @SuppressWarnings("unchecked")
- @Override
- public void run() {
- // Get the selected items
- ISelection s = resultView.getViewer().getSelection();
- if (s instanceof IStructuredSelection) {
- IStructuredSelection selection = (IStructuredSelection) s;
-
- // go through each of the selected items and show it in an editor
- for (Iterator<AbstractTask> it = selection.iterator(); it.hasNext();) {
- AbstractTask repositoryHit = it.next();
- TasksUiUtil.openTask(repositoryHit.getRepositoryUrl(), repositoryHit.getTaskId(),
- repositoryHit.getUrl());
- }
-
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResult.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResult.java
deleted file mode 100644
index 4de34d9ca..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResult.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.search.internal.ui.SearchPluginImages;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.text.AbstractTextSearchResult;
-import org.eclipse.search.ui.text.IEditorMatchAdapter;
-import org.eclipse.search.ui.text.IFileMatchAdapter;
-
-/**
- * Captures the results of a task repository search.
- *
- * @author Rob Elves
- * @see org.eclipse.search.ui.text.AbstractTextSearchResult
- * @since 2.0
- */
-public class RepositorySearchResult extends AbstractTextSearchResult {
-
- /**
- * The query producing this result.
- */
- private final ISearchQuery repositoryQuery;
-
- /**
- * Constructor for <code>RepositorySearchResult</code> class.
- *
- * @param query
- * <code>AbstractRepositorySearchQuery</code> that is producing this result.
- */
- public RepositorySearchResult(ISearchQuery query) {
- repositoryQuery = query;
- }
-
- @Override
- public IEditorMatchAdapter getEditorMatchAdapter() {
- return null;
- }
-
- /**
- * This function always returns <code>null</code>, as the matches for this implementation of
- * <code>AbstractTextSearchResult</code> never contain files.
- *
- * @see org.eclipse.search.ui.text.AbstractTextSearchResult#getFileMatchAdapter()
- */
- @Override
- public IFileMatchAdapter getFileMatchAdapter() {
- return null;
- }
-
- public String getLabel() {
- return getMatchCount() == 1 ? getSingularLabel() : getPluralLabel();
- }
-
- /**
- * Get the singular label for the number of results
- *
- * @return The singular label
- */
- protected String getSingularLabel() {
- return Messages.RepositorySearchResult_Task_search_1_match;
- }
-
- /**
- * Get the plural label for the number of results
- *
- * @return The plural label
- */
- protected String getPluralLabel() {
- return MessageFormat.format(Messages.RepositorySearchResult_Task_search_X_matches, getMatchCount());
- }
-
- public String getTooltip() {
- return getLabel();
- }
-
- public ImageDescriptor getImageDescriptor() {
- return SearchPluginImages.DESC_OBJ_TSEARCH_DPDN;
- }
-
- public ISearchQuery getQuery() {
- return repositoryQuery;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java
deleted file mode 100644
index 593643483..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.search;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.mylyn.internal.provisional.commons.ui.EnhancedFilteredTree;
-import org.eclipse.mylyn.internal.provisional.commons.ui.SubstringPatternFilter;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.AddExistingTaskJob;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskSearchAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchResultTreeContentProvider.GroupBy;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListToolTip;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.search.ui.IContextMenuConstants;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.search.ui.text.AbstractTextSearchViewPage;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FilteredTree;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * Displays the results of a Repository search.
- *
- * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage
- * @author Rob Elves
- * @author Mik Kersten
- * @author Shawn Minto
- * @author Frank Becker
- * @author Steffen Pingel
- */
-public class RepositorySearchResultView extends AbstractTextSearchViewPage implements IAdaptable {
-
- private class GroupingAction extends Action {
-
- private final GroupBy groupBy;
-
- public GroupingAction(String text, GroupBy groupBy) {
- super(text, IAction.AS_CHECK_BOX);
- this.groupBy = groupBy;
- groupingActions.add(this);
- }
-
- @Override
- public void run() {
- for (GroupingAction action : groupingActions) {
- action.setChecked(false);
- }
-
- SearchResultTreeContentProvider contentProvider = (SearchResultTreeContentProvider) getViewer().getContentProvider();
- if (contentProvider.getSelectedGroup() == groupBy) {
- contentProvider.setSelectedGroup(GroupBy.NONE);
- } else {
- contentProvider.setSelectedGroup(groupBy);
- setChecked(true);
- }
- getViewer().refresh();
- }
- }
-
- private class FilteringAction extends Action {
-
- private final ViewerFilter filter;
-
- public FilteringAction(String text, ViewerFilter filter) {
- super(text, IAction.AS_CHECK_BOX);
- this.filter = filter;
- filterActions.add(this);
- }
-
- @Override
- public void runWithEvent(Event event) {
- if (isChecked()) {
- getViewer().addFilter(filter);
- } else {
- getViewer().removeFilter(filter);
- }
- }
- }
-
- private static final String MEMENTO_KEY_SORT = "sort"; //$NON-NLS-1$
-
- private SearchResultContentProvider searchResultProvider;
-
- private final OpenSearchResultAction openInEditorAction;
-
- private final CreateQueryFromSearchAction createQueryAction;
-
- private final Action refineSearchAction;
-
- private static final String[] SHOW_IN_TARGETS = new String[] { ITasksUiConstants.ID_VIEW_TASKS };
-
- private TaskListToolTip toolTip;
-
- private final List<GroupingAction> groupingActions;
-
- private final List<FilteringAction> filterActions;
-
- private final OpenWithBrowserAction openSearchWithBrowserAction;
-
- private final SearchResultSorter searchResultSorter;
-
- private SearchResultSortAction sortByDialogAction;
-
- private static final IShowInTargetList SHOW_IN_TARGET_LIST = new IShowInTargetList() {
- public String[] getShowInTargetIds() {
- return SHOW_IN_TARGETS;
- }
- };
-
- public RepositorySearchResultView() {
- // Only use the table layout.
- super(FLAG_LAYOUT_TREE);
-
- openInEditorAction = new OpenSearchResultAction(Messages.RepositorySearchResultView_Open_in_Editor, this);
- createQueryAction = new CreateQueryFromSearchAction(
- Messages.RepositorySearchResultView_Create_Query_from_Search_, this);
- refineSearchAction = new OpenTaskSearchAction();
- refineSearchAction.setText(Messages.RepositorySearchResultView_Refine_Search_);
- openSearchWithBrowserAction = new OpenWithBrowserAction();
- openSearchWithBrowserAction.setText(Messages.RepositorySearchResultView_Open_Search_with_Browser_Label);
-
- groupingActions = new ArrayList<GroupingAction>();
- new GroupingAction(Messages.RepositorySearchResultView_Group_By_Owner, GroupBy.OWNER);
-// new GroupingAction(Messages.RepositorySearchResultView_Group_By_Complete, GroupBy.COMPLETION);
-
- filterActions = new ArrayList<FilteringAction>();
- new FilteringAction(Messages.RepositorySearchResultView_Filter_Completed_Tasks, new ViewerFilter() {
- @Override
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (element instanceof ITask) {
- return !((ITask) element).isCompleted();
- } else if (element instanceof TaskGroup) {
- TaskGroup taskGroup = (TaskGroup) element;
- return taskGroup.getHandleIdentifier().equals("group-incompleteIncomplete"); //$NON-NLS-1$
- }
- return true;
- }
- });
-
- // construct early since to be ready when restoreState() is invoked
- searchResultSorter = new SearchResultSorter();
- }
-
- @Override
- protected void elementsChanged(Object[] objects) {
- if (searchResultProvider != null) {
- searchResultProvider.elementsChanged(objects);
- getViewer().refresh();
- }
- }
-
- @Override
- protected void clear() {
- if (searchResultProvider != null) {
- searchResultProvider.clear();
- getViewer().refresh();
- }
- }
-
- // Allows the inherited method "getViewer" to be accessed publicly.
- @Override
- public StructuredViewer getViewer() {
- return super.getViewer();
- }
-
- @Override
- protected void configureTreeViewer(TreeViewer viewer) {
- viewer.setUseHashlookup(true);
- searchResultProvider = new SearchResultTreeContentProvider();
- viewer.setContentProvider(searchResultProvider);
-
- DecoratingLabelProvider labelProvider = new DecoratingLabelProvider(new SearchResultsLabelProvider(
- searchResultProvider, viewer), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
- viewer.setLabelProvider(labelProvider);
- viewer.setSorter(searchResultSorter);
- sortByDialogAction = new SearchResultSortAction(this);
-
- toolTip = new TaskListToolTip(viewer.getControl());
- }
-
- @Override
- protected TreeViewer createTreeViewer(Composite parent) {
- // create a filtered tree
- Composite treeComposite = parent;
- Layout parentLayout = parent.getLayout();
- if (!(parentLayout instanceof GridLayout)) {
- treeComposite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- treeComposite.setLayout(layout);
- }
-
- // TODO e3.5 use new FilteredTree API
- FilteredTree searchTree = new EnhancedFilteredTree(treeComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL,
- new SubstringPatternFilter());
- return searchTree.getViewer();
- }
-
- @Override
- protected void configureTableViewer(TableViewer viewer) {
-// viewer.setUseHashlookup(true);
-// String[] columnNames = new String[] { "Summary" };
-// TableColumn[] columns = new TableColumn[columnNames.length];
-// int[] columnWidths = new int[] { 500 };
-// viewer.setColumnProperties(columnNames);
-//
-// viewer.getTable().setHeaderVisible(false);
-// for (int i = 0; i < columnNames.length; i++) {
-// columns[i] = new TableColumn(viewer.getTable(), 0, i); // SWT.LEFT
-// columns[i].setText(columnNames[i]);
-// columns[i].setWidth(columnWidths[i]);
-// columns[i].setData(new Integer(i));
-// columns[i].addSelectionListener(new SelectionAdapter() {
-//
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// TableColumn col = (TableColumn) e.getSource();
-// Integer integer = (Integer) col.getData();
-// setSortOrder(integer.intValue());
-// }
-// });
-// }
-//
-// IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager();
-// Color categoryBackground = themeManager.getCurrentTheme().getColorRegistry().get(
-// TaskListColorsAndFonts.THEME_COLOR_TASKLIST_CATEGORY);
-//
-// SearchViewTableLabelProvider taskListTableLabelProvider = new SearchViewTableLabelProvider(
-// new TaskElementLabelProvider(true),
-// PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), categoryBackground);
-//
-// viewer.setLabelProvider(taskListTableLabelProvider);
-// viewer.setContentProvider(new SearchResultTableContentProvider(this));
-//
-// // Set the order when the search view is loading so that the items are
-// // sorted right away
-// setSortOrder(currentSortOrder);
-//
-// taskContentProvider = (SearchResultContentProvider) viewer.getContentProvider();
- }
-
- @Override
- public void dispose() {
- toolTip.dispose();
- super.dispose();
- }
-
- @SuppressWarnings("unchecked")
- public Object getAdapter(Class adapter) {
- return getAdapterDelegate(adapter);
- }
-
- private Object getAdapterDelegate(Class<?> adapter) {
- if (IShowInTargetList.class.equals(adapter)) {
- return SHOW_IN_TARGET_LIST;
- }
- return null;
- }
-
- @Override
- protected void showMatch(Match match, int currentOffset, int currentLength, boolean activate)
- throws PartInitException {
- AbstractTask repositoryHit = (AbstractTask) match.getElement();
- TasksUiInternal.refreshAndOpenTaskListElement(repositoryHit);
- }
-
- @Override
- protected void fillContextMenu(IMenuManager menuManager) {
- super.fillContextMenu(menuManager);
-
- // open actions
- menuManager.appendToGroup(IContextMenuConstants.GROUP_OPEN, openInEditorAction);
-
- // Add to Task List menu
- // HACK: this should be a contribution
- final MenuManager subMenuManager = new MenuManager(MessageFormat.format(
- Messages.RepositorySearchResultView_Add_to_X_Category, TaskListView.LABEL_VIEW));
- List<AbstractTaskCategory> categories = new ArrayList<AbstractTaskCategory>(TasksUiInternal.getTaskList()
- .getCategories());
- Collections.sort(categories);
- for (final AbstractTaskCategory category : categories) {
- if (!(category instanceof UnmatchedTaskContainer)) {//.equals(TasksUiPlugin.getTaskList().getArchiveContainer())) {
- Action action = new Action() {
- @Override
- public void run() {
- moveToCategory(category);
- }
- };
- String text = category.getSummary();
- action.setText(text);
- action.setImageDescriptor(TasksUiImages.CATEGORY);
- subMenuManager.add(action);
- }
- }
- menuManager.appendToGroup(IContextMenuConstants.GROUP_OPEN, subMenuManager);
-
- // search actions
-
- menuManager.appendToGroup(IContextMenuConstants.GROUP_SEARCH, createQueryAction);
- menuManager.appendToGroup(IContextMenuConstants.GROUP_SEARCH, refineSearchAction);
- menuManager.appendToGroup(IContextMenuConstants.GROUP_SEARCH, openSearchWithBrowserAction);
-
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, sortByDialogAction);
- for (Action action : groupingActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
- for (Action action : filterActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
-
- }
-
- private void moveToCategory(AbstractTaskCategory category) {
- final IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
- StructuredSelection selection = (StructuredSelection) this.getViewer().getSelection();
- for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
- Object selectedObject = iterator.next();
- if (selectedObject instanceof ITask) {
- ITask task = (ITask) selectedObject;
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- final AddExistingTaskJob job = new AddExistingTaskJob(repository, task.getTaskId(), category);
- job.schedule();
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- progressService.showInDialog(RepositorySearchResultView.this.getSite().getShell(), job);
- }
- });
- }
- }
- }
-
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- IMenuManager menuManager = getSite().getActionBars().getMenuManager();
- for (Action action : groupingActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, new Separator());
- for (Action action : filterActions) {
- menuManager.appendToGroup(IContextMenuConstants.GROUP_VIEWER_SETUP, action);
- }
- }
-
- @Override
- public void setInput(ISearchResult newSearch, Object viewState) {
- super.setInput(newSearch, viewState);
- if (newSearch != null) {
- ISearchQuery query = ((RepositorySearchResult) newSearch).getQuery();
- IRepositoryQuery repositoryQuery = ((SearchHitCollector) query).getRepositoryQuery();
- openSearchWithBrowserAction.selectionChanged(new StructuredSelection(repositoryQuery));
- } else {
- openSearchWithBrowserAction.selectionChanged(StructuredSelection.EMPTY);
- }
- }
-
- public SearchResultSorter getSorter() {
- return searchResultSorter;
- }
-
- @Override
- public void restoreState(IMemento memento) {
- super.restoreState(memento);
- if (memento != null) {
- IMemento child = memento.getChild(MEMENTO_KEY_SORT);
- if (child != null && searchResultSorter != null) {
- searchResultSorter.getTaskComparator().restoreState(child);
- }
- }
- }
-
- @Override
- public void saveState(IMemento memento) {
- super.saveState(memento);
- if (memento != null) {
- IMemento child = memento.createChild(MEMENTO_KEY_SORT);
- if (searchResultSorter != null) {
- searchResultSorter.getTaskComparator().saveState(child);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchHitCollector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchHitCollector.java
deleted file mode 100644
index 0da8723d9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchHitCollector.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.tasks.core.ITaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Used for returning results from Eclipse Search view. Collects results of a repository search.
- *
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class SearchHitCollector extends TaskDataCollector implements ISearchQuery {
-
- private final ITaskList taskList;
-
- private final TaskRepository repository;
-
- private final IRepositoryQuery repositoryQuery;
-
- private final RepositorySearchResult searchResult;
-
- private AbstractRepositoryConnector connector;
-
- public SearchHitCollector(ITaskList tasklist, TaskRepository repository, IRepositoryQuery repositoryQuery) {
- this.taskList = tasklist;
- this.repository = repository;
- this.repositoryQuery = repositoryQuery;
- this.searchResult = new RepositorySearchResult(this);
- }
-
- public void aboutToStart() {
- searchResult.removeAll();
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- NewSearchUI.activateSearchResultView();
- }
- });
- }
-
- @Override
- public void accept(TaskData taskData) {
- ITask task = taskList.getTask(repository.getRepositoryUrl(), taskData.getTaskId());
- if (task == null) {
- task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
- if (connector != null) {
- connector.updateTaskFromTaskData(repository, task, taskData);
- }
- }
- searchResult.addMatch(new Match(task, 0, 0));
- }
-
- public String getLabel() {
- return Messages.SearchHitCollector_Querying_Repository_;
- }
-
- public boolean canRerun() {
- return true;
- }
-
- public boolean canRunInBackground() {
- return true;
- }
-
- public ISearchResult getSearchResult() {
- return searchResult;
- }
-
- public IStatus run(IProgressMonitor monitor) throws OperationCanceledException {
- monitor = Policy.monitorFor(monitor);
-
- aboutToStart();
-
- if (monitor.isCanceled()) {
- throw new OperationCanceledException(Messages.SearchHitCollector_Search_cancelled);
- }
- connector = TasksUi.getRepositoryManager().getRepositoryConnector(repositoryQuery.getConnectorKind());
- if (connector != null) {
- final IStatus status = connector.performQuery(repository, repositoryQuery, this, null, monitor);
- if (!status.isOK()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.displayStatus(Messages.SearchHitCollector_Search_failed, status);
- }
- });
- } else {
- if (searchResult.getMatchCount() >= TaskDataCollector.MAX_HITS) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.displayStatus(Messages.SearchHitCollector_Search_returned_maximum_number_of_hits,
- RepositoryStatus.createStatus(repository.getRepositoryUrl(), IStatus.WARNING,
- TasksUiPlugin.ID_PLUGIN, Messages.SearchHitCollector_Max_allowed_number_of_hits_returned_exceeded));
- }
- });
- }
- }
- } else {
- return new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, IStatus.OK,
- Messages.SearchHitCollector_Repository_connector_could_not_be_found, null);
- }
-
- return Status.OK_STATUS;
- }
-
- public IRepositoryQuery getRepositoryQuery() {
- return repositoryQuery;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultContentProvider.java
deleted file mode 100644
index 98cb03481..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultContentProvider.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * @author Rob Elves (moved into task.ui)
- * @see org.eclipse.jface.viewers.IContentProvider
- */
-public abstract class SearchResultContentProvider implements ITreeContentProvider {
-
- /** An empty array of objects */
- protected final Object[] EMPTY_ARR = new Object[0];
-
- /** The search result for this content provider */
- protected RepositorySearchResult searchResult;
-
- public void dispose() {
- // nothing to do
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- if (newInput instanceof RepositorySearchResult) {
- initialize((RepositorySearchResult) newInput);
- }
- }
-
- /**
- * Initializes the content provider with the given search result.
- *
- * @param result
- * The search result to use with this content provider
- */
- protected void initialize(RepositorySearchResult result) {
- searchResult = result;
- }
-
- /**
- * This method is called whenever the set of matches for the given elements changes.
- *
- * @param updatedElements
- * The array of objects that has to be refreshed
- * @see
- * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#elementsChanged(java.lang.Object[])
- */
- public abstract void elementsChanged(Object[] updatedElements);
-
- /**
- * Clears the viewer.
- */
- public abstract void clear();
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSortAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSortAction.java
deleted file mode 100644
index 9c76493b7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSortAction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.internal.tasks.ui.dialogs.TaskCompareDialog;
-
-/**
- * @author Steffen Pingel
- */
-public class SearchResultSortAction extends Action {
-
- private final RepositorySearchResultView view;
-
- public SearchResultSortAction(RepositorySearchResultView view) {
- super(Messages.SearchResultSortAction_Sort_Label);
- this.view = view;
- setEnabled(true);
- }
-
- @Override
- public void run() {
- TaskCompareDialog dialog = new TaskCompareDialog(view.getSite(), view.getSorter().getTaskComparator());
- if (dialog.open() == Window.OK) {
- view.getViewer().refresh();
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSorter.java
deleted file mode 100644
index 3e03da4b3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultSorter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - fix for bug 216150
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.search;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * Sorts search results.
- *
- * @see TaskComparator
- * @author Rob Elves
- * @author Frank Becker
- */
-public class SearchResultSorter extends ViewerSorter {
-
- private final TaskComparator taskComparator;
-
- public SearchResultSorter() {
- taskComparator = new TaskComparator();
- }
-
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (e1 instanceof ITask && e2 instanceof ITask) {
- ITask entry1 = (ITask) e1;
- ITask entry2 = (ITask) e2;
- return taskComparator.compare(entry1, entry2);
- } else {
- return super.compare(viewer, e1, e2);
- }
- }
-
- public TaskComparator getTaskComparator() {
- return taskComparator;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultTreeContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultTreeContentProvider.java
deleted file mode 100644
index 0afc59d6f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultTreeContentProvider.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.search;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.Person;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-
-/**
- * This implementation of <code>SearchResultContentProvider</code> is used for the table view of a Bugzilla search
- * result.
- *
- * @author Rob Elves (moved into task.ui)
- * @author Mik Kersten
- */
-public class SearchResultTreeContentProvider extends SearchResultContentProvider {
-
- private final Set<Object> elements = new LinkedHashSet<Object>();
-
- private final Map<String, Person> owners = new HashMap<String, Person>();
-
- private final Map<String, TaskGroup> completeState = new HashMap<String, TaskGroup>();
-
- public enum GroupBy {
- NONE, OWNER, COMPLETION;
- }
-
- private GroupBy selectedGroup;
-
- public SearchResultTreeContentProvider() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- if (newInput instanceof RepositorySearchResult) {
- searchResult = (RepositorySearchResult) newInput;
- clear();
- elementsChanged(searchResult.getElements());
- }
- }
-
- /**
- * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
- */
- public Object[] getElements(Object inputElement) {
- if (inputElement == searchResult) {
- if (selectedGroup == GroupBy.OWNER) {
- return owners.values().toArray();
- } else if (selectedGroup == GroupBy.COMPLETION) {
- return completeState.values().toArray();
- } else {
- return elements.toArray();
- }
- } else {
- return EMPTY_ARR;
- }
- }
-
- public Object[] getChildren(Object parent) {
- if (parent instanceof TaskGroup || parent instanceof Person) {
- return ((ITaskContainer) parent).getChildren().toArray();
- } else {
- return EMPTY_ARR;
- }
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return getChildren(element).length > 0;
- }
-
- @Override
- public void elementsChanged(Object[] updatedElements) {
- for (Object object : updatedElements) {
- boolean added = elements.add(object);
- if (added && object instanceof ITask) {
- AbstractTask task = ((AbstractTask) object);
- String owner = task.getOwner();
- if (owner == null) {
- owner = Messages.SearchResultTreeContentProvider__unknown_;
- }
- Person person = owners.get(owner);
- if (person == null) {
- person = new Person(owner, task.getConnectorKind(), task.getRepositoryUrl());
- owners.put(owner, person);
- }
- person.internalAddChild(task);
-
- TaskGroup completeIncomplete = null;
- if (task.isCompleted()) {
- completeIncomplete = completeState.get(Messages.SearchResultTreeContentProvider_Complete);
- if (completeIncomplete == null) {
- completeIncomplete = new TaskGroup("group-complete", Messages.SearchResultTreeContentProvider_Complete, GroupBy.COMPLETION.name()); //$NON-NLS-1$
- completeState.put(Messages.SearchResultTreeContentProvider_Complete, completeIncomplete);
- }
- } else {
- completeIncomplete = completeState.get(Messages.SearchResultTreeContentProvider_Incomplete);
- if (completeIncomplete == null) {
- completeIncomplete = new TaskGroup("group-incomplete", Messages.SearchResultTreeContentProvider_Incomplete, GroupBy.COMPLETION.name()); //$NON-NLS-1$
- completeState.put(Messages.SearchResultTreeContentProvider_Incomplete, completeIncomplete);
- }
- }
- completeIncomplete.internalAddChild(task);
- }
- }
- }
-
- @Override
- public void clear() {
- elements.clear();
- owners.clear();
- completeState.clear();
- }
-
- public GroupBy getSelectedGroup() {
- return selectedGroup;
- }
-
- public void setSelectedGroup(GroupBy selectedGroup) {
- this.selectedGroup = selectedGroup;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultsLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultsLabelProvider.java
deleted file mode 100644
index d4bf43870..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchResultsLabelProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.mylyn.internal.tasks.core.Person;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class SearchResultsLabelProvider extends TaskElementLabelProvider {
-
- private final SearchResultContentProvider contentProvider;
-
- private final TreeViewer viewer;
-
- public SearchResultsLabelProvider(SearchResultContentProvider contentProvider, TreeViewer viewer) {
- super(true);
- this.contentProvider = contentProvider;
- this.viewer = viewer;
- }
-
- @Override
- public String getText(Object object) {
- if (object instanceof TaskGroup || object instanceof Person) {
- Object[] children = contentProvider.getChildren(object);
- ViewerFilter[] filters = viewer.getFilters();
- int filtered = 0;
- if (filters.length > 0) {
- for (Object child : children) {
- for (ViewerFilter filter : filters) {
- if (!filter.select(viewer, object, child)) {
- filtered++;
- break; //don't count a child more the once
- }
- }
- }
- }
- if (filtered > 0) {
- return super.getText(object)
- + " (" //$NON-NLS-1$
- + MessageFormat.format(Messages.SearchResultsLabelProvider_OF, (children.length - filtered),
- children.length) + ")"; //$NON-NLS-1$
- } else {
- return super.getText(object) + " (" + children.length + ")"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- } else {
- return super.getText(object);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchScoreComputerAdapterFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchScoreComputerAdapterFactory.java
deleted file mode 100644
index 35b1b1337..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/SearchScoreComputerAdapterFactory.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.search;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TaskSearchPage;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.search.ui.ISearchPageScoreComputer;
-
-/**
- * Implements a {@link IAdapterFactory} for {@link ISearchPageScoreComputer}s which ranks {@link AbstractTaskContainer}s
- * high for the task search page
- *
- * @author Willian Mitsuda
- */
-public class SearchScoreComputerAdapterFactory implements IAdapterFactory {
-
- private final ISearchPageScoreComputer computer = new ISearchPageScoreComputer() {
-
- public int computeScore(String pageId, Object input) {
- if (!TaskSearchPage.ID.equals(pageId)) {
- return ISearchPageScoreComputer.UNKNOWN;
- }
- if (input instanceof IRepositoryElement) {
- return 100;
- }
- return ISearchPageScoreComputer.LOWEST;
- }
-
- };
-
- @SuppressWarnings("unchecked")
- public Object getAdapter(Object adaptableObject, Class adapterType) {
- if (ISearchPageScoreComputer.class.equals(adapterType)) {
- return computer;
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- public Class[] getAdapterList() {
- return new Class[] { ISearchPageScoreComputer.class };
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/StackTraceDuplicateDetector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/StackTraceDuplicateDetector.java
deleted file mode 100644
index 12af40934..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/StackTraceDuplicateDetector.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.search;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.internal.tasks.core.AbstractSearchHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractDuplicateDetector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Gail Murphy
- * @author Steffen Pingel
- */
-public class StackTraceDuplicateDetector extends AbstractDuplicateDetector {
-
- @Override
- public boolean canQuery(TaskData taskData) {
- return TasksUiPlugin.getDefault().getSearchHandler(taskData.getConnectorKind()) != null;
- }
-
- private String getDescription(TaskData taskData) {
- TaskAttribute attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION);
- if (attribute == null) {
- attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- }
- return (attribute != null) ? attribute.getTaskData().getAttributeMapper().getValueLabel(attribute) : ""; //$NON-NLS-1$
- }
-
- @Override
- public IRepositoryQuery getDuplicatesQuery(TaskRepository taskRepository, TaskData taskData) throws CoreException {
- String description = getDescription(taskData);
- String searchString = getStackTraceFromDescription(description);
- if (searchString == null) {
- throw new CoreException(new Status(IStatus.INFO, TasksUiPlugin.ID_PLUGIN,
- "Unable to locate a stack trace in the description text.")); //$NON-NLS-1$
- }
-
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(taskRepository);
- AbstractSearchHandler searchHandler = TasksUiPlugin.getDefault().getSearchHandler(
- taskRepository.getConnectorKind());
- if (searchHandler.queryForText(taskRepository, query, taskData, searchString)) {
- return query;
- }
- return null;
- }
-
- public static String getStackTraceFromDescription(String description) {
- String stackTrace = null;
-
- if (description == null) {
- return null;
- }
-
- String punct = "!\"#$%&'\\(\\)*+,-./:;\\<=\\>?@\\[\\]^_`\\{|\\}~\n"; //$NON-NLS-1$
- String lineRegex = " *at\\s+[\\w" + punct + "]+ ?\\(.*\\) *\n?"; //$NON-NLS-1$ //$NON-NLS-2$
- Pattern tracePattern = Pattern.compile(lineRegex);
- Matcher match = tracePattern.matcher(description);
-
- if (match.find()) {
- // record the index of the first stack trace line
- int start = match.start();
- int lastEnd = match.end();
-
- // find the last stack trace line
- while (match.find()) {
- lastEnd = match.end();
- }
-
- // make sure there's still room to find the exception
- if (start <= 0) {
- return null;
- }
-
- // count back to the line before the stack trace to find the
- // exception
- int stackStart = 0;
- int index = start - 1;
- while (index > 1 && description.charAt(index) == ' ') {
- index--;
- }
-
- // locate the exception line index
- stackStart = description.substring(0, index - 1).lastIndexOf("\n"); //$NON-NLS-1$
- stackStart = (stackStart == -1) ? 0 : stackStart + 1;
-
- stackTrace = description.substring(stackStart, lastEnd);
- }
-
- return stackTrace;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/messages.properties
deleted file mode 100644
index 66a7b78dd..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/messages.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-CreateQueryFromSearchAction_CLEAR_QUERY=Create Query
-CreateQueryFromSearchAction_Name_of_query_to_be_added_to_the_X=Name of query to be added to the {0}
-RepositorySearchResult_Task_search_X_matches=Task search - {0} matches
-RepositorySearchResult_Task_search_1_match=Task search - 1 match
-RepositorySearchResultView_Add_to_X_Category=Add to {0} Category
-RepositorySearchResultView_Create_Query_from_Search_=Create Query from Search...
-RepositorySearchResultView_Filter_Completed_Tasks=Filter Completed Tasks
-RepositorySearchResultView_Group_By_Owner=Group By Owner
-RepositorySearchResultView_Open_in_Editor=Open in Editor
-RepositorySearchResultView_Open_Search_with_Browser_Label=Open Search with Browser
-RepositorySearchResultView_Refine_Search_=Refine Search...
-
-SearchHitCollector_Max_allowed_number_of_hits_returned_exceeded=Max allowed number of hits returned exceeded. Some hits may not be displayed. Please narrow query scope.
-SearchHitCollector_Querying_Repository_=Querying Repository...
-SearchHitCollector_Repository_connector_could_not_be_found=Repository connector could not be found
-SearchHitCollector_Search_failed=Search failed
-SearchHitCollector_Search_cancelled=Search cancelled
-SearchHitCollector_Search_returned_maximum_number_of_hits=Search returned maximum number of hits
-
-SearchResultsLabelProvider_OF={0} of {1}
-
-SearchResultTreeContentProvider_Complete=Complete
-SearchResultTreeContentProvider_Incomplete=Incomplete
-SearchResultTreeContentProvider__unknown_=<unknown>
-
-SearchResultSortAction_Sort_Label=Sort...
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AbstractRetrieveTitleFromUrlJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AbstractRetrieveTitleFromUrlJob.java
deleted file mode 100644
index 47503e55b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AbstractRetrieveTitleFromUrlJob.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.IOException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.mylyn.commons.net.WebLocation;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.eclipse.mylyn.internal.tasks.ui.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Retrieves a title for a web page.
- *
- * @author Wesley Coelho
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public abstract class AbstractRetrieveTitleFromUrlJob extends Job {
-
- private volatile String pageTitle;
-
- private final String url;
-
- public AbstractRetrieveTitleFromUrlJob(String url) {
- super(Messages.AbstractRetrieveTitleFromUrlJob_Retrieving_summary_from_URL);
- this.url = url;
- }
-
- public String getPageTitle() {
- return pageTitle;
- }
-
- public String getUrl() {
- return url;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- try {
- pageTitle = WebUtil.getTitleFromUrl(new WebLocation(getUrl()), monitor);
- if (pageTitle != null) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- titleRetrieved(pageTitle);
- }
- });
- }
- } catch (IOException e) {
- return new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Retrieving summary from URL failed", e); //$NON-NLS-1$
- }
- return Status.OK_STATUS;
- }
-
- protected void titleRetrieved(String pageTitle) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AttachmentUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AttachmentUtil.java
deleted file mode 100644
index 04d30271c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/AttachmentUtil.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskAttachment;
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.core.sync.SubmitTaskAttachmentJob;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJob;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Steffen Pingel
- */
-public class AttachmentUtil {
-
- protected static final int BUFFER_SIZE = 1024;
-
- public static final String CONTEXT_DESCRIPTION = "mylyn/context/zip"; //$NON-NLS-1$
-
- private static final String CONTEXT_DESCRIPTION_LEGACY = "mylar/context/zip"; //$NON-NLS-1$
-
- private static final String CONTEXT_FILENAME = "mylyn-context.zip"; //$NON-NLS-1$
-
- private static final String CONTEXT_CONTENT_TYPE = "application/octet-stream"; //$NON-NLS-1$
-
- public static boolean postContext(AbstractRepositoryConnector connector, TaskRepository repository, ITask task,
- String comment, TaskAttribute attribute, IProgressMonitor monitor) throws CoreException {
- AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- ContextCorePlugin.getContextStore().saveActiveContext();
-
- File file = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- if (attachmentHandler != null && file != null && file.exists()) {
- FileTaskAttachmentSource attachment = new FileTaskAttachmentSource(file);
- attachment.setDescription(CONTEXT_DESCRIPTION);
- attachment.setName(CONTEXT_FILENAME);
- attachmentHandler.postContent(repository, task, attachment, comment, attribute, monitor);
- return true;
- }
- return false;
- }
-
- public static List<ITaskAttachment> getContextAttachments(TaskRepository repository, ITask task) {
- List<ITaskAttachment> contextAttachments = new ArrayList<ITaskAttachment>();
- TaskData taskData;
- try {
- taskData = TasksUi.getTaskDataManager().getTaskData(task);
- } catch (CoreException e) {
- // ignore
- return contextAttachments;
- }
- if (taskData != null) {
- List<TaskAttribute> taskAttachments = taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT);
- for (TaskAttribute attribute : taskAttachments) {
- TaskAttachment taskAttachment = new TaskAttachment(repository, task, attribute);
- taskData.getAttributeMapper().updateTaskAttachment(taskAttachment, attribute);
- if (isContext(taskAttachment)) {
- contextAttachments.add(taskAttachment);
- }
- }
- }
- return contextAttachments;
- }
-
- public static boolean hasContextAttachment(ITask task) {
- Assert.isNotNull(task);
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- List<ITaskAttachment> contextAttachments = getContextAttachments(repository, task);
- return contextAttachments.size() > 0;
- }
-
- public static boolean downloadContext(final ITask task, final ITaskAttachment attachment,
- final IRunnableContext context) {
- if (task.isActive()) {
- TasksUi.getTaskActivityManager().deactivateTask(task);
- }
- try {
- context.run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- File targetFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- try {
- OutputStream out = new BufferedOutputStream(new FileOutputStream(targetFile));
- try {
- AttachmentUtil.downloadAttachment(attachment, out, monitor);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- out.close();
- }
- } catch (OperationCanceledException e) {
- throw new InterruptedException();
- } catch (IOException e) {
- throw new InvocationTargetException(
- new CoreException(new RepositoryStatus(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_IO, "Error writing to context file", e))); //$NON-NLS-1$
- }
- }
- });
- } catch (InvocationTargetException e) {
- if (e.getCause() instanceof CoreException) {
- TasksUiInternal.displayStatus(Messages.AttachmentUtil_Mylyn_Information, ((CoreException) e.getCause()).getStatus());
- } else {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Unexpected error while retrieving context", e)); //$NON-NLS-1$
- }
- return false;
- } catch (InterruptedException ignored) {
- // canceled
- return false;
- }
- TasksUiInternal.getTaskList().notifyElementChanged(task);
- TasksUi.getTaskActivityManager().activateTask(task);
- return true;
- }
-
- public static boolean uploadContext(final TaskRepository repository, final ITask task, final String comment,
- final IRunnableContext context) {
- ContextCorePlugin.getContextStore().saveActiveContext();
- File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- if (!sourceContextFile.exists()) {
- TasksUiInternal.displayStatus(Messages.AttachmentUtil_Mylyn_Information, new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- Messages.AttachmentUtil_The_context_is_empty));
- return false;
- }
-
- FileTaskAttachmentSource source = new FileTaskAttachmentSource(sourceContextFile);
- source.setName(CONTEXT_FILENAME);
- source.setDescription(CONTEXT_DESCRIPTION);
- source.setContentType(CONTEXT_CONTENT_TYPE);
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- final SubmitJob submitJob = TasksUiInternal.getJobFactory().createSubmitTaskAttachmentJob(connector,
- repository, task, source, comment, null);
- try {
- context.run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- if (((SubmitTaskAttachmentJob) submitJob).run(monitor) == Status.CANCEL_STATUS) {
- throw new InterruptedException();
- }
- }
- });
- } catch (InvocationTargetException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Unexpected error while attaching context", e)); //$NON-NLS-1$
- return false;
- } catch (InterruptedException ignored) {
- // canceled
- return false;
- }
- if (submitJob.getStatus() != null) {
- TasksUiInternal.displayStatus(Messages.AttachmentUtil_Mylyn_Information, submitJob.getStatus());
- return false;
- }
- return true;
- }
-
- public static boolean hasLocalContext(ITask task) {
- Assert.isNotNull(task);
- return ContextCore.getContextManager().hasContext(task.getHandleIdentifier());
- }
-
- public static boolean isContext(ITaskAttachment attachment) {
- return CONTEXT_DESCRIPTION.equals(attachment.getDescription())
- || CONTEXT_DESCRIPTION_LEGACY.equals(attachment.getDescription());
- }
-
- public static boolean canUploadAttachment(ITask task) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- if (attachmentHandler != null) {
- return attachmentHandler.canPostContent(repository, task);
- }
- return false;
- }
-
- public static boolean canDownloadAttachment(ITask task) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- if (attachmentHandler != null) {
- return attachmentHandler.canGetContent(repository, task);
- }
- return false;
- }
-
- public static void downloadAttachment(ITaskAttachment attachment, OutputStream out, IProgressMonitor monitor)
- throws CoreException {
- try {
- monitor.beginTask(Messages.AttachmentUtil_Downloading_attachment, IProgressMonitor.UNKNOWN);
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- attachment.getConnectorKind());
- AbstractTaskAttachmentHandler handler = connector.getTaskAttachmentHandler();
- if (handler == null) {
- throw new CoreException(new RepositoryStatus(IStatus.INFO, TasksUiPlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_INTERNAL, "The repository does not support attachments.")); //$NON-NLS-1$
- }
-
- InputStream in = handler.getContent(attachment.getTaskRepository(), attachment.getTask(),
- attachment.getTaskAttribute(), monitor);
- try {
- byte[] buffer = new byte[BUFFER_SIZE];
- while (true) {
- Policy.checkCanceled(monitor);
- int count = in.read(buffer);
- if (count == -1) {
- return;
- }
- out.write(buffer, 0, count);
- }
- } catch (IOException e) {
- throw new CoreException(new RepositoryStatus(attachment.getTaskRepository(), IStatus.ERROR,
- TasksUiPlugin.ID_PLUGIN, RepositoryStatus.ERROR_IO, "IO error reading attachment: " //$NON-NLS-1$
- + e.getMessage(), e));
- } finally {
- try {
- in.close();
- } catch (IOException e) {
- StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN,
- "Error closing attachment stream", e)); //$NON-NLS-1$
- }
- }
- } finally {
- monitor.done();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ClipboardCopier.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ClipboardCopier.java
deleted file mode 100644
index 895fe6ce1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ClipboardCopier.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class ClipboardCopier {
-
- private Clipboard clipboard;
-
- public static String LINE_SEPARATOR = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public ClipboardCopier() {
- }
-
- public void copy(IStructuredSelection selection) {
- if (!selection.isEmpty()) {
- StringBuilder sb = new StringBuilder();
- for (Iterator<?> it = selection.iterator(); it.hasNext();) {
- Object item = it.next();
- String textForElement = getTextForElement(item);
- if (textForElement != null) {
- if (sb.length() > 0) {
- sb.append(LINE_SEPARATOR);
- sb.append(LINE_SEPARATOR);
- }
- sb.append(textForElement);
- }
- }
- copy(sb.toString());
- }
- }
-
- protected abstract String getTextForElement(Object element);
-
- public void copy(String text) {
- if (clipboard == null) {
- Display display = PlatformUI.getWorkbench().getDisplay();
- clipboard = new Clipboard(display);
- }
-
- TextTransfer textTransfer = TextTransfer.getInstance();
- clipboard.setContents(new Object[] { text }, new Transfer[] { textTransfer });
- }
-
- public void dispose() {
- if (clipboard != null) {
- clipboard.dispose();
- clipboard = null;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/CopyAttachmentToClipboardJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/CopyAttachmentToClipboardJob.java
deleted file mode 100644
index 8a47ef14e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/CopyAttachmentToClipboardJob.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.ByteArrayOutputStream;
-
-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.core.runtime.jobs.Job;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class CopyAttachmentToClipboardJob extends Job {
-
- private final ITaskAttachment attachment;
-
- public CopyAttachmentToClipboardJob(ITaskAttachment attachment) {
- super(Messages.CopyAttachmentToClipboardJob_Copying_Attachment_to_Clipboard);
- this.attachment = attachment;
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- try {
- AttachmentUtil.downloadAttachment(attachment, out, monitor);
- } catch (final CoreException e) {
- TasksUiInternal.asyncDisplayStatus(Messages.CopyAttachmentToClipboardJob_Copy_Attachment_to_Clipboard,
- e.getStatus());
- return Status.OK_STATUS;
- }
-
- String contents = new String(out.toByteArray());
- contents = contents.replaceAll("\r\n|\n", System.getProperty("line.separator")); //$NON-NLS-1$ //$NON-NLS-2$
- copyToClipboard(contents);
-
- return Status.OK_STATUS;
- }
-
- private void copyToClipboard(final String contents) {
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
- public void run() {
- Clipboard clipboard = new Clipboard(PlatformUI.getWorkbench().getDisplay());
- clipboard.setContents(new Object[] { contents }, new Transfer[] { TextTransfer.getInstance() });
- clipboard.dispose();
- }
- });
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DownloadAttachmentJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DownloadAttachmentJob.java
deleted file mode 100644
index a1347c4b4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DownloadAttachmentJob.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-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.core.runtime.jobs.Job;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-
-/**
- * @author Steffen Pingel
- */
-public class DownloadAttachmentJob extends Job {
-
- private final ITaskAttachment attachment;
-
- private final File targetFile;
-
- public DownloadAttachmentJob(ITaskAttachment attachment, File targetFile) {
- super(Messages.DownloadAttachmentJob_Downloading_Attachment);
- this.attachment = attachment;
- this.targetFile = targetFile;
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
- try {
- OutputStream out = new BufferedOutputStream(new FileOutputStream(targetFile));
- try {
- AttachmentUtil.downloadAttachment(attachment, out, monitor);
- } finally {
- out.close();
- }
- } catch (IOException e) {
- throw new CoreException(new RepositoryStatus(attachment.getTaskRepository(), IStatus.ERROR,
- TasksUiPlugin.ID_PLUGIN, RepositoryStatus.ERROR_IO, "IO error writing attachment: " //$NON-NLS-1$
- + e.getMessage(), e));
- }
- } catch (final CoreException e) {
- TasksUiInternal.asyncDisplayStatus(Messages.DownloadAttachmentJob_Copy_Attachment_to_Clipboard,
- e.getStatus());
- return Status.OK_STATUS;
- }
-
- return Status.OK_STATUS;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ImportExportUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ImportExportUtil.java
deleted file mode 100644
index 135ac75fb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/ImportExportUtil.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.File;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TransferList;
-import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.FileDialog;
-
-/**
- * @author Steffen Pingel
- */
-public class ImportExportUtil {
-
- public static void configureFilter(FileDialog dialog) {
- dialog.setFilterExtensions(PlatformUtil.getFilterExtensions(new String[] { "*" + ITasksCoreConstants.FILE_EXTENSION })); //$NON-NLS-1$
- dialog.setFilterNames(new String[] { NLS.bind(Messages.ImportExportUtil_Tasks_and_queries_Filter0,
- ITasksCoreConstants.FILE_EXTENSION) });
- }
-
- public static void export(File file, IStructuredSelection selection) throws CoreException {
- // extract queries and tasks from selection
- TransferList list = new TransferList();
- for (Iterator<?> it = selection.iterator(); it.hasNext();) {
- Object element = it.next();
- if (element instanceof AbstractTaskCategory) {
- list.addCategory((TaskCategory) element);
- } else if (element instanceof RepositoryQuery) {
- list.addQuery((RepositoryQuery) element);
- } else if (element instanceof ITask) {
- list.addTask((AbstractTask) element);
- }
- }
-
- TaskListExternalizer externalizer = TasksUiPlugin.getDefault().createTaskListExternalizer();
- externalizer.writeTaskList(list, file);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/Messages.java
deleted file mode 100644
index 8542bd013..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/Messages.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.util.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String AttachmentUtil_The_context_is_empty;
-
- public static String AttachmentUtil_Downloading_attachment;
-
- public static String AttachmentUtil_Mylyn_Information;
-
- public static String CopyAttachmentToClipboardJob_Copy_Attachment_to_Clipboard;
-
- public static String CopyAttachmentToClipboardJob_Copying_Attachment_to_Clipboard;
-
- public static String DownloadAttachmentJob_Copy_Attachment_to_Clipboard;
-
- public static String DownloadAttachmentJob_Downloading_Attachment;
-
- public static String ImportExportUtil_Tasks_and_queries_Filter0;
-
- public static String TaskDataExportOperation_exporting_task_data;
-
- public static String TasksUiInternal_Configuration_Refresh_Failed;
-
- public static String TasksUiInternal_Create_Task;
-
- public static String TasksUiInternal_The_new_task_will_be_added_to_the_X_container;
-
- public static String TasksUiInternal_Query_Synchronization_Failed;
-
- public static String TasksUiInternal_Task_Synchronization_Failed;
-
- public static String TasksUiInternal__hour_;
-
- public static String TasksUiInternal__hours_;
-
- public static String TasksUiInternal__minute_;
-
- public static String TasksUiInternal__minutes_;
-
- public static String TasksUiInternal__second;
-
- public static String TasksUiInternal__seconds;
-
- public static String TasksUiInternal_Failed_to_open_task;
-
- public static String TasksUiInternal_No_repository_found;
-
- public static String TasksUiInternal_See_error_log_for_details;
-
- public static String TasksUiMenus_Copy_Contents;
-
- public static String TasksUiMenus_Copy_URL;
-
- public static String TasksUiMenus_File_exists_;
-
- public static String TasksUiMenus_Overwrite_existing_file_;
-
- public static String TasksUiMenus_Save_;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/PlatformUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/PlatformUtil.java
deleted file mode 100644
index ad5d3d9c5..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/PlatformUtil.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * David Green - fix for bug 247182
- * Frank Becker - fixes for bug 259877
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.util;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-
-/**
- * @author Steffen Pingel
- */
-public class PlatformUtil {
-
- private static ByteArrayTransfer urlTransfer;
- static {
- // TODO e3.4 use URLTransfer directly and not through reflection
- // URLTransfer is package protected in Eclipse 3.3 (bug 100095)
- // use reflection to access instance for now
- try {
- Class<?> clazz = Class.forName("org.eclipse.swt.dnd.URLTransfer"); //$NON-NLS-1$
- Method method = clazz.getMethod("getInstance"); //$NON-NLS-1$
- if (method != null) {
- urlTransfer = (ByteArrayTransfer) method.invoke(null);
- }
- } catch (Throwable e) {
- // ignore
- }
- if (urlTransfer == null) {
- urlTransfer = new ByteArrayTransfer() {
-
- private static final String TYPE = "dummy"; //$NON-NLS-1$
-
- private final int TYPE_ID = registerType(TYPE);
-
- @Override
- protected int[] getTypeIds() {
- return new int[] { TYPE_ID };
- }
-
- @Override
- protected String[] getTypeNames() {
- return new String[] { TYPE };
- }
-
- };
- }
- }
-
- /**
- * bug 247182: file import dialog doesn't work on Mac OS X if the file extension has more than one dot.
- */
- public static String[] getFilterExtensions(String... extensions) {
- for (int i = 0; i < extensions.length; i++) {
- String extension = extensions[i];
- if (Platform.OS_MACOSX.equals(Platform.getOS())) {
- int j = extension.lastIndexOf('.');
- if (j != -1) {
- extension = extension.substring(j);
- }
- }
- extensions[i] = "*" + extension; //$NON-NLS-1$
- }
- return extensions;
- }
-
- public static int getToolTipXShift() {
- if ("gtk".equals(SWT.getPlatform()) || "carbon".equals(SWT.getPlatform()) || "cocoa".equals(SWT.getPlatform())) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return -26;
- } else {
- return -23;
- }
- }
-
- public static int getTreeImageOffset() {
- if ("carbon".equals(SWT.getPlatform())) { //$NON-NLS-1$
- return 16;
- } else if ("cocoa".equals(SWT.getPlatform())) { //$NON-NLS-1$
- return 13;
- } else {
- return 20;
- }
- }
-
- public static int getIncomingImageOffset() {
- if ("carbon".equals(SWT.getPlatform())) { //$NON-NLS-1$
- return 5;
- } else if ("cocoa".equals(SWT.getPlatform())) { //$NON-NLS-1$
- return 2;
- } else {
- return 6;
- }
- }
-
- public static int getTreeItemSquish() {
- if ("gtk".equals(SWT.getPlatform())) { //$NON-NLS-1$
- return 8;
- } else if ("carbon".equals(SWT.getPlatform()) || "cocoa".equals(SWT.getPlatform())) { //$NON-NLS-1$ //$NON-NLS-2$
- return 3;
- } else {
- return 0;
- }
- }
-
- // TODO e3.5: remove, platform has been fixed, see bug 272046
- public static boolean isPaintItemClippingRequired() {
- return "gtk".equals(SWT.getPlatform()); //$NON-NLS-1$
- }
-
- public static ByteArrayTransfer getUrlTransfer() {
- return urlTransfer;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/SelectionProviderAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/SelectionProviderAdapter.java
deleted file mode 100644
index 555263e7a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/SelectionProviderAdapter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-
-/**
- * @author Steffen Pingel
- * @deprecated use {@link org.eclipse.mylyn.internal.provisional.commons.ui.SelectionProviderAdapter} instead
- */
-@Deprecated
-public class SelectionProviderAdapter extends EventManager implements ISelectionProvider {
-
- private ISelection selection;
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- addListenerObject(listener);
- }
-
- public ISelection getSelection() {
- return selection;
- }
-
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- removeListenerObject(listener);
- }
-
- protected void selectionChanged(final SelectionChangedEvent event) {
- Object[] listeners = getListeners();
- for (int i = 0; i < listeners.length; ++i) {
- final ISelectionChangedListener listener = (ISelectionChangedListener) listeners[i];
- SafeRunner.run(new SafeRunnable() {
- public void run() {
- listener.selectionChanged(event);
- }
- });
- }
- }
-
- public void setSelection(ISelection selection) {
- this.selection = selection;
- selectionChanged(new SelectionChangedEvent(this, selection));
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskAttachmentPropertyTester.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskAttachmentPropertyTester.java
deleted file mode 100644
index 73722c3b9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskAttachmentPropertyTester.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Maarten Meijer - improvements for bug 252699
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.util;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskAttachmentPropertyTester extends PropertyTester {
-
- private static final String PROPERTY_IS_CONTEXT = "isContext"; //$NON-NLS-1$
-
- private static final String PROPERTY_HAS_URL = "hasUrl"; //$NON-NLS-1$
-
- private boolean equals(boolean value, Object expectedValue) {
- return new Boolean(value).equals(expectedValue);
- }
-
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- if (receiver instanceof ITaskAttachment) {
- ITaskAttachment taskAttachment = (ITaskAttachment) receiver;
- if (PROPERTY_IS_CONTEXT.equals(property)) {
- return equals(AttachmentUtil.isContext(taskAttachment), expectedValue);
- }
- if (PROPERTY_HAS_URL.equals(property)) {
- return equals(taskAttachment.getUrl() != null && taskAttachment.getUrl().length() > 0, expectedValue);
- }
-
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java
deleted file mode 100644
index 1b12f5bcb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskComparator.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements for bug 231336
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.util;
-
-import java.util.Comparator;
-import java.util.Date;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.internal.tasks.ui.dialogs.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskKeyComparator;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.ui.IMemento;
-
-/**
- * @author Mik Kersten
- * @author Frank Becker
- */
-public class TaskComparator implements Comparator<ITask> {
-
- public enum SortByIndex {
- DATE_CREATED, PRIORITY, SUMMARY, TASK_ID;
-
- public static SortByIndex valueOfLabel(String label) {
- for (SortByIndex value : values()) {
- if (value.getLabel().equals(label)) {
- return value;
- }
- }
- return null;
- }
-
- public String getLabel() {
- switch (this) {
- case PRIORITY:
- return Messages.TaskCompareDialog_Priority;
- case SUMMARY:
- return Messages.TaskCompareDialog_Summary;
- case DATE_CREATED:
- return Messages.TaskCompareDialog_DateCreated;
- case TASK_ID:
- return Messages.TaskCompareDialog_TaskID;
- default:
- return null;
- }
- }
-
- }
-
- public static final int DEFAULT_SORT_DIRECTION = 1;
-
- private static final SortByIndex DEFAULT_SORT_INDEX = SortByIndex.PRIORITY;
-
- private static final SortByIndex DEFAULT_SORT_INDEX2 = SortByIndex.DATE_CREATED;
-
- private static final String MEMENTO_KEY_SORT_DIRECTION = "sortDirection"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_SORT_DIRECTION2 = "sortDirection2"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_SORT_INDEX = "sortIndex"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_SORT_INDEX2 = "sortIndex2"; //$NON-NLS-1$
-
- /**
- * Return a array of values to pass to taskKeyComparator.compare() for sorting
- *
- * @param element
- * the element to sort
- * @return String array[component, taskId, summary]
- */
- public static String[] getSortableFromElement(IRepositoryElement element) {
- final String a[] = new String[] { "", null, element.getSummary() }; //$NON-NLS-1$
-
- if (element instanceof ITask) {
- ITask task1 = (ITask) element;
- if (task1.getTaskKey() != null) {
- a[1] = task1.getTaskKey();
- }
- }
- return a;
- }
-
- private SortByIndex sortByIndex = DEFAULT_SORT_INDEX;
-
- private SortByIndex sortByIndex2 = DEFAULT_SORT_INDEX2;
-
- private int sortDirection = DEFAULT_SORT_DIRECTION;
-
- private int sortDirection2 = DEFAULT_SORT_DIRECTION;
-
- private final TaskKeyComparator taskKeyComparator = new TaskKeyComparator();
-
- public TaskComparator() {
- }
-
- public int compare(ITask element1, ITask element2) {
- if (DEFAULT_SORT_INDEX.equals(sortByIndex)) {
- int result = sortByPriority(element1, element2, sortDirection);
- if (result != 0) {
- return result;
- }
-
- if (DEFAULT_SORT_INDEX2.equals(sortByIndex2)) {
- return sortByDate(element1, element2, sortDirection2);
- } else {
- if (SortByIndex.SUMMARY.equals(sortByIndex2)) {
- return sortBySummary(element1, element2, sortDirection2);
- } else if (SortByIndex.TASK_ID.equals(sortByIndex2)) {
- return sortByID(element1, element2, sortDirection2);
- } else {
- return result;
- }
- }
- } else if (DEFAULT_SORT_INDEX2.equals(sortByIndex)) {
- int result = sortByDate(element1, element2, sortDirection);
- if (result != 0) {
- return result;
- }
- if (DEFAULT_SORT_INDEX.equals(sortByIndex2)) {
- return sortByPriority(element1, element2, sortDirection2);
- } else {
- if (SortByIndex.SUMMARY.equals(sortByIndex2)) {
- return sortBySummary(element1, element2, sortDirection2);
- } else if (SortByIndex.TASK_ID.equals(sortByIndex2)) {
- return sortByID(element1, element2, sortDirection2);
- } else {
- return result;
- }
- }
- } else if (SortByIndex.SUMMARY.equals(sortByIndex)) {
- int result = sortBySummary(element1, element2, sortDirection);
- if (result != 0) {
- return result;
- }
- if (DEFAULT_SORT_INDEX2.equals(sortByIndex2)) {
- return sortByDate(element1, element2, sortDirection2);
- } else {
- if (DEFAULT_SORT_INDEX.equals(sortByIndex2)) {
- return sortByPriority(element1, element2, sortDirection2);
- } else if (SortByIndex.TASK_ID.equals(sortByIndex2)) {
- return sortByID(element1, element2, sortDirection2);
- } else {
- return result;
- }
- }
- } else {
- int result = sortByID(element1, element2, sortDirection);
- if (result != 0) {
- return result;
- }
- if (DEFAULT_SORT_INDEX2.equals(sortByIndex2)) {
- return sortByDate(element1, element2, sortDirection2);
- } else {
- if (DEFAULT_SORT_INDEX.equals(sortByIndex2)) {
- return sortByPriority(element1, element2, sortDirection2);
- } else if (SortByIndex.SUMMARY.equals(sortByIndex2)) {
- return sortBySummary(element1, element2, sortDirection2);
- } else {
- return result;
- }
- }
- }
- }
-
- public SortByIndex getSortByIndex() {
- return sortByIndex;
- }
-
- public SortByIndex getSortByIndex2() {
- return sortByIndex2;
- }
-
- public int getSortDirection() {
- return sortDirection;
- }
-
- private int getSortDirection(IMemento memento, String key, int defaultValue) {
- Integer value = memento.getInteger(key);
- if (value != null) {
- return value >= 0 ? 1 : -1;
- }
- return defaultValue;
- }
-
- public int getSortDirection2() {
- return sortDirection2;
- }
-
- private SortByIndex getSortIndex(IMemento memento, String key, SortByIndex defaultValue) {
- String value = memento.getString(key);
- if (value != null) {
- try {
- return SortByIndex.valueOf(value);
- } catch (IllegalArgumentException e) {
- // ignore
- }
- }
- return defaultValue;
- }
-
- public void restoreState(IMemento memento) {
- setSortByIndex(getSortIndex(memento, MEMENTO_KEY_SORT_INDEX, DEFAULT_SORT_INDEX));
- setSortDirection(getSortDirection(memento, MEMENTO_KEY_SORT_DIRECTION, DEFAULT_SORT_DIRECTION));
- setSortByIndex2(getSortIndex(memento, MEMENTO_KEY_SORT_INDEX2, DEFAULT_SORT_INDEX2));
- setSortDirection(getSortDirection(memento, MEMENTO_KEY_SORT_DIRECTION2, DEFAULT_SORT_DIRECTION));
- }
-
- public void saveState(IMemento memento) {
- memento.putString(MEMENTO_KEY_SORT_INDEX, getSortByIndex().name());
- memento.putInteger(MEMENTO_KEY_SORT_DIRECTION, getSortDirection());
- memento.putString(MEMENTO_KEY_SORT_INDEX2, getSortByIndex2().name());
- memento.putInteger(MEMENTO_KEY_SORT_DIRECTION2, getSortDirection2());
- }
-
- public void setSortByIndex(SortByIndex sortByIndex) {
- Assert.isNotNull(sortByIndex);
- this.sortByIndex = sortByIndex;
- }
-
- public void setSortByIndex2(SortByIndex sortByIndex) {
- Assert.isNotNull(sortByIndex);
- this.sortByIndex2 = sortByIndex;
- }
-
- public void setSortDirection(int sortDirection) {
- Assert.isTrue(sortDirection == -1 || sortDirection == 1);
- this.sortDirection = sortDirection;
- }
-
- public void setSortDirection2(int sortDirection) {
- Assert.isTrue(sortDirection == -1 || sortDirection == 1);
- this.sortDirection2 = sortDirection;
- }
-
- private int sortByDate(ITask element1, ITask element2, int sortDirection) {
- Date date1 = element1.getCreationDate();
- Date date2 = element2.getCreationDate();
- if (date1 == null) {
- return (date2 != null) ? sortDirection : 0;
- } else if (date2 == null) {
- return -sortDirection;
- }
- return sortDirection * date1.compareTo(date2);
- }
-
- private int sortByID(ITask element1, ITask element2, int sortDirection) {
- String key1 = element1.getTaskKey();
- String key2 = element2.getTaskKey();
- if (key1 == null) {
- return (key2 != null) ? sortDirection : 0;
- } else if (key2 == null) {
- return -sortDirection;
- }
- return sortDirection * taskKeyComparator.compare2(key1, key2);
- }
-
- private int sortByPriority(ITask element1, ITask element2, int sortDirection) {
- return sortDirection * element1.getPriority().compareToIgnoreCase(element2.getPriority());
- }
-
- private int sortBySummary(ITask element1, ITask element2, int sortDirection) {
- String key1 = element1.getSummary();
- String key2 = element2.getSummary();
- if (key1 == null) {
- return (key2 != null) ? sortDirection : 0;
- } else if (key2 == null) {
- return -sortDirection;
- }
- return sortDirection * key1.compareToIgnoreCase(key2);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskContainerComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskContainerComparator.java
deleted file mode 100644
index 0a1d866ba..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskContainerComparator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.util.Comparator;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskContainerComparator implements Comparator<AbstractTaskContainer> {
-
- public int compare(AbstractTaskContainer c1, AbstractTaskContainer c2) {
- if (c1.equals(TasksUiPlugin.getTaskList().getDefaultCategory())) {
- return -1;
- } else if (c2.equals(TasksUiPlugin.getTaskList().getDefaultCategory())) {
- return 1;
- } else {
- return c1.getSummary().compareToIgnoreCase(c2.getSummary());
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java
deleted file mode 100644
index fa3b49f6c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.commons.core.ZipFileUtil;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-
-/**
- * Zips task data up to specified directly and filename.
- *
- * @author Wesley Coelho
- * @author Mik Kersten
- * @author Rob Elves
- *
- * TODO: Move into internal.tasks.core
- */
-@SuppressWarnings("restriction")
-public class TaskDataExportOperation implements IRunnableWithProgress {
-
- private static final String EXPORT_JOB_LABEL = Messages.TaskDataExportOperation_exporting_task_data;
-
- private static final Pattern excludeHidden = Pattern.compile("^\\."); //$NON-NLS-1$
-
- private static final Pattern excludeBackup = Pattern.compile("backup\\z"); //$NON-NLS-1$
-
- private final String destinationDirectory;
-
- private final String destinationFilename;
-
- public TaskDataExportOperation(String destinationDirectory, String destinationFilename) {
- this.destinationFilename = destinationFilename;
- this.destinationDirectory = destinationDirectory;
- }
-
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-
- monitor = Policy.monitorFor(monitor);
- Set<File> filesToExport = new HashSet<File>();
-
- selectFiles(filesToExport);
-
- if (filesToExport.size() > 0 && Platform.isRunning()) {
- try {
- monitor.beginTask(EXPORT_JOB_LABEL, filesToExport.size() + 1);
-
- Job.getJobManager().beginRule(ITasksCoreConstants.ROOT_SCHEDULING_RULE,
- new SubProgressMonitor(monitor, 1));
- File destZipFile = new File(destinationDirectory + File.separator + destinationFilename);
-
- //TODO: append a (2) to the file?
- if (destZipFile.exists()) {
- destZipFile.delete();
- }
-
- ZipFileUtil.createZipFile(destZipFile, new ArrayList<File>(filesToExport), TasksUiPlugin.getDefault()
- .getDataDirectory(), monitor);
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not perform export", //$NON-NLS-1$
- e));
- } finally {
-
- Job.getJobManager().endRule(ITasksCoreConstants.ROOT_SCHEDULING_RULE);
- monitor.done();
- }
- }
- }
-
- protected void selectFiles(Set<File> filesToExport) {
- Set<Pattern> exclusionPatterns = new HashSet<Pattern>();
- exclusionPatterns.add(excludeHidden);
- exclusionPatterns.add(excludeBackup);
- String dataRoot = TasksUiPlugin.getDefault().getDataDirectory();
- File dataFolder = new File(dataRoot);
- for (File file : dataFolder.listFiles()) {
- boolean exclude = false;
- for (Pattern pattern : exclusionPatterns) {
- if (pattern.matcher(file.getName()).find()) {
- exclude = true;
- break;
- }
- }
- if (!exclude) {
- filesToExport.add(file);
- }
- }
-
- }
-
- protected File getSourceFolder() {
- return new File(TasksUiPlugin.getDefault().getDataDirectory());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataSnapshotOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataSnapshotOperation.java
deleted file mode 100644
index 227fc6072..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataSnapshotOperation.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.File;
-import java.util.Set;
-
-/**
- * @author Robert Elves
- */
-public class TaskDataSnapshotOperation extends TaskDataExportOperation {
-
- public TaskDataSnapshotOperation(String destinationDirectory, String destinationFilename) {
- super(destinationDirectory, destinationFilename);
- }
-
- @Override
- protected void selectFiles(Set<File> filesToExport) {
-
- filesToExport.add(new File(getSourceFolder(), "tasks.xml.zip")); //$NON-NLS-1$
- filesToExport.add(new File(getSourceFolder(), "repositories.xml.zip")); //$NON-NLS-1$
- filesToExport.add(new File(getSourceFolder(), "contexts/activity.xml.zip")); //$NON-NLS-1$
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java
deleted file mode 100644
index abf02f0cb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Jevgeni Holodkov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-
-/**
- * @author Mik Kersten
- * @author Leo Dos Santos
- * @author Steffen Pingel
- */
-public class TaskDragSourceListener extends DragSourceAdapter {
-
- private IStructuredSelection currentSelection;
-
- private final ISelectionProvider selectionProvider;
-
- public TaskDragSourceListener(ISelectionProvider selectionProvider) {
- this.selectionProvider = selectionProvider;
- }
-
- @Override
- public void dragStart(DragSourceEvent event) {
- ISelection selection = selectionProvider.getSelection();
- if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- this.currentSelection = (IStructuredSelection) selection;
- Iterator<?> it = currentSelection.iterator();
- while (it.hasNext()) {
- Object item = it.next();
- if (item instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) item;
- for (AbstractTaskContainer container : task.getParentContainers()) {
- if (container instanceof UnsubmittedTaskContainer) {
- event.doit = false;
- return;
- }
- }
- }
- }
- } else {
- this.currentSelection = null;
- event.doit = false;
- }
- }
-
- @Override
- public void dragSetData(DragSourceEvent event) {
- if (currentSelection == null || currentSelection.isEmpty()) {
- return;
- }
-
- if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
- LocalSelectionTransfer.getTransfer().setSelection(currentSelection);
- } else if (FileTransfer.getInstance().isSupportedType(event.dataType)) {
- try {
- File file = File.createTempFile(ITasksCoreConstants.EXPORT_FILE_NAME,
- ITasksCoreConstants.FILE_EXTENSION);
- file.deleteOnExit();
- ImportExportUtil.export(file, currentSelection);
-
- String[] paths = new String[1];
- paths[0] = file.getAbsolutePath();
- event.data = paths;
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Problems encountered dragging task", //$NON-NLS-1$
- e));
- } catch (IOException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Problems encountered dragging task", //$NON-NLS-1$
- e));
- }
- } else if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = CopyTaskDetailsAction.getTextForTask(currentSelection.getFirstElement());
- }
- }
-
- @Override
- public void dragFinished(DragSourceEvent event) {
- if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
- LocalSelectionTransfer.getTransfer().setSelection(null);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskPropertyTester.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskPropertyTester.java
deleted file mode 100644
index 4828c2698..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskPropertyTester.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ClearOutgoingAction;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Steffen Pingel
- */
-public class TaskPropertyTester extends PropertyTester {
-
- private static final String PROPERTY_CAN_GET_ATTACHEMNT = "canGetAttachment"; //$NON-NLS-1$
-
- private static final String PROPERTY_CAN_POST_ATTACHMENT = "canPostAttachment"; //$NON-NLS-1$
-
- private static final String PROPERTY_CONNECTOR_KIND = "connectorKind"; //$NON-NLS-1$
-
- private static final String PROPERTY_HAS_EDITS = "hasEdits"; //$NON-NLS-1$
-
- private static final String PROPERTY_HAS_LOCAL_CONTEXT = "hasLocalContext"; //$NON-NLS-1$
-
- private static final String PROPERTY_HAS_REPOSITORY_CONTEXT = "hasRepositoryContext"; //$NON-NLS-1$
-
- private static final String PROPERTY_IS_COMPLETED = "isCompleted"; //$NON-NLS-1$
-
- private static final String PROPERTY_IS_LOCAL = "isLocal"; //$NON-NLS-1$
-
- private static final String PROPERTY_LOCAL_COMPLETION_STATE = "hasLocalCompletionState"; //$NON-NLS-1$
-
- private boolean equals(boolean value, Object expectedValue) {
- return new Boolean(value).equals(expectedValue);
- }
-
- @SuppressWarnings("deprecation")
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- if (receiver instanceof ITask) {
- ITask task = (ITask) receiver;
- if (PROPERTY_CONNECTOR_KIND.equals(property)) {
- return task.getConnectorKind().equals(expectedValue);
- } else if (PROPERTY_CAN_POST_ATTACHMENT.equals(property)) {
- return equals(AttachmentUtil.canDownloadAttachment(task), expectedValue);
- } else if (PROPERTY_CAN_GET_ATTACHEMNT.equals(property)) {
- return equals(AttachmentUtil.canUploadAttachment(task), expectedValue);
- } else if (PROPERTY_HAS_EDITS.equals(property)) {
- return equals(ClearOutgoingAction.hasOutgoingChanges(task), expectedValue);
- } else if (PROPERTY_HAS_LOCAL_CONTEXT.equals(property)) {
- return equals(AttachmentUtil.hasLocalContext(task), expectedValue);
- } else if (PROPERTY_HAS_REPOSITORY_CONTEXT.equals(property)) {
- return equals(AttachmentUtil.hasContextAttachment(task), expectedValue);
- } else if (PROPERTY_IS_COMPLETED.equals(property)) {
- return equals(task.isCompleted(), expectedValue);
- } else if (PROPERTY_IS_LOCAL.equals(property)) {
- return (task instanceof AbstractTask) && equals(((AbstractTask) task).isLocal(), expectedValue);
- } else if (PROPERTY_LOCAL_COMPLETION_STATE.equals(property)) {
- return equals(TasksUiInternal.hasLocalCompletionState(task), expectedValue);
- }
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskRepositoryPropertyTester.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskRepositoryPropertyTester.java
deleted file mode 100644
index 0a7027b92..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskRepositoryPropertyTester.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jingwen Ou 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:
- * Jingwen Ou - initial API and implementation
- * Tasktop Technologies - enhancements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.util;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Jingwen Ou
- * @author Steffen Pingel
- */
-public class TaskRepositoryPropertyTester extends PropertyTester {
-
- private static final String PROPERTY_CONNECTOR_KIND = "connectorKind"; //$NON-NLS-1$
-
- private static final String PROPERTY_USER_MANAGED = "userManaged"; //$NON-NLS-1$
-
- private boolean equals(boolean value, Object expectedValue) {
- return new Boolean(value).equals(expectedValue);
- }
-
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- if (receiver instanceof TaskRepository) {
- TaskRepository repository = (TaskRepository) receiver;
- if (PROPERTY_CONNECTOR_KIND.equals(property)) {
- return repository.getConnectorKind().equals(expectedValue);
- } else if (PROPERTY_USER_MANAGED.equals(property)) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- return equals(connector != null && connector.isUserManaged(), expectedValue);
- }
- }
-
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java
deleted file mode 100644
index c14e6c357..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
-import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.AbstractTaskListPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.tasks.core.AbstractDuplicateDetector;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.AbstractTaskListMigrator;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author Mik Kersten
- * @author Shawn Minto
- * @author Rob Elves
- */
-public class TasksUiExtensionReader {
-
- public static final String EXTENSION_REPOSITORIES = "org.eclipse.mylyn.tasks.ui.repositories"; //$NON-NLS-1$
-
- public static final String EXTENSION_REPOSITORY_LINKS_PROVIDERS = "org.eclipse.mylyn.tasks.ui.projectLinkProviders"; //$NON-NLS-1$
-
- public static final String EXTENSION_TEMPLATES = "org.eclipse.mylyn.tasks.core.templates"; //$NON-NLS-1$
-
- public static final String EXTENSION_TMPL_REPOSITORY = "repository"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_LABEL = "label"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_URLREPOSITORY = "urlRepository"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_REPOSITORYKIND = "repositoryKind"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_CHARACTERENCODING = "characterEncoding"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_ANONYMOUS = "anonymous"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_VERSION = "version"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_URLNEWTASK = "urlNewTask"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_URLTASK = "urlTask"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_URLTASKQUERY = "urlTaskQuery"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_NEWACCOUNTURL = "urlNewAccount"; //$NON-NLS-1$
-
- public static final String ELMNT_TMPL_ADDAUTO = "addAutomatically"; //$NON-NLS-1$
-
- public static final String ELMNT_REPOSITORY_CONNECTOR = "connectorCore"; //$NON-NLS-1$
-
- public static final String ELMNT_REPOSITORY_LINK_PROVIDER = "linkProvider"; //$NON-NLS-1$
-
- public static final String ELMNT_REPOSITORY_UI = "connectorUi"; //$NON-NLS-1$
-
- public static final String ELMNT_MIGRATOR = "taskListMigrator"; //$NON-NLS-1$
-
- public static final String ATTR_BRANDING_ICON = "brandingIcon"; //$NON-NLS-1$
-
- public static final String ATTR_OVERLAY_ICON = "overlayIcon"; //$NON-NLS-1$
-
- public static final String ELMNT_TYPE = "type"; //$NON-NLS-1$
-
- public static final String ELMNT_QUERY_PAGE = "queryPage"; //$NON-NLS-1$
-
- public static final String ELMNT_SETTINGS_PAGE = "settingsPage"; //$NON-NLS-1$
-
- public static final String EXTENSION_TASK_CONTRIBUTOR = "org.eclipse.mylyn.tasks.ui.actions"; //$NON-NLS-1$
-
- public static final String ATTR_ACTION_CONTRIBUTOR_CLASS = "taskHandlerClass"; //$NON-NLS-1$
-
- public static final String DYNAMIC_POPUP_ELEMENT = "dynamicPopupMenu"; //$NON-NLS-1$
-
- public static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
- public static final String ATTR_MENU_PATH = "menuPath"; //$NON-NLS-1$
-
- public static final String EXTENSION_EDITORS = "org.eclipse.mylyn.tasks.ui.editors"; //$NON-NLS-1$
-
- public static final String ELMNT_TASK_EDITOR_PAGE_FACTORY = "pageFactory"; //$NON-NLS-1$
-
- public static final String EXTENSION_DUPLICATE_DETECTORS = "org.eclipse.mylyn.tasks.ui.duplicateDetectors"; //$NON-NLS-1$
-
- public static final String ELMNT_DUPLICATE_DETECTOR = "detector"; //$NON-NLS-1$
-
- public static final String ATTR_NAME = "name"; //$NON-NLS-1$
-
- public static final String ATTR_KIND = "kind"; //$NON-NLS-1$
-
- private static final String EXTENSION_PRESENTATIONS = "org.eclipse.mylyn.tasks.ui.presentations"; //$NON-NLS-1$
-
- public static final String ELMNT_PRESENTATION = "presentation"; //$NON-NLS-1$
-
- public static final String ATTR_ICON = "icon"; //$NON-NLS-1$
-
- public static final String ATTR_PRIMARY = "primary"; //$NON-NLS-1$
-
- public static final String ATTR_ID = "id"; //$NON-NLS-1$
-
- private static boolean coreExtensionsRead = false;
-
- public static void initStartupExtensions(TaskListExternalizer taskListExternalizer) {
- if (!coreExtensionsRead) {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
-
- // NOTE: has to be read first, consider improving
- List<AbstractTaskListMigrator> migrators = new ArrayList<AbstractTaskListMigrator>();
- IExtensionPoint repositoriesExtensionPoint = registry.getExtensionPoint(EXTENSION_REPOSITORIES);
- IExtension[] repositoryExtensions = repositoriesExtensionPoint.getExtensions();
- for (IExtension repositoryExtension : repositoryExtensions) {
- IConfigurationElement[] elements = repositoryExtension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELMNT_REPOSITORY_CONNECTOR)) {
- readRepositoryConnectorCore(element);
- } else if (element.getName().equals(ELMNT_MIGRATOR)) {
- readMigrator(element, migrators);
- }
- }
- }
- taskListExternalizer.initialize(migrators);
-
- IExtensionPoint templatesExtensionPoint = registry.getExtensionPoint(EXTENSION_TEMPLATES);
- IExtension[] templateExtensions = templatesExtensionPoint.getExtensions();
- for (IExtension templateExtension : templateExtensions) {
- IConfigurationElement[] elements = templateExtension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(EXTENSION_TMPL_REPOSITORY)) {
- readRepositoryTemplate(element);
- }
- }
- }
-
- IExtensionPoint presentationsExtensionPoint = registry.getExtensionPoint(EXTENSION_PRESENTATIONS);
- IExtension[] presentations = presentationsExtensionPoint.getExtensions();
- for (IExtension presentation : presentations) {
- IConfigurationElement[] elements = presentation.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- readPresentation(element);
- }
- }
-
- // NOTE: causes ..mylyn.context.ui to load
- IExtensionPoint editorsExtensionPoint = registry.getExtensionPoint(EXTENSION_EDITORS);
- IExtension[] editors = editorsExtensionPoint.getExtensions();
- for (IExtension editor : editors) {
- IConfigurationElement[] elements = editor.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELMNT_TASK_EDITOR_PAGE_FACTORY)) {
- readTaskEditorPageFactory(element);
- }
- }
- }
-
- coreExtensionsRead = true;
- }
- }
-
- public static void initWorkbenchUiExtensions() {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
-
- IExtensionPoint repositoriesExtensionPoint = registry.getExtensionPoint(EXTENSION_REPOSITORIES);
- IExtension[] repositoryExtensions = repositoriesExtensionPoint.getExtensions();
- for (IExtension repositoryExtension : repositoryExtensions) {
- IConfigurationElement[] elements = repositoryExtension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELMNT_REPOSITORY_UI)) {
- readRepositoryConnectorUi(element);
- }
- }
- }
-
- IExtensionPoint linkProvidersExtensionPoint = registry.getExtensionPoint(EXTENSION_REPOSITORY_LINKS_PROVIDERS);
- IExtension[] linkProvidersExtensions = linkProvidersExtensionPoint.getExtensions();
- for (IExtension linkProvidersExtension : linkProvidersExtensions) {
- IConfigurationElement[] elements = linkProvidersExtension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELMNT_REPOSITORY_LINK_PROVIDER)) {
- readLinkProvider(element);
- }
- }
- }
-
- IExtensionPoint duplicateDetectorsExtensionPoint = registry.getExtensionPoint(EXTENSION_DUPLICATE_DETECTORS);
- IExtension[] dulicateDetectorsExtensions = duplicateDetectorsExtensionPoint.getExtensions();
- for (IExtension dulicateDetectorsExtension : dulicateDetectorsExtensions) {
- IConfigurationElement[] elements = dulicateDetectorsExtension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(ELMNT_DUPLICATE_DETECTOR)) {
- readDuplicateDetector(element);
- }
- }
- }
-
- IExtensionPoint extensionPoint = registry.getExtensionPoint(EXTENSION_TASK_CONTRIBUTOR);
- IExtension[] extensions = extensionPoint.getExtensions();
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(DYNAMIC_POPUP_ELEMENT)) {
- readDynamicPopupContributor(element);
- }
- }
- }
- }
-
- private static void readPresentation(IConfigurationElement element) {
- try {
- String name = element.getAttribute(ATTR_NAME);
-
- String iconPath = element.getAttribute(ATTR_ICON);
- ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin( //
- element.getContributor().getName(), iconPath);
- AbstractTaskListPresentation presentation = (AbstractTaskListPresentation) element.createExecutableExtension(ATTR_CLASS);
- presentation.setPluginId(element.getNamespaceIdentifier());
- presentation.setImageDescriptor(imageDescriptor);
- presentation.setName(name);
-
- String primary = element.getAttribute(ATTR_PRIMARY);
- if (primary != null && primary.equals("true")) { //$NON-NLS-1$
- presentation.setPrimary(true);
- }
-
- TaskListView.addPresentation(presentation);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load presentation extension", e)); //$NON-NLS-1$
- }
- }
-
- private static void readDuplicateDetector(IConfigurationElement element) {
- try {
- Object obj = element.createExecutableExtension(ATTR_CLASS);
- if (obj instanceof AbstractDuplicateDetector) {
- AbstractDuplicateDetector duplicateDetector = (AbstractDuplicateDetector) obj;
- duplicateDetector.setName(element.getAttribute(ATTR_NAME));
- duplicateDetector.setConnectorKind(element.getAttribute(ATTR_KIND));
- TasksUiPlugin.getDefault().addDuplicateDetector(duplicateDetector);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load duplicate detector " + obj.getClass().getCanonicalName())); //$NON-NLS-1$
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load duplicate detector", e)); //$NON-NLS-1$
- }
- }
-
- private static void readLinkProvider(IConfigurationElement element) {
- try {
- Object repositoryLinkProvider = element.createExecutableExtension(ATTR_CLASS);
- if (repositoryLinkProvider instanceof AbstractTaskRepositoryLinkProvider) {
- TasksUiPlugin.getDefault().addRepositoryLinkProvider(
- (AbstractTaskRepositoryLinkProvider) repositoryLinkProvider);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load repository link provider " //$NON-NLS-1$
- + repositoryLinkProvider.getClass().getCanonicalName()));
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load repository link provider", e)); //$NON-NLS-1$
- }
- }
-
- private static void readTaskEditorPageFactory(IConfigurationElement element) {
- String id = element.getAttribute(ATTR_ID);
- if (id == null) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Editor page factory must specify id")); //$NON-NLS-1$
- return;
- }
-
- try {
- Object item = element.createExecutableExtension(ATTR_CLASS);
- if (item instanceof AbstractTaskEditorPageFactory) {
- AbstractTaskEditorPageFactory editorPageFactory = (AbstractTaskEditorPageFactory) item;
- editorPageFactory.setId(id);
- editorPageFactory.setPluginId(element.getNamespaceIdentifier());
- TasksUiPlugin.getDefault().addTaskEditorPageFactory(editorPageFactory);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load editor page factory " + item.getClass().getCanonicalName() + " must implement " //$NON-NLS-1$ //$NON-NLS-2$
- + AbstractTaskEditorPageFactory.class.getCanonicalName()));
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load page editor factory", //$NON-NLS-1$
- e));
- }
- }
-
- private static void readRepositoryConnectorCore(IConfigurationElement element) {
- try {
- Object connectorCore = element.createExecutableExtension(ATTR_CLASS);
- if (connectorCore instanceof AbstractRepositoryConnector) {
- AbstractRepositoryConnector repositoryConnector = (AbstractRepositoryConnector) connectorCore;
- TasksUiPlugin.getRepositoryManager().addRepositoryConnector(repositoryConnector);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load connector core " //$NON-NLS-1$
- + connectorCore.getClass().getCanonicalName()));
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load connector core", e)); //$NON-NLS-1$
- }
- }
-
- private static void readRepositoryConnectorUi(IConfigurationElement element) {
- try {
- Object connectorUiObject = element.createExecutableExtension(ATTR_CLASS);
- if (connectorUiObject instanceof AbstractRepositoryConnectorUi) {
- AbstractRepositoryConnectorUi connectorUi = (AbstractRepositoryConnectorUi) connectorUiObject;
- TasksUiPlugin.getDefault().addRepositoryConnectorUi(connectorUi);
-
- String iconPath = element.getAttribute(ATTR_BRANDING_ICON);
- if (iconPath != null) {
- ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(element.getContributor()
- .getName(), iconPath);
- if (descriptor != null) {
- TasksUiPlugin.getDefault().addBrandingIcon(connectorUi.getConnectorKind(),
- CommonImages.getImage(descriptor));
- }
- }
- String overlayIconPath = element.getAttribute(ATTR_OVERLAY_ICON);
- if (overlayIconPath != null) {
- ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(element.getContributor()
- .getName(), overlayIconPath);
- if (descriptor != null) {
- TasksUiPlugin.getDefault().addOverlayIcon(connectorUi.getConnectorKind(), descriptor);
- }
- }
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load connector ui " //$NON-NLS-1$
- + connectorUiObject.getClass().getCanonicalName()));
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load connector ui", e)); //$NON-NLS-1$
- }
- }
-
- private static void readRepositoryTemplate(IConfigurationElement element) {
- boolean anonymous = false;
- boolean addAuto = false;
-
- String label = element.getAttribute(ELMNT_TMPL_LABEL);
- String serverUrl = element.getAttribute(ELMNT_TMPL_URLREPOSITORY);
- String repKind = element.getAttribute(ELMNT_TMPL_REPOSITORYKIND);
- String version = element.getAttribute(ELMNT_TMPL_VERSION);
- String newTaskUrl = element.getAttribute(ELMNT_TMPL_URLNEWTASK);
- String taskPrefix = element.getAttribute(ELMNT_TMPL_URLTASK);
- String taskQueryUrl = element.getAttribute(ELMNT_TMPL_URLTASKQUERY);
- String newAccountUrl = element.getAttribute(ELMNT_TMPL_NEWACCOUNTURL);
- String encoding = element.getAttribute(ELMNT_TMPL_CHARACTERENCODING);
- addAuto = Boolean.parseBoolean(element.getAttribute(ELMNT_TMPL_ADDAUTO));
- anonymous = Boolean.parseBoolean(element.getAttribute(ELMNT_TMPL_ANONYMOUS));
-
- if (serverUrl != null && label != null && repKind != null
- && TasksUi.getRepositoryManager().getRepositoryConnector(repKind) != null) {
- RepositoryTemplate template = new RepositoryTemplate(label, serverUrl, encoding, version, newTaskUrl,
- taskPrefix, taskQueryUrl, newAccountUrl, anonymous, addAuto);
- TasksUiPlugin.getRepositoryTemplateManager().addTemplate(repKind, template);
-
- for (IConfigurationElement configElement : element.getChildren()) {
- String name = configElement.getAttribute("name"); //$NON-NLS-1$
- String value = configElement.getAttribute("value"); //$NON-NLS-1$
- if (name != null && !name.equals("") && value != null) { //$NON-NLS-1$
- template.addAttribute(name, value);
- }
- }
- } else {
- // TODO change error message to include hints about the cause of the error
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load repository template extension " + element.getName())); //$NON-NLS-1$
- }
- }
-
- private static void readDynamicPopupContributor(IConfigurationElement element) {
- try {
- Object dynamicPopupContributor = element.createExecutableExtension(ATTR_CLASS);
- String menuPath = element.getAttribute(ATTR_MENU_PATH);
- if (dynamicPopupContributor instanceof IDynamicSubMenuContributor) {
- TasksUiPlugin.getDefault().addDynamicPopupContributor(menuPath,
- (IDynamicSubMenuContributor) dynamicPopupContributor);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load dynamic popup menu: " + dynamicPopupContributor.getClass().getCanonicalName() //$NON-NLS-1$
- + " must implement " + IDynamicSubMenuContributor.class.getCanonicalName())); //$NON-NLS-1$
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load dynamic popup menu extension", e)); //$NON-NLS-1$
- }
- }
-
- private static void readMigrator(IConfigurationElement element, List<AbstractTaskListMigrator> migrators) {
- try {
- Object migratorObject = element.createExecutableExtension(ATTR_CLASS);
- if (migratorObject instanceof AbstractTaskListMigrator) {
- AbstractTaskListMigrator migrator = (AbstractTaskListMigrator) migratorObject;
- migrators.add(migrator);
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load task list migrator migrator: " + migratorObject.getClass().getCanonicalName() //$NON-NLS-1$
- + " must implement " + AbstractTaskListMigrator.class.getCanonicalName())); //$NON-NLS-1$
- }
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not load task list migrator extension", e)); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
deleted file mode 100644
index 426794667..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
+++ /dev/null
@@ -1,888 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-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.ProgressMonitorWrapper;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.core.CoreUtil;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-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.ITaskJobFactory;
-import org.eclipse.mylyn.internal.tasks.core.ITaskList;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.OpenRepositoryTaskJob;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.editors.CategoryEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.CategoryEditorInput;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.MultiRepositoryAwareWizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewAttachmentWizardDialog;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewTaskWizardInternal;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskAttachmentWizard;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryManager;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.sync.SynchronizationJob;
-import org.eclipse.mylyn.tasks.core.sync.TaskJob;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class TasksUiInternal {
-
- // TODO e3.4 replace with SWT.NO_SCROLL constant
- public static final int SWT_NO_SCROLL = 1 << 4;
-
- public static MultiRepositoryAwareWizard createNewTaskWizard(ITaskMapping taskSelection) {
- return new NewTaskWizardInternal(taskSelection);
- }
-
- public static ImageDescriptor getPriorityImage(ITask task) {
- if (task.isCompleted()) {
- return CommonImages.COMPLETE;
- } else {
- return TasksUiImages.getImageDescriptorForPriority(PriorityLevel.fromString(task.getPriority()));
- }
- }
-
- public static List<TaskEditor> getActiveRepositoryTaskEditors() {
- List<TaskEditor> repositoryTaskEditors = new ArrayList<TaskEditor>();
- IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
- for (IWorkbenchWindow window : windows) {
- IEditorReference[] editorReferences = window.getActivePage().getEditorReferences();
- for (IEditorReference editorReference : editorReferences) {
- try {
- if (editorReference.getEditorInput() instanceof TaskEditorInput) {
- TaskEditorInput input = (TaskEditorInput) editorReference.getEditorInput();
- if (input.getTask() != null) {
- IEditorPart editorPart = editorReference.getEditor(false);
- if (editorPart instanceof TaskEditor) {
- repositoryTaskEditors.add((TaskEditor) editorPart);
- }
- }
- }
- } catch (PartInitException e) {
- // ignore
- }
- }
- }
- return repositoryTaskEditors;
- }
-
- public static IProgressMonitor getUiMonitor(IProgressMonitor monitor) {
- return new ProgressMonitorWrapper(monitor) {
- @Override
- public void beginTask(final String name, final int totalWork) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getWrappedProgressMonitor().beginTask(name, totalWork);
- }
- });
- }
-
- @Override
- public void done() {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getWrappedProgressMonitor().done();
- }
- });
- }
-
- @Override
- public void subTask(final String name) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getWrappedProgressMonitor().subTask(name);
- }
- });
- }
-
- @Override
- public void worked(final int work) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getWrappedProgressMonitor().worked(work);
- }
- });
- }
- };
- }
-
- public static void openEditor(TaskCategory category) {
- final IEditorInput input = new CategoryEditorInput(category);
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page = window.getActivePage();
- TasksUiUtil.openEditor(input, CategoryEditor.ID_EDITOR, page);
- }
- }
- });
- }
-
- public static void refreshAndOpenTaskListElement(IRepositoryElement element) {
- if (element instanceof ITask) {
- final AbstractTask task = (AbstractTask) element;
-
- if (task instanceof LocalTask) {
- TasksUiUtil.openTask(task);
- } else {
- String repositoryKind = task.getConnectorKind();
- final AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repositoryKind);
-
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(repositoryKind,
- task.getRepositoryUrl());
- if (repository == null) {
- displayStatus(Messages.TasksUiInternal_Failed_to_open_task, new Status(IStatus.ERROR,
- TasksUiPlugin.ID_PLUGIN, Messages.TasksUiInternal_No_repository_found));
- return;
- }
-
- if (connector != null) {
- boolean opened = false;
- if (TasksUiPlugin.getTaskDataManager().hasTaskData(task)) {
- opened = TasksUiUtil.openTask(task);
- }
-
- if (!opened) {
- if (connector.canSynchronizeTask(repository, task)) {
- // TODO consider moving this into the editor, i.e. have the editor refresh the task if task data is missing
- TasksUiInternal.synchronizeTask(connector, task, true, new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiUtil.openTask(task);
- }
- });
- }
- });
- } else {
- TasksUiUtil.openTask(task);
- }
- }
- }
- }
- } else if (element instanceof TaskCategory) {
- TasksUiInternal.openEditor((TaskCategory) element);
- } else if (element instanceof IRepositoryQuery) {
- RepositoryQuery query = (RepositoryQuery) element;
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(query.getConnectorKind());
- TasksUiInternal.openEditQueryDialog(connectorUi, query);
- }
- }
-
- public static TaskJob updateRepositoryConfiguration(final TaskRepository taskRepository) {
- synchronized (taskRepository) {
- taskRepository.setUpdating(true);
- }
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- final TaskJob job = TasksUiInternal.getJobFactory().createUpdateRepositoryConfigurationJob(connector,
- taskRepository);
- job.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- synchronized (taskRepository) {
- taskRepository.setUpdating(false);
- }
- if (job.getStatus() != null) {
- Display display = PlatformUI.getWorkbench().getDisplay();
- if (!display.isDisposed()) {
- TasksUiInternal.displayStatus(Messages.TasksUiInternal_Configuration_Refresh_Failed,
- job.getStatus());
- }
- }
- }
- });
- job.schedule();
- return job;
- }
-
- private static void joinIfInTestMode(SynchronizationJob job) {
- // FIXME the client code should join the job
- if (CoreUtil.TEST_MODE) {
- try {
- job.join();
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- public static final Job synchronizeQueries(AbstractRepositoryConnector connector, TaskRepository repository,
- Set<RepositoryQuery> queries, IJobChangeListener listener, boolean force) {
- Assert.isTrue(queries.size() > 0);
-
- TaskList taskList = TasksUiPlugin.getTaskList();
- for (RepositoryQuery query : queries) {
- query.setSynchronizing(true);
- }
- taskList.notifySynchronizationStateChanged(queries);
-
- SynchronizationJob job = TasksUiPlugin.getTaskJobFactory().createSynchronizeQueriesJob(connector, repository,
- queries);
- job.setUser(force);
- if (listener != null) {
- job.addJobChangeListener(listener);
- }
- if (force) {
- final RepositoryQuery query = queries.iterator().next();
- job.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- if (query.getStatus() != null) {
- TasksUiInternal.asyncDisplayStatus(Messages.TasksUiInternal_Query_Synchronization_Failed,
- query.getStatus());
- }
- }
- });
- }
- job.schedule();
- joinIfInTestMode(job);
- return job;
- }
-
- /**
- * For synchronizing a single query. Use synchronize(Set, IJobChangeListener) if synchronizing multiple queries at a
- * time.
- */
- public static final Job synchronizeQuery(AbstractRepositoryConnector connector, RepositoryQuery repositoryQuery,
- IJobChangeListener listener, boolean force) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(repositoryQuery.getConnectorKind(),
- repositoryQuery.getRepositoryUrl());
- return synchronizeQueries(connector, repository, Collections.singleton(repositoryQuery), listener, force);
- }
-
- public static SynchronizationJob synchronizeAllRepositories(boolean force) {
- SynchronizationJob job = TasksUiPlugin.getTaskJobFactory().createSynchronizeRepositoriesJob(null);
- job.setUser(force);
- job.schedule();
- joinIfInTestMode(job);
- return job;
- }
-
- public static SynchronizationJob synchronizeRepository(TaskRepository repository, boolean force) {
- return TasksUiPlugin.getSynchronizationScheduler().synchronize(repository);
- }
-
- /**
- * Synchronize a single task. Note that if you have a collection of tasks to synchronize with this connector then
- * you should call synchronize(Set<Set<AbstractTask> repositoryTasks, ...)
- *
- * @param listener
- * can be null
- */
- public static Job synchronizeTask(AbstractRepositoryConnector connector, ITask task, boolean force,
- IJobChangeListener listener) {
- return synchronizeTasks(connector, Collections.singleton(task), force, listener);
- }
-
- /**
- * @param listener
- * can be null
- */
- public static Job synchronizeTasks(AbstractRepositoryConnector connector, Set<ITask> tasks, boolean force,
- IJobChangeListener listener) {
- ITaskList taskList = TasksUiInternal.getTaskList();
- for (ITask task : tasks) {
- ((AbstractTask) task).setSynchronizing(true);
- }
- ((TaskList) taskList).notifySynchronizationStateChanged(tasks);
- // TODO notify task list?
-
- SynchronizationJob job = TasksUiPlugin.getTaskJobFactory().createSynchronizeTasksJob(connector, tasks);
- job.setUser(force);
- job.setPriority(Job.DECORATE);
- if (listener != null) {
- job.addJobChangeListener(listener);
- }
- if (force && tasks.size() == 1) {
- final ITask task = tasks.iterator().next();
- job.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- if (task instanceof AbstractTask && ((AbstractTask) task).getStatus() != null) {
- TasksUiInternal.asyncDisplayStatus(Messages.TasksUiInternal_Task_Synchronization_Failed,
- ((AbstractTask) task).getStatus());
- }
- }
- });
- }
- job.schedule();
- joinIfInTestMode(job);
- return job;
- }
-
- public static ITaskJobFactory getJobFactory() {
- return TasksUiPlugin.getTaskJobFactory();
- }
-
- public static NewAttachmentWizardDialog openNewAttachmentWizard(Shell shell, TaskRepository taskRepository,
- ITask task, TaskAttribute taskAttribute, TaskAttachmentWizard.Mode mode, AbstractTaskAttachmentSource source) {
- TaskAttachmentWizard attachmentWizard = new TaskAttachmentWizard(taskRepository, task, taskAttribute);
- attachmentWizard.setSource(source);
- attachmentWizard.setMode(mode);
- NewAttachmentWizardDialog dialog = new NewAttachmentWizardDialog(shell, attachmentWizard, false);
- dialog.setBlockOnOpen(false);
- dialog.create();
- dialog.open();
- return dialog;
- }
-
- private static MessageDialog createDialog(Shell shell, String title, String message, int type) {
- return new MessageDialog(shell, title, null, message, type, new String[] { IDialogConstants.OK_LABEL }, 0);
- }
-
- private static void displayStatus(Shell shell, final String title, final IStatus status, boolean showLinkToErrorLog) {
- // avoid blocking ui when in test mode
- if (CoreUtil.TEST_MODE) {
- StatusHandler.log(status);
- return;
- }
-
- if (status.getCode() == RepositoryStatus.ERROR_INTERNAL) {
- StatusHandler.fail(status);
- } else {
- if (status instanceof RepositoryStatus && ((RepositoryStatus) status).isHtmlMessage()) {
- WebBrowserDialog.openAcceptAgreement(shell, title, status.getMessage(),
- ((RepositoryStatus) status).getHtmlMessage());
- } else {
- String message = status.getMessage();
- if (showLinkToErrorLog) {
- message += "\n\n" + Messages.TasksUiInternal_See_error_log_for_details; //$NON-NLS-1$
- }
- switch (status.getSeverity()) {
- case IStatus.CANCEL:
- case IStatus.INFO:
- createDialog(shell, title, message, MessageDialog.INFORMATION).open();
- break;
- case IStatus.WARNING:
- createDialog(shell, title, message, MessageDialog.WARNING).open();
- break;
- case IStatus.ERROR:
- default:
- createDialog(shell, title, message, MessageDialog.ERROR).open();
- break;
- }
- }
- }
- }
-
- public static void asyncDisplayStatus(final String title, final IStatus status) {
- Display display = PlatformUI.getWorkbench().getDisplay();
- if (!display.isDisposed()) {
- display.asyncExec(new Runnable() {
- public void run() {
- displayStatus(title, status);
- }
- });
- } else {
- StatusHandler.log(status);
- }
- }
-
- public static void logAndDisplayStatus(final String title, final IStatus status) {
- StatusHandler.log(status);
- IWorkbench workbench = PlatformUI.getWorkbench();
- if (workbench != null && !workbench.getDisplay().isDisposed()) {
- displayStatus(WorkbenchUtil.getShell(), title, status, true);
- }
- }
-
- public static void displayStatus(final String title, final IStatus status) {
- IWorkbench workbench = PlatformUI.getWorkbench();
- if (workbench != null && !workbench.getDisplay().isDisposed()) {
- displayStatus(WorkbenchUtil.getShell(), title, status, false);
- } else {
- StatusHandler.log(status);
- }
- }
-
- /**
- * Creates a new local task and schedules for today
- *
- * @param summary
- * if null DEFAULT_SUMMARY (New Task) used.
- */
- public static LocalTask createNewLocalTask(String summary) {
- if (summary == null) {
- summary = LocalRepositoryConnector.DEFAULT_SUMMARY;
- }
- TaskList taskList = TasksUiPlugin.getTaskList();
- LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), summary); //$NON-NLS-1$
- newTask.setPriority(PriorityLevel.P3.toString());
- TasksUiInternal.getTaskList().addTask(newTask);
- TasksUiPlugin.getTaskActivityManager().scheduleNewTask(newTask);
-
- TaskListView view = TaskListView.getFromActivePerspective();
- AbstractTaskCategory category = getSelectedCategory(view);
- if (view != null && view.getDrilledIntoCategory() != null && view.getDrilledIntoCategory() != category) {
- MessageDialog.openInformation(Display.getCurrent().getActiveShell(), Messages.TasksUiInternal_Create_Task,
- MessageFormat.format(Messages.TasksUiInternal_The_new_task_will_be_added_to_the_X_container,
- UncategorizedTaskContainer.LABEL));
- }
- taskList.addTask(newTask, category);
- return newTask;
- }
-
- public static AbstractTaskCategory getSelectedCategory(TaskListView view) {
- Object selectedObject = null;
- if (view != null) {
- selectedObject = ((IStructuredSelection) view.getViewer().getSelection()).getFirstElement();
- }
- if (selectedObject instanceof TaskCategory) {
- return (TaskCategory) selectedObject;
- } else if (selectedObject instanceof ITask) {
- ITask task = (ITask) selectedObject;
- AbstractTaskContainer container = TaskCategory.getParentTaskCategory(task);
- if (container instanceof TaskCategory) {
- return (TaskCategory) container;
- } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) {
- return (TaskCategory) view.getDrilledIntoCategory();
- }
- } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) {
- return (TaskCategory) view.getDrilledIntoCategory();
- }
- return TasksUiPlugin.getTaskList().getDefaultCategory();
- }
-
- public static Set<AbstractTaskContainer> getContainersFromWorkingSet(Set<IWorkingSet> containers) {
-
- Set<AbstractTaskContainer> allTaskContainersInWorkingSets = new HashSet<AbstractTaskContainer>();
- for (IWorkingSet workingSet : containers) {
- IAdaptable[] elements = workingSet.getElements();
- for (IAdaptable adaptable : elements) {
- if (adaptable instanceof AbstractTaskContainer) {
- allTaskContainersInWorkingSets.add(((AbstractTaskContainer) adaptable));
- }
- }
- }
- return allTaskContainersInWorkingSets;
- }
-
- /**
- * @since 3.0
- */
- public static void openEditQueryDialog(AbstractRepositoryConnectorUi connectorUi, IRepositoryQuery query) {
- try {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(),
- query.getRepositoryUrl());
- if (repository == null) {
- return;
- }
-
- IWizard wizard = connectorUi.getQueryWizard(repository, query);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (wizard != null && shell != null && !shell.isDisposed()) {
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.create();
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Window.CANCEL) {
- dialog.close();
- return;
- }
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to open query dialog", e)); //$NON-NLS-1$
- }
- }
-
- public static ITaskList getTaskList() {
- return TasksUiPlugin.getTaskList();
- }
-
- public static boolean isAnimationsEnabled() {
- IPreferenceStore store = PlatformUI.getPreferenceStore();
- return store.getBoolean(IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS);
- }
-
- public static boolean hasValidUrl(ITask task) {
- return isValidUrl(task.getUrl());
- }
-
- public static boolean isValidUrl(String url) {
- if (url != null && !url.equals("") && !url.equals("http://") && !url.equals("https://")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- try {
- new URL(url);
- return true;
- } catch (MalformedURLException e) {
- return false;
- }
- }
- return false;
- }
-
- /**
- * @deprecated use {@link #closeTaskEditorInAllPages(ITask, boolean)}
- */
- @Deprecated
- public static void closeEditorInActivePage(ITask task, boolean save) {
- Assert.isNotNull(task);
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window == null) {
- return;
- }
- IWorkbenchPage page = window.getActivePage();
- if (page == null) {
- return;
- }
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- IEditorInput input = new TaskEditorInput(taskRepository, task);
- IEditorPart editor = page.findEditor(input);
- if (editor != null) {
- page.closeEditor(editor, save);
- }
- }
-
- public static void closeTaskEditorInAllPages(ITask task, boolean save) {
- Assert.isNotNull(task);
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- IEditorInput input = new TaskEditorInput(taskRepository, task);
- IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
- for (IWorkbenchWindow window : windows) {
- IWorkbenchPage[] pages = window.getPages();
- for (IWorkbenchPage page : pages) {
- IEditorPart editor = page.findEditor(input);
- if (editor != null) {
- page.closeEditor(editor, save);
- }
- }
- }
- }
-
- public static boolean hasLocalCompletionState(ITask task) {
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- task.getConnectorKind());
- return connector.hasLocalCompletionState(taskRepository, task);
- }
-
- /**
- * Utility method to get the best parenting possible for a dialog. If there is a modal shell create it so as to
- * avoid two modal dialogs. If not then return the shell of the active workbench window. If neither can be found
- * return null.
- * <p>
- * <b>Note: Applied from patch on bug 99472.</b>
- *
- * @return Shell or <code>null</code>
- * @deprecated Use {@link WorkbenchUtil#getShell()} instead
- */
- @Deprecated
- public static Shell getShell() {
- return WorkbenchUtil.getShell();
- }
-
- public static TaskData createTaskData(TaskRepository taskRepository, ITaskMapping initializationData,
- ITaskMapping selectionData, IProgressMonitor monitor) throws CoreException {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- AbstractTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- TaskAttributeMapper mapper = taskDataHandler.getAttributeMapper(taskRepository);
- TaskData taskData = new TaskData(mapper, taskRepository.getConnectorKind(), taskRepository.getRepositoryUrl(),
- ""); //$NON-NLS-1$
- taskDataHandler.initializeTaskData(taskRepository, taskData, initializationData, monitor);
- if (selectionData != null) {
- connector.getTaskMapping(taskData).merge(selectionData);
- }
- return taskData;
- }
-
- public static void createAndOpenNewTask(TaskData taskData) throws CoreException {
- ITask task = TasksUiUtil.createOutgoingNewTask(taskData.getConnectorKind(), taskData.getRepositoryUrl());
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskData.getConnectorKind());
- ITaskMapping mapping = connector.getTaskMapping(taskData);
- String summary = mapping.getSummary();
- if (summary != null && summary.length() > 0) {
- task.setSummary(summary);
- }
- UnsubmittedTaskContainer unsubmitted = TasksUiPlugin.getTaskList().getUnsubmittedContainer(
- taskData.getRepositoryUrl());
- if (unsubmitted != null) {
- TasksUiPlugin.getTaskList().addTask(task, unsubmitted);
- }
- ITaskDataWorkingCopy workingCopy = TasksUi.getTaskDataManager().createWorkingCopy(task, taskData);
- workingCopy.save(null, null);
- TaskRepository localTaskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- TaskEditorInput editorInput = new TaskEditorInput(localTaskRepository, task);
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- TasksUiUtil.openEditor(editorInput, TaskEditor.ID_EDITOR, page);
- }
-
- /**
- * Only override if task should be opened by a custom editor, default behavior is to open with a rich editor,
- * falling back to the web browser if not available.
- *
- * @return true if the task was successfully opened
- */
- public static boolean openRepositoryTask(String connectorKind, String repositoryUrl, String id) {
- IRepositoryManager repositoryManager = TasksUi.getRepositoryManager();
- AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(connectorKind);
- String taskUrl = connector.getTaskUrl(repositoryUrl, id);
- if (taskUrl == null) {
- return false;
- }
-
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window == null) {
- IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
- if (windows != null && windows.length > 0) {
- window = windows[0];
- }
- }
- if (window == null) {
- return false;
- }
- IWorkbenchPage page = window.getActivePage();
-
- OpenRepositoryTaskJob job = new OpenRepositoryTaskJob(connectorKind, repositoryUrl, id, taskUrl, page);
- job.schedule();
-
- return true;
- }
-
- /**
- * @since 3.0
- */
- public static boolean openTaskInBackground(ITask task, boolean bringToTop) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IEditorPart activeEditor = null;
- IWorkbenchPart activePart = null;
- IWorkbenchPage activePage = window.getActivePage();
- if (activePage != null) {
- activeEditor = activePage.getActiveEditor();
- activePart = activePage.getActivePart();
- }
- boolean opened = TasksUiUtil.openTask(task);
- if (opened && activePage != null) {
- if (!bringToTop && activeEditor != null) {
- activePage.bringToTop(activeEditor);
- }
- if (activePart != null) {
- activePage.activate(activePart);
- }
- }
- return opened;
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Unable to open editor for \"" //$NON-NLS-1$
- + task.getSummary() + "\": no active workbench window")); //$NON-NLS-1$
- }
- return false;
- }
-
- /**
- * Returns text masking the &amp;-character from decoration as an accelerator in SWT labels.
- */
- public static String escapeLabelText(String text) {
- return (text != null) ? text.replace("&", "&&") : null; // mask & from SWT //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public static void preservingSelection(final TreeViewer viewer, Runnable runnable) {
- final ISelection selection = viewer.getSelection();
-
- runnable.run();
-
- if (selection != null) {
- ISelection newSelection = viewer.getSelection();
- if ((newSelection == null || newSelection.isEmpty()) && !(selection == null || selection.isEmpty())) {
- // delay execution to ensure that any delayed tree updates such as expand all have been processed and the selection is revealed properly
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- viewer.setSelection(selection, true);
- }
- });
- } else if (newSelection instanceof ITreeSelection && !newSelection.isEmpty()) {
- viewer.reveal(((ITreeSelection) newSelection).getFirstElement());
- }
- }
- }
-
- public static String getFormattedDuration(long duration, boolean includeSeconds) {
- long seconds = duration / 1000;
- long minutes = 0;
- long hours = 0;
- // final long SECOND = 1000;
- final long MIN = 60;
- final long HOUR = MIN * 60;
- String formatted = ""; //$NON-NLS-1$
-
- String hour = ""; //$NON-NLS-1$
- String min = ""; //$NON-NLS-1$
- String sec = ""; //$NON-NLS-1$
- if (seconds >= HOUR) {
- hours = seconds / HOUR;
- if (hours == 1) {
- hour = hours + Messages.TasksUiInternal__hour_;
- } else if (hours > 1) {
- hour = hours + Messages.TasksUiInternal__hours_;
- }
- seconds -= hours * HOUR;
-
- minutes = seconds / MIN;
- if (minutes == 1) {
- min = minutes + Messages.TasksUiInternal__minute_;
- } else if (minutes != 1) {
- min = minutes + Messages.TasksUiInternal__minutes_;
- }
- seconds -= minutes * MIN;
- if (seconds == 1) {
- sec = seconds + Messages.TasksUiInternal__second;
- } else if (seconds > 1) {
- sec = seconds + Messages.TasksUiInternal__seconds;
- }
- formatted += hour + min;
- if (includeSeconds) {
- formatted += sec;
- }
- } else if (seconds >= MIN) {
- minutes = seconds / MIN;
- if (minutes == 1) {
- min = minutes + Messages.TasksUiInternal__minute_;
- } else if (minutes != 1) {
- min = minutes + Messages.TasksUiInternal__minutes_;
- }
- seconds -= minutes * MIN;
- if (seconds == 1) {
- sec = seconds + Messages.TasksUiInternal__second;
- } else if (seconds > 1) {
- sec = seconds + Messages.TasksUiInternal__seconds;
- }
- formatted += min;
- if (includeSeconds) {
- formatted += sec;
- }
- } else {
- if (seconds == 1) {
- sec = seconds + Messages.TasksUiInternal__second;
- } else if (seconds > 1) {
- sec = seconds + Messages.TasksUiInternal__seconds;
- }
- if (includeSeconds) {
- formatted += sec;
- }
- }
- return formatted;
- }
-
- public static AbstractTask getTask(String repositoryUrl, String taskId, String fullUrl) {
- AbstractTask task = null;
- if (repositoryUrl != null && taskId != null) {
- task = (AbstractTask) TasksUiInternal.getTaskList().getTask(repositoryUrl, taskId);
- }
- if (task == null && fullUrl != null) {
- task = TasksUiInternal.getTaskByUrl(fullUrl);
- }
- if (task == null && repositoryUrl != null && taskId != null) {
- task = TasksUiPlugin.getTaskList().getTaskByKey(repositoryUrl, taskId);
- }
- return task;
- }
-
- /**
- * Searches for a task whose URL matches
- *
- * @return first task with a matching URL.
- */
- public static AbstractTask getTaskByUrl(String taskUrl) {
- Collection<AbstractTask> tasks = TasksUiPlugin.getTaskList().getAllTasks();
- for (AbstractTask task : tasks) {
- String currUrl = task.getUrl();
- if (currUrl != null && !currUrl.equals("") && currUrl.equals(taskUrl)) { //$NON-NLS-1$
- return task;
- }
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiMenus.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiMenus.java
deleted file mode 100644
index 8b370de9a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiMenus.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.io.File;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class TasksUiMenus {
-
- private static final String ATTACHMENT_DEFAULT_NAME = "attachment"; //$NON-NLS-1$
-
- private static final String CTYPE_ZIP = "zip"; //$NON-NLS-1$
-
- private static final String CTYPE_OCTET_STREAM = "octet-stream"; //$NON-NLS-1$
-
- private static final String CTYPE_TEXT = "text"; //$NON-NLS-1$
-
- private static final String CTYPE_HTML = "html"; //$NON-NLS-1$
-
- public static void fillTaskAttachmentMenu(IMenuManager manager) {
- final Action saveAction = new Action(Messages.TasksUiMenus_Save_) {
- @Override
- public void run() {
- ITaskAttachment attachment = getSelectedAttachment();
- if (attachment == null) {
- return;
- }
-
- /* Launch Browser */
- FileDialog fileChooser = new FileDialog(WorkbenchUtil.getShell(), SWT.SAVE);
- String fname = attachment.getFileName();
- // default name if none is found
- if (fname.equals("")) { //$NON-NLS-1$
- String ctype = attachment.getContentType();
- if (ctype.endsWith(CTYPE_HTML)) {
- fname = ATTACHMENT_DEFAULT_NAME + ".html"; //$NON-NLS-1$
- } else if (ctype.startsWith(CTYPE_TEXT)) {
- fname = ATTACHMENT_DEFAULT_NAME + ".txt"; //$NON-NLS-1$
- } else if (ctype.endsWith(CTYPE_OCTET_STREAM)) {
- fname = ATTACHMENT_DEFAULT_NAME;
- } else if (ctype.endsWith(CTYPE_ZIP)) {
- fname = ATTACHMENT_DEFAULT_NAME + "." + CTYPE_ZIP; //$NON-NLS-1$
- } else {
- fname = ATTACHMENT_DEFAULT_NAME + "." + ctype.substring(ctype.indexOf("/") + 1); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- fileChooser.setFileName(fname);
- String filePath = fileChooser.open();
- // check if the dialog was canceled or an error occurred
- if (filePath == null) {
- return;
- }
-
- File file = new File(filePath);
- if (file.exists()) {
- if (!MessageDialog.openConfirm(WorkbenchUtil.getShell(), Messages.TasksUiMenus_File_exists_,
- Messages.TasksUiMenus_Overwrite_existing_file_ + file.getName())) {
- return;
- }
- }
-
- DownloadAttachmentJob job = new DownloadAttachmentJob(attachment, file);
- job.setUser(true);
- job.schedule();
- }
- };
-
- final Action copyURLToClipAction = new Action(Messages.TasksUiMenus_Copy_URL) {
- @Override
- public void run() {
- ITaskAttachment attachment = getSelectedAttachment();
- if (attachment != null) {
- Clipboard clip = new Clipboard(PlatformUI.getWorkbench().getDisplay());
- clip.setContents(new Object[] { attachment.getUrl() },
- new Transfer[] { TextTransfer.getInstance() });
- clip.dispose();
- }
- }
- };
-
- final Action copyToClipAction = new Action(Messages.TasksUiMenus_Copy_Contents) {
- @Override
- public void run() {
- ITaskAttachment attachment = getSelectedAttachment();
- if (attachment != null) {
- CopyAttachmentToClipboardJob job = new CopyAttachmentToClipboardJob(attachment);
- job.setUser(true);
- job.schedule();
- }
- }
- };
-
- manager.add(new Separator("group.open")); //$NON-NLS-1$
- manager.add(new Separator("group.save")); //$NON-NLS-1$
- manager.add(saveAction);
- manager.add(copyURLToClipAction);
- manager.add(copyToClipAction);
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- private static ITaskAttachment getSelectedAttachment() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- ISelection windowSelection = window.getSelectionService().getSelection();
- IStructuredSelection selection = null;
- if (windowSelection instanceof IStructuredSelection) {
- selection = (IStructuredSelection) windowSelection;
- }
- if (selection == null || selection.isEmpty()) {
- return null;
- }
- if (selection.getFirstElement() instanceof ITaskAttachment) {
- return (ITaskAttachment) selection.getFirstElement();
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TreeWalker.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TreeWalker.java
deleted file mode 100644
index cb2739144..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TreeWalker.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @author Steffen Pingel
- */
-public class TreeWalker {
-
- public enum Direction {
- UP, DOWN
- };
-
- public static abstract class TreeVisitor {
-
- public abstract boolean visit(Object object);
-
- }
-
- private Direction direction = Direction.DOWN;
-
- private final TreeViewer treeViewer;
-
- private final Tree tree;
-
- private boolean expandNodes;
-
- public TreeWalker(TreeViewer treeViewer) {
- this.treeViewer = treeViewer;
- this.tree = treeViewer.getTree();
- }
-
- public Direction getDirection() {
- return direction;
- }
-
- public boolean getExpandNodes() {
- return expandNodes;
- }
-
- private TreePath getTreePath(TreeItem item) {
- List<Object> path = new ArrayList<Object>();
- do {
- // the tree is probably not fully refreshed at this point
- if (item.getData() == null) {
- return null;
- }
- path.add(0, item.getData());
- item = item.getParentItem();
- } while (item != null);
- return new TreePath(path.toArray());
- }
-
- public void setDirection(Direction direction) {
- this.direction = direction;
- }
-
- public void setExpandNodes(boolean expandNodes) {
- this.expandNodes = expandNodes;
- }
-
- private TreePath visitChildren(TreeViewer viewer, TreePath itemPath, TreeItem item, TreeVisitor visitor) {
- boolean restoreCollapsedState = false;
- // expand item
- try {
- if (getExpandNodes()) {
- boolean expandedState = item.getExpanded();
- if (!expandedState) {
- restoreCollapsedState = true;
- viewer.setExpandedState(itemPath, true);
- }
- }
-
- TreeItem[] children = item.getItems();
- if (children.length > 0 && children[0].getData() != null) {
- TreePath childPath = visitItems(viewer, itemPath, children, null, visitor);
- if (childPath != null) {
- return childPath;
- }
- }
-
- } finally {
- if (restoreCollapsedState) {
- // restore item state
- viewer.setExpandedState(itemPath, false);
- }
- }
-
- return null;
- }
-
- private TreePath visitItems(TreeViewer viewer, TreePath parentPath, TreeItem[] items, TreeItem visitedItem,
- TreeVisitor visitor) {
- if (direction == Direction.UP) {
- Collections.reverse(Arrays.asList(items));
- }
-
- boolean found = (visitedItem == null);
- for (TreeItem item : items) {
- if (!found) {
- if (item == visitedItem) {
- found = true;
- }
- } else {
- TreePath itemPath = parentPath.createChildPath(item.getData());
-
- if (direction == Direction.DOWN) {
- if (visitor.visit(item.getData())) {
- return itemPath;
- }
- }
-
- TreePath childPath = visitChildren(viewer, itemPath, item, visitor);
- if (childPath != null) {
- return childPath;
- }
-
- if (direction == Direction.UP) {
- if (visitor.visit(item.getData())) {
- return itemPath;
- }
- }
- }
- }
-
- // visit parent siblings
- if (visitedItem != null) {
- TreeItem parent = visitedItem.getParentItem();
- if (parent != null) {
- if (direction == Direction.UP) {
- if (visitor.visit(parent.getData())) {
- return parentPath;
- }
- }
-
- return visitSiblings(viewer, parent, visitor);
- }
- }
-
- return null;
- }
-
- private TreePath visitSiblings(TreeViewer viewer, TreeItem item, TreeVisitor visitor) {
- TreeItem[] siblings;
- TreePath path;
- TreeItem parent = item.getParentItem();
- if (parent != null) {
- path = getTreePath(parent);
- if (path == null) {
- return null;
- }
- siblings = parent.getItems();
- } else {
- path = TreePath.EMPTY;
- siblings = viewer.getTree().getItems();
- }
- return visitItems(viewer, path, siblings, item, visitor);
- }
-
- public TreePath walk(TreeVisitor visitor, TreeItem startItem) {
- TreePath path = null;
- if (startItem != null) {
- if (direction == Direction.DOWN) {
- path = getTreePath(startItem);
- if (path != null) {
- path = visitChildren(treeViewer, path, startItem, visitor);
- }
- }
- if (path == null) {
- path = visitSiblings(treeViewer, startItem, visitor);
- }
- } else {
- path = visitItems(treeViewer, TreePath.EMPTY, tree.getItems(), null, visitor);
- }
-
- return path;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/WebBrowserDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/WebBrowserDialog.java
deleted file mode 100644
index 5e4c53d0c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/WebBrowserDialog.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.util;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Dialog to show the contents of an html page to the user
- *
- * @author Shawn Minto
- */
-public class WebBrowserDialog extends MessageDialog {
-
- private String data = null;
-
- public WebBrowserDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage, String dialogMessage,
- int dialogImageType, String[] dialogButtonLabels, int defaultIndex, String data) {
- super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels,
- defaultIndex);
- this.data = data;
- this.setShellStyle(SWT.SHELL_TRIM | SWT.RESIZE);
- }
-
- public static int openAcceptAgreement(Shell parent, String title, String message, String data) {
- WebBrowserDialog dialog = new WebBrowserDialog(parent, title, null, // accept
- message, NONE, new String[] { IDialogConstants.OK_LABEL }, 0, data);
- // ok is the default
- return dialog.open();
- }
-
- @Override
- public Control createCustomArea(Composite parent) {
- GridLayout layout = new GridLayout();
- parent.setLayout(layout);
- layout.numColumns = 1;
-
- Browser b = new Browser(parent, SWT.NONE);
- GridData gd = new GridData(GridData.FILL_BOTH);
- gd.horizontalSpan = 1;
- gd.verticalSpan = 50;
- b.setLayoutData(gd);
- b.setText(data);
-
- return parent;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/messages.properties
deleted file mode 100644
index d25da0968..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/messages.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-AttachmentUtil_The_context_is_empty=The context is empty.
-AttachmentUtil_Downloading_attachment=Downloading attachment
-AttachmentUtil_Mylyn_Information=Mylyn Information
-
-CopyAttachmentToClipboardJob_Copy_Attachment_to_Clipboard=Copy Attachment to Clipboard
-CopyAttachmentToClipboardJob_Copying_Attachment_to_Clipboard=Copying Attachment to Clipboard
-
-DownloadAttachmentJob_Copy_Attachment_to_Clipboard=Copy Attachment to Clipboard
-DownloadAttachmentJob_Downloading_Attachment=Downloading Attachment
-ImportExportUtil_Tasks_and_queries_Filter0=Mylyn Tasks and Queries (*{0})
-
-TaskDataExportOperation_exporting_task_data=Exporting Task Data
-
-TasksUiInternal_Configuration_Refresh_Failed=Configuration Refresh Failed
-TasksUiInternal_Create_Task=Create Task
-TasksUiInternal_The_new_task_will_be_added_to_the_X_container=The new task will be added to the {0} container, since tasks can not be added to a query.
-TasksUiInternal_Query_Synchronization_Failed=Query Synchronization Failed
-TasksUiInternal_Task_Synchronization_Failed=Task Synchronization Failed
-TasksUiInternal__hour_=\ hour
-TasksUiInternal__hours_=\ hours
-TasksUiInternal__minute_=\ minute
-TasksUiInternal__minutes_=\ minutes
-TasksUiInternal__second=\ second
-TasksUiInternal__seconds=\ seconds
-TasksUiInternal_Failed_to_open_task=Failed to Open Task
-TasksUiInternal_No_repository_found=No repository found for task. Please create repository in Task Repositories view.
-TasksUiInternal_See_error_log_for_details=See error log for details.
-
-TasksUiMenus_Copy_Contents=Copy Contents
-TasksUiMenus_Copy_URL=Copy &URL
-TasksUiMenus_File_exists_=File exists\!
-TasksUiMenus_Overwrite_existing_file_=Overwrite existing file?\n
-TasksUiMenus_Save_=Save...
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListContentProvider.java
deleted file mode 100644
index 39c7bb3f3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListContentProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-/**
- * @author Eugene Kuleshov
- * @author Mik Kersten
- */
-public abstract class AbstractTaskListContentProvider implements ITreeContentProvider {
-
- protected TaskListView taskListView;
-
- public AbstractTaskListContentProvider(TaskListView view) {
- this.taskListView = view;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListPresentation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListPresentation.java
deleted file mode 100644
index 70becff76..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/AbstractTaskListPresentation.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPluginContribution;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- */
-public abstract class AbstractTaskListPresentation implements IPluginContribution {
-
- private String pluginId;
-
- private final String id;
-
- private String name;
-
- private ImageDescriptor imageDescriptor;
-
- private boolean primary = false;
-
- private final Map<TaskListView, AbstractTaskListContentProvider> contentProviders = new HashMap<TaskListView, AbstractTaskListContentProvider>();
-
- public AbstractTaskListPresentation(String id) {
- this.id = id;
- }
-
- public AbstractTaskListContentProvider getContentProvider(TaskListView taskListView) {
- AbstractTaskListContentProvider contentProvider = contentProviders.get(taskListView);
- if (contentProvider == null) {
- contentProvider = createContentProvider(taskListView);
- contentProviders.put(taskListView, contentProvider);
- }
- return contentProvider;
- }
-
- /**
- * Creates a new instance of a content provider for a particular instance of the Task List
- *
- * TODO: change view parameter to be the viewer
- */
- protected abstract AbstractTaskListContentProvider createContentProvider(TaskListView taskListView);
-
- public ImageDescriptor getImageDescriptor() {
- return imageDescriptor;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setImageDescriptor(ImageDescriptor imageDescriptor) {
- this.imageDescriptor = imageDescriptor;
- }
-
- public boolean isPrimary() {
- return primary;
- }
-
- public void setPrimary(boolean primary) {
- this.primary = primary;
- }
-
- public String getId() {
- return id;
- }
-
- public final String getLocalId() {
- return getId();
- }
-
- public final String getPluginId() {
- return pluginId;
- }
-
- public final void setPluginId(String pluginId) {
- this.pluginId = pluginId;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
deleted file mode 100644
index 574531c67..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/CustomTaskListDecorationDrawer.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - fixes for bug 169916
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFonts;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.PlatformUtil;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @author Mik Kersten
- */
-class CustomTaskListDecorationDrawer implements Listener {
-
- private final TaskListView taskListView;
-
- private final int activationImageOffset;
-
- private final Image taskActive = CommonImages.getImage(TasksUiImages.CONTEXT_ACTIVE);
-
- private final Image taskInactive = CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE_EMPTY);
-
- private final Image taskInactiveContext = CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE);
-
- // see bug 185004
- private final int platformSpecificSquish;
-
- private final Rectangle lastClippingArea;
-
- private final boolean tweakClipping;
-
- private boolean useStrikethroughForCompleted;
-
- private final org.eclipse.jface.util.IPropertyChangeListener PROPERTY_LISTENER = new org.eclipse.jface.util.IPropertyChangeListener() {
-
- public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
- if (event.getProperty().equals(ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED)) {
- if (event.getNewValue() instanceof Boolean) {
- useStrikethroughForCompleted = (Boolean) event.getNewValue();
- taskListView.refresh();
- }
- }
- }
- };
-
- CustomTaskListDecorationDrawer(TaskListView taskListView, int activationImageOffset) {
- this.taskListView = taskListView;
- this.activationImageOffset = activationImageOffset;
- this.lastClippingArea = new Rectangle(0, 0, 0, 0);
- this.tweakClipping = PlatformUtil.isPaintItemClippingRequired();
- this.platformSpecificSquish = PlatformUtil.getTreeItemSquish();
- this.taskListView.synchronizationOverlaid = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
- ITasksUiPreferenceConstants.OVERLAYS_INCOMING_TIGHT);
- this.useStrikethroughForCompleted = TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
- ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED);
- TasksUiPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(PROPERTY_LISTENER);
- }
-
- /*
- * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly.
- * Therefore, it is critical for performance that these methods be as
- * efficient as possible.
- */
- public void handleEvent(Event event) {
- Object data = event.item.getData();
- Image activationImage = null;
- if (data instanceof ITask) {
- AbstractTask task = (AbstractTask) data;
- if (task.isActive()) {
- activationImage = taskActive;
- } else if (ContextCore.getContextManager().hasContext(task.getHandleIdentifier())) {
- activationImage = taskInactiveContext;
- } else {
- activationImage = taskInactive;
- }
- }
- if (!CommonFonts.HAS_STRIKETHROUGH) {
- if (data instanceof AbstractTask & useStrikethroughForCompleted) {
- AbstractTask task = (AbstractTask) data;
- if (task.isCompleted()) {
- Rectangle bounds;
- //if (isCOCOA) {
- bounds = ((TreeItem) event.item).getTextBounds(0);
-// } else {
-// bounds = ((TreeItem) event.item).getBounds();
-// }
- int lineY = bounds.y + (bounds.height / 2);
- String itemText = ((TreeItem) event.item).getText();
- Point extent = event.gc.textExtent(itemText);
- event.gc.drawLine(bounds.x, lineY, bounds.x + extent.x, lineY);
- }
- }
- }
- if (data instanceof ITaskContainer) {
- switch (event.type) {
- case SWT.EraseItem: {
-// if ("gtk".equals(SWT.getPlatform())) { //$NON-NLS-1$
-// // GTK requires drawing on erase event so that images don't disappear when selected.
-// if (activationImage != null) {
-// drawActivationImage(activationImageOffset, event, activationImage);
-// }
-// if (!this.taskListView.synchronizationOverlaid) {
-// if (data instanceof ITaskContainer) {
-// drawSyncronizationImage((ITaskContainer) data, event);
-// }
-// }
-// }
-
- // TODO: would be nice not to do this on each item's painting
-// String text = tree.getFilterControl().getText();
-// if (text != null && !text.equals("") && tree.getViewer().getExpandedElements().length <= 12) {
-// int offsetY = tree.getViewer().getExpandedElements().length * tree.getViewer().getTree().getItemHeight();
-// event.gc.drawText("Open search dialog...", 20, offsetY - 10);
-// }
- if (tweakClipping) {
- lastClippingArea.x = event.x;
- lastClippingArea.y = event.y;
- lastClippingArea.width = event.width;
- lastClippingArea.height = event.height;
- }
- break;
- }
- case SWT.PaintItem: {
- Rectangle clipping = null;
- if (tweakClipping) {
- // GTK requires setting the clipping from the erase event so that images can be drawn to the left of the content area
- clipping = event.gc.getClipping();
- event.gc.setClipping(lastClippingArea);
- }
- if (activationImage != null) {
- drawActivationImage(activationImageOffset, event, activationImage);
- }
- if (data instanceof ITaskContainer) {
- drawSyncronizationImage((ITaskContainer) data, event);
- }
- if (tweakClipping) {
- event.gc.setClipping(clipping);
- }
- break;
- }
- }
- }
- }
-
- private void drawSyncronizationImage(ITaskContainer element, Event event) {
- Image image = null;
- int offsetX = PlatformUtil.getIncomingImageOffset();
- int offsetY = (event.height / 2) - 5;
- if (taskListView.synchronizationOverlaid) {
- offsetX = event.x + 18 - platformSpecificSquish;
- offsetY += 2;
- }
- if (element != null) {
- if (element instanceof ITask) {
- image = CommonImages.getImage(getSynchronizationImageDescriptor(element,
- taskListView.synchronizationOverlaid));
- } else {
- int imageOffset = 0;
- if (!hideDecorationOnContainer(element, (TreeItem) event.item)
- && AbstractTaskListFilter.hasDescendantIncoming(element)) {
- if (taskListView.synchronizationOverlaid) {
- image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_OLD_INCOMMING);
- } else {
- image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING);
- }
- } else if (element instanceof IRepositoryQuery) {
- RepositoryQuery query = (RepositoryQuery) element;
- if (query.getStatus() != null) {
- image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_WARNING);
- if (taskListView.synchronizationOverlaid) {
- imageOffset = 11;
- } else {
- imageOffset = 3;
- }
- }
- }
-
- int additionalSquish = 0;
- if (platformSpecificSquish > 0 && taskListView.synchronizationOverlaid) {
- additionalSquish = platformSpecificSquish + 3;
- } else if (platformSpecificSquish > 0) {
- additionalSquish = platformSpecificSquish / 2;
- }
- if (taskListView.synchronizationOverlaid) {
- offsetX = 42 - imageOffset - additionalSquish;
- } else {
- offsetX = 24 - imageOffset - additionalSquish;
- }
- }
- }
-
- if (image != null) {
- event.gc.drawImage(image, offsetX, event.y + offsetY);
- }
- }
-
- private boolean hideDecorationOnContainer(ITaskContainer element, TreeItem treeItem) {
- if (element instanceof UnmatchedTaskContainer) {
- if (!taskListView.isFocusedMode()) {
- return false;
- } else if (AbstractTaskListFilter.hasDescendantIncoming(element)) {
- return true;
- }
- } else if (element instanceof IRepositoryQuery) {
- RepositoryQuery query = (RepositoryQuery) element;
- if (query.getStatus() != null) {
- return true;
- }
- }
-
- if (!taskListView.isFocusedMode()) {
- return false;
- } else if (element instanceof IRepositoryQuery || element instanceof TaskCategory) {
- return treeItem.getExpanded();
- } else {
- return false;
- }
- }
-
- private void drawActivationImage(final int activationImageOffset, Event event, Image image) {
- Rectangle rect = image.getBounds();
- int offset = Math.max(0, (event.height - rect.height) / 2);
- event.gc.drawImage(image, activationImageOffset, event.y + offset);
- }
-
- private ImageDescriptor getSynchronizationImageDescriptor(Object element, boolean synchViewStyle) {
- if (element instanceof ITask) {
- ITask repositoryTask = (ITask) element;
- if (repositoryTask.getSynchronizationState() == SynchronizationState.INCOMING_NEW) {
- if (synchViewStyle) {
- return CommonImages.OVERLAY_SYNC_OLD_INCOMMING_NEW;
- } else {
- return CommonImages.OVERLAY_SYNC_INCOMMING_NEW;
- }
- } else if (repositoryTask.getSynchronizationState() == SynchronizationState.OUTGOING_NEW) {
- if (synchViewStyle) {
- return CommonImages.OVERLAY_SYNC_OLD_OUTGOING;
- } else {
- return CommonImages.OVERLAY_SYNC_OUTGOING_NEW;
- }
- }
- ImageDescriptor imageDescriptor = null;
- if (repositoryTask.getSynchronizationState() == SynchronizationState.OUTGOING
- || repositoryTask.getSynchronizationState() == SynchronizationState.OUTGOING_NEW) {
- if (synchViewStyle) {
- imageDescriptor = CommonImages.OVERLAY_SYNC_OLD_OUTGOING;
- } else {
- imageDescriptor = CommonImages.OVERLAY_SYNC_OUTGOING;
- }
- } else if (repositoryTask.getSynchronizationState() == SynchronizationState.INCOMING) {
- if (synchViewStyle) {
- imageDescriptor = CommonImages.OVERLAY_SYNC_OLD_INCOMMING;
- } else {
- imageDescriptor = CommonImages.OVERLAY_SYNC_INCOMMING;
- }
- } else if (repositoryTask.getSynchronizationState() == SynchronizationState.CONFLICT) {
- imageDescriptor = CommonImages.OVERLAY_SYNC_CONFLICT;
- }
- if (imageDescriptor == null && repositoryTask instanceof AbstractTask
- && ((AbstractTask) repositoryTask).getStatus() != null) {
- return CommonImages.OVERLAY_SYNC_WARNING;
- } else if (imageDescriptor != null) {
- return imageDescriptor;
- }
- } else if (element instanceof IRepositoryQuery) {
- RepositoryQuery query = (RepositoryQuery) element;
- if (query.getStatus() != null) {
- return CommonImages.OVERLAY_SYNC_WARNING;
- }
- }
- // HACK: need a proper blank image
- return CommonImages.OVERLAY_CLEAR;
- }
-
- public void dispose() {
- TasksUiPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(PROPERTY_LISTENER);
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java
deleted file mode 100644
index bbc8463ca..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.views.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String DisconnectRepositoryAction_Disconnected;
-
- public static String PriorityDropDownAction_Filter_Priority_Lower_Than;
-
- public static String TaskInputDialog_Clear;
-
- public static String TaskInputDialog_Description;
-
- public static String TaskInputDialog_Get_Description;
-
- public static String TaskInputDialog_New_Task;
-
- public static String TaskInputDialog_Web_Link;
-
- public static String TaskListDropAdapter__retrieving_from_URL_;
-
- public static String TaskListFilteredTree_Activate;
-
- public static String TaskListFilteredTree_Edit_Task_Working_Sets_;
-
- public static String TaskListFilteredTree_Estimated_hours;
-
- public static String TaskListFilteredTree__multiple_;
-
- public static String TaskListFilteredTree_Scheduled_tasks;
-
- public static String TaskListFilteredTree_Search_repository_for_key_or_summary_;
-
- public static String TaskListFilteredTree_Select_Active_Task;
-
- public static String TaskListFilteredTree_Select_Working_Set;
-
- public static String TaskListFilteredTree_Workweek_Progress;
-
- public static String TaskListToolTip_Automatic_container_for_all_local_tasks;
-
- public static String TaskListToolTip_Automatic_container_for_repository_tasks;
-
- public static String TaskListToolTip_Due;
-
- public static String TaskListToolTip_Elapsed;
-
- public static String TaskListToolTip_Estimate;
-
- public static String TaskListToolTip_Please_synchronize_manually_for_full_error_message;
-
- public static String TaskListToolTip_Scheduled;
-
- public static String TaskListToolTip_Some_incoming_elements_may_be_filtered;
-
- public static String TaskListToolTip_Synchronized;
-
- public static String TaskListToolTip_Total_Complete_Incomplete;
-
- public static String TaskListView_Mylyn_context_capture_paused;
-
- public static String TaskListView__paused_;
-
- public static String TaskListView_Repository;
-
- public static String TaskListView_Summary;
-
- public static String TaskListView_Task_List;
-
- public static String TaskScheduleContentProvider_Future;
-
- public static String TaskScheduleContentProvider_Two_Weeks;
-
- public static String TaskScheduleContentProvider_Unscheduled;
-
- public static String UpdateRepositoryConfigurationAction_Error_updating_repository_configuration;
-
- public static String UpdateRepositoryConfigurationAction_Update_Repository_Configuration;
-
- public static String UpdateRepositoryConfigurationAction_Updating_repository_configuration_for_X;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/PriorityDropDownAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/PriorityDropDownAction.java
deleted file mode 100644
index 3e42603c2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/PriorityDropDownAction.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * @author Mik Kersten
- */
-class PriorityDropDownAction extends Action implements IMenuCreator {
-
- /**
- *
- */
- private final TaskListView taskListView;
-
- private Action priority1;
-
- private Action priority2;
-
- private Action priority3;
-
- private Action priority4;
-
- private Action priority5;
-
- private Menu dropDownMenu = null;
-
- public PriorityDropDownAction(TaskListView taskListView) {
- super();
- this.taskListView = taskListView;
- setText(Messages.PriorityDropDownAction_Filter_Priority_Lower_Than);
- setToolTipText(Messages.PriorityDropDownAction_Filter_Priority_Lower_Than);
- setImageDescriptor(CommonImages.FILTER_PRIORITY);
- setMenuCreator(this);
- }
-
- public void dispose() {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- dropDownMenu = null;
- }
- }
-
- public Menu getMenu(Control parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- public Menu getMenu(Menu parent) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- dropDownMenu = new Menu(parent);
- addActionsToMenu();
- return dropDownMenu;
- }
-
- public void addActionsToMenu() {
- priority1 = new Action("", AS_CHECK_BOX) { //$NON-NLS-1$
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.FILTER_PRIORITY,
- PriorityLevel.P1.toString());
- PriorityDropDownAction.this.taskListView.displayPrioritiesAbove(TaskListView.PRIORITY_LEVELS[0]);
- }
- };
- priority1.setEnabled(true);
- priority1.setText(PriorityLevel.P1.getDescription());
- priority1.setImageDescriptor(CommonImages.PRIORITY_1);
- ActionContributionItem item = new ActionContributionItem(priority1);
- item.fill(dropDownMenu, -1);
-
- priority2 = new Action("", AS_CHECK_BOX) { //$NON-NLS-1$
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.FILTER_PRIORITY,
- PriorityLevel.P2.toString());
- PriorityDropDownAction.this.taskListView.displayPrioritiesAbove(TaskListView.PRIORITY_LEVELS[1]);
- }
- };
- priority2.setEnabled(true);
- priority2.setText(PriorityLevel.P2.getDescription());
- priority2.setImageDescriptor(CommonImages.PRIORITY_2);
- item = new ActionContributionItem(priority2);
- item.fill(dropDownMenu, -1);
-
- priority3 = new Action("", AS_CHECK_BOX) { //$NON-NLS-1$
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.FILTER_PRIORITY,
- PriorityLevel.P3.toString());
- PriorityDropDownAction.this.taskListView.displayPrioritiesAbove(TaskListView.PRIORITY_LEVELS[2]);
- }
- };
- priority3.setEnabled(true);
- priority3.setText(PriorityLevel.P3.getDescription());
- priority3.setImageDescriptor(CommonImages.PRIORITY_3);
- item = new ActionContributionItem(priority3);
- item.fill(dropDownMenu, -1);
-
- priority4 = new Action("", AS_CHECK_BOX) { //$NON-NLS-1$
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.FILTER_PRIORITY,
- PriorityLevel.P4.toString());
- PriorityDropDownAction.this.taskListView.displayPrioritiesAbove(TaskListView.PRIORITY_LEVELS[3]);
- }
- };
- priority4.setEnabled(true);
- priority4.setText(PriorityLevel.P4.getDescription());
- priority4.setImageDescriptor(CommonImages.PRIORITY_4);
- item = new ActionContributionItem(priority4);
- item.fill(dropDownMenu, -1);
-
- priority5 = new Action("", AS_CHECK_BOX) { //$NON-NLS-1$
- @Override
- public void run() {
- TasksUiPlugin.getDefault().getPreferenceStore().setValue(ITasksUiPreferenceConstants.FILTER_PRIORITY,
- PriorityLevel.P5.toString());
- PriorityDropDownAction.this.taskListView.displayPrioritiesAbove(TaskListView.PRIORITY_LEVELS[4]);
- }
- };
- priority5.setEnabled(true);
- priority5.setImageDescriptor(CommonImages.PRIORITY_5);
- priority5.setText(PriorityLevel.P5.getDescription());
- item = new ActionContributionItem(priority5);
- item.fill(dropDownMenu, -1);
-
- updateCheckedState();
-// updateCheckedState(priority1, priority2, priority3, priority4, priority5);
- }
-
- void updateCheckedState() {
- if (priority1 == null) {
- return;
- }
- String priority = TaskListView.getCurrentPriorityLevel();
-
- priority1.setChecked(false);
- priority2.setChecked(false);
- priority3.setChecked(false);
- priority4.setChecked(false);
- priority5.setChecked(false);
-
- if (priority.equals(TaskListView.PRIORITY_LEVELS[0])) {
- priority1.setChecked(true);
- } else if (priority.equals(TaskListView.PRIORITY_LEVELS[1])) {
- priority1.setChecked(true);
- priority2.setChecked(true);
- } else if (priority.equals(TaskListView.PRIORITY_LEVELS[2])) {
- priority1.setChecked(true);
- priority2.setChecked(true);
- priority3.setChecked(true);
- } else if (priority.equals(TaskListView.PRIORITY_LEVELS[3])) {
- priority1.setChecked(true);
- priority2.setChecked(true);
- priority3.setChecked(true);
- priority4.setChecked(true);
- } else if (priority.equals(TaskListView.PRIORITY_LEVELS[4])) {
- priority1.setChecked(true);
- priority2.setChecked(true);
- priority3.setChecked(true);
- priority4.setChecked(true);
- priority5.setChecked(true);
- }
- }
-
- @Override
- public void run() {
- this.setChecked(isChecked());
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TableDecoratingLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TableDecoratingLabelProvider.java
deleted file mode 100644
index 9b621a853..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TableDecoratingLabelProvider.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Mik Kersten
- */
-public class TableDecoratingLabelProvider extends DecoratingLabelProvider implements ITableLabelProvider {
-
- public TableDecoratingLabelProvider(ILabelProvider provider, ILabelDecorator decorator) {
- super(provider, decorator);
- }
-
- public Image getColumnImage(Object element, int columnIndex) {
- if (!(element instanceof ITaskContainer)) {
- return null;
- }
- if (columnIndex == 0) {
- if (element instanceof ITaskContainer && !(element instanceof ITask)) {
- return super.getImage(element);
- } else {
- if (element instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) element;
- if (task.isActive()) {
- return CommonImages.getImage(TasksUiImages.CONTEXT_ACTIVE);
- } else {
- if (ContextCore.getContextManager().hasContext(task.getHandleIdentifier())) {
- return CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE);
- } else {
- return CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE_EMPTY);
- }
- }
- } else {
- return CommonImages.getImage(TasksUiImages.CONTEXT_INACTIVE_EMPTY);
- }
- }
- } else if (columnIndex == 1) {
- if (element instanceof ITaskContainer || element instanceof IRepositoryQuery) {
- return null;
- }
- return super.getImage(element);
- }
- return null;
- }
-
- public String getColumnText(Object element, int columnIndex) {
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskDetailLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskDetailLabelProvider.java
deleted file mode 100644
index 54673df23..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskDetailLabelProvider.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Displays task repository info from a {@link AbstractTask}
- *
- * @author Willian Mitsuda
- */
-public class TaskDetailLabelProvider extends LabelProvider implements ILabelProvider {
-
- @Override
- public Image getImage(Object element) {
- if (!(element instanceof ITask)) {
- return super.getImage(element);
- }
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- ((ITask) element).getConnectorKind());
- ImageDescriptor overlay = TasksUiPlugin.getDefault().getOverlayIcon(connector.getConnectorKind());
- if (overlay != null) {
- return CommonImages.getImageWithOverlay(TasksUiImages.REPOSITORY, overlay, false, false);
- } else {
- return CommonImages.getImage(TasksUiImages.REPOSITORY);
- }
- }
-
- @Override
- public String getText(Object element) {
- if (!(element instanceof ITask)) {
- return super.getText(element);
- }
-
- ITask task = (ITask) element;
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- return repository.getRepositoryLabel();
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskInputDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskInputDialog.java
deleted file mode 100644
index 2f1d17d99..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskInputDialog.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Ken Sueda 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:
- * Ken Sueda - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import java.util.Date;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.AbstractRetrieveTitleFromUrlJob;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author Ken Sueda
- * @author Wesley Coelho (Extended to allow URL input)
- * @author Mik Kersten
- */
-public class TaskInputDialog extends Dialog {
-
- private String taskName = ""; //$NON-NLS-1$
-
- private String priority = "P3"; //$NON-NLS-1$
-
- private String taskURL = "http://"; //$NON-NLS-1$
-
- private Date reminderDate;
-
- private Text taskNameTextWidget;
-
- private Text issueURLTextWidget;
-
- private Button getDescButton;
-
- public TaskInputDialog(Shell parentShell) {
- super(parentShell);
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
- GridLayout gl = new GridLayout(5, false);
- composite.setLayout(gl);
- GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL
- | GridData.VERTICAL_ALIGN_CENTER);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH + 180);
- composite.setLayoutData(data);
-
- Label taskNameLabel = new Label(composite, SWT.WRAP);
- taskNameLabel.setText(Messages.TaskInputDialog_Description);
- taskNameLabel.setFont(parent.getFont());
-
- taskNameTextWidget = new Text(composite, SWT.SINGLE | SWT.BORDER);
- GridData taskNameGD = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
- taskNameGD.widthHint = 200;
- taskNameGD.horizontalSpan = 1;
- taskNameTextWidget.setLayoutData(taskNameGD);
-
- final Combo c = new Combo(composite, SWT.NO_BACKGROUND | SWT.MULTI | SWT.V_SCROLL | SWT.READ_ONLY
- | SWT.DROP_DOWN);
- c.setItems(TaskListView.PRIORITY_LEVELS);
- c.setText(priority);
- c.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- priority = c.getText();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
- });
-
-// Label spacer = new Label(composite, SWT.NONE);
-// GridData spacerGD = new GridData();
-// spacerGD.horizontalSpan = 1;
-//// spacerGD.widthHint = 5;
-// spacer.setLayoutData(spacerGD);
-//
-// Composite reminderComp = new Composite(composite, SWT.NONE);
-// GridLayout reminderCompGL = new GridLayout(3, false);
-// reminderCompGL.marginHeight = 0;
-// reminderCompGL.marginWidth = 0;
-// reminderComp.setLayout(reminderCompGL);
-// GridData reminderCompGD = new GridData();
-// reminderCompGD.horizontalSpan = 1;
-// reminderCompGD.horizontalAlignment = SWT.RIGHT;
-// reminderComp.setLayoutData(reminderCompGD);
-// Label reminderLabel = new Label(reminderComp, SWT.NONE);
- final DatePicker datePicker = new DatePicker(composite, SWT.BORDER, DatePicker.LABEL_CHOOSE, true,
- TasksUiPlugin.getDefault().getPreferenceStore().getInt(ITasksUiPreferenceConstants.PLANNING_ENDHOUR));
- datePicker.addPickerSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent arg0) {
- if (datePicker.getDate() != null) {
- reminderDate = datePicker.getDate().getTime();
- }
- }
-
- public void widgetDefaultSelected(SelectionEvent arg0) {
- // ignore
- }
- });
-
- Button removeReminder = new Button(composite, SWT.PUSH | SWT.CENTER);
- removeReminder.setText(Messages.TaskInputDialog_Clear);
- removeReminder.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- datePicker.setDate(null);
- reminderDate = null;
- }
- });
-
-//
-// scheduledForDate.setLayout(new GridLayout());
-// GridData datePickerGD = new GridData();
-// datePickerGD.widthHint = 300;
-// scheduledForDate.setLayoutData(datePickerGD);
-
- Label urlLabel = new Label(composite, SWT.WRAP);
- urlLabel.setText(Messages.TaskInputDialog_Web_Link);
- urlLabel.setFont(parent.getFont());
-
- issueURLTextWidget = new Text(composite, SWT.SINGLE | SWT.BORDER);
- issueURLTextWidget.setText(getDefaultIssueUrl());
- GridData urlData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
- urlData.horizontalSpan = 3;
- urlData.grabExcessHorizontalSpace = true;
- issueURLTextWidget.setLayoutData(urlData);
-
- getDescButton = new Button(composite, SWT.PUSH);
- getDescButton.setText(Messages.TaskInputDialog_Get_Description);
- getDescButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
- setButtonStatus();
-
- issueURLTextWidget.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent e) {
- setButtonStatus();
- }
-
- public void keyReleased(KeyEvent e) {
- setButtonStatus();
- }
- });
-
- getDescButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- retrieveTaskDescription(issueURLTextWidget.getText());
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
-
- return composite;
- }
-
- /**
- * Sets the Get Description button enabled or not depending on whether there is a URL specified
- */
- protected void setButtonStatus() {
- String url = issueURLTextWidget.getText();
-
- if (url.length() > 10 && (url.startsWith("http://") || url.startsWith("https://"))) { //$NON-NLS-1$ //$NON-NLS-2$
-// String defaultPrefix = ContextCore.getPreferenceStore().getString(
-// TaskListPreferenceConstants.DEFAULT_URL_PREFIX);
-// if (url.equals(defaultPrefix)) {
-// getDescButton.setEnabled(false);
-// } else {
- getDescButton.setEnabled(true);
-// }
- } else {
- getDescButton.setEnabled(false);
- }
- }
-
- /**
- * Returns the default URL text for the task by first checking the contents of the clipboard and then using the
- * default prefix preference if that fails
- */
- protected String getDefaultIssueUrl() {
-
- String clipboardText = getClipboardText();
- if ((clipboardText.startsWith("http://") || clipboardText.startsWith("https://") && clipboardText.length() > 10)) { //$NON-NLS-1$ //$NON-NLS-2$
- return clipboardText;
- } else {
- return taskURL;
- }
-// String defaultPrefix = ContextCore.getPreferenceStore().getString(
-// TaskListPreferenceConstants.DEFAULT_URL_PREFIX);
-// if (!defaultPrefix.equals("")) {
-// return defaultPrefix;
-// }
- }
-
- /**
- * Attempts to set the task pageTitle to the title from the specified url
- */
- protected void retrieveTaskDescription(final String url) {
- try {
- AbstractRetrieveTitleFromUrlJob job = new AbstractRetrieveTitleFromUrlJob(issueURLTextWidget.getText()) {
- @Override
- protected void titleRetrieved(final String pageTitle) {
- taskNameTextWidget.setText(pageTitle);
- }
- };
- job.schedule();
- } catch (RuntimeException e) {
- // FIXME which exception is caught here?
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not open task web page", e)); //$NON-NLS-1$
- }
- }
-
- /**
- * Returns the contents of the clipboard or "" if no text content was available
- */
- protected String getClipboardText() {
- Clipboard clipboard = new Clipboard(Display.getDefault());
- TextTransfer transfer = TextTransfer.getInstance();
- String contents = (String) clipboard.getContents(transfer);
- if (contents != null) {
- return contents;
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- public String getSelectedPriority() {
- return priority;
- }
-
- public String getTaskname() {
- return taskName;
- }
-
- public Date getReminderDate() {
- return reminderDate;
- }
-
- public String getIssueURL() {
- return taskURL;
- }
-
- @Override
- protected void buttonPressed(int buttonId) {
- if (buttonId == IDialogConstants.OK_ID) {
- taskName = taskNameTextWidget.getText();
- taskURL = issueURLTextWidget.getText();
- } else {
- taskName = null;
- }
- super.buttonPressed(buttonId);
- }
-
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- shell.setText(Messages.TaskInputDialog_New_Task);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java
deleted file mode 100644
index 1700abda3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskKeyComparator.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation for bug 129511
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import java.util.Comparator;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * @author Eugene Kuleshov
- */
-public class TaskKeyComparator implements Comparator<String[]> {
-
- private static final String MODULE_TASK_PATTERN = "(?:([A-Za-z]*[:_\\-]?)(\\d+))?"; //$NON-NLS-1$
-
- private static final Pattern ID_PATTERN = Pattern.compile(MODULE_TASK_PATTERN);
-
- public static final Pattern PATTERN = Pattern.compile(MODULE_TASK_PATTERN + "(.*)"); //$NON-NLS-1$
-
- public int compare2(String o1, String o2) {
- String[] a1 = split(o1);
- String[] a2 = split(o2);
- return compare(a1, a2);
- }
-
- public int compare(String a1[], String a2[]) {
- if (a1[0] == null && a1[1] == null) {
- a1 = split(a1[2]);
- } else if ((a1[0] == null || a1[0].length() == 0) && a1[1] != null && a1[1].length() > 0) {
- String b1[] = splitTask(a1[1]);
- a1[0] = b1[0];
- a1[1] = b1[1];
- }
-
- if (a2[0] == null && a2[1] == null) {
- a2 = split(a2[2]);
- } else if ((a2[0] == null || a2[0].length() == 0) && a2[1] != null && a2[1].length() > 0) {
- String b2[] = splitTask(a2[1]);
- a2[0] = b2[0];
- a2[1] = b2[1];
-
- }
- return compare(a1[0], a1[1], a1[2], a2[0], a2[1], a2[2]);
- }
-
- private static int compare(final String component1, final String key1, final String value1,
- final String component2, final String key2, final String value2) {
- if (component1 == null && component2 != null) {
- return -1;
- }
- if (component1 != null && component2 == null) {
- return 1;
- }
-
- if (component1 != null && component2 != null) {
- int n = component1.compareToIgnoreCase(component2);
- if (n != 0) {
- return n;
- }
-
- if (key1 == null && key2 != null) {
- return -1;
- }
- if (key1 != null && key2 == null) {
- return 1;
- }
-
- if (key1 != null && key2 != null) {
- if (key1.length() == key2.length() || key1.length() == 0 || key2.length() == 0) {
- n = key1.compareTo(key2);
- } else {
- try {
- n = Long.valueOf(key1).compareTo(Long.valueOf(key2));
- } catch (NumberFormatException e) {
- // The number was probably longer than an Long, so just compare them as text
- n = key1.compareTo(key2);
- }
- }
- if (n != 0) {
- return n;
- }
- }
- }
-
- return value1.compareToIgnoreCase(value2);
- }
-
- public String[] split(String s) {
- Matcher matcher = PATTERN.matcher(s);
-
- if (!matcher.find()) {
- return new String[] { null, null, s };
- }
-
- int n = matcher.groupCount();
- String[] res = new String[n];
- for (int i = 1; i < n + 1; i++) {
- res[i - 1] = matcher.group(i);
- }
- return res;
- }
-
- private static String[] splitTask(final String s) {
- Matcher matcher = ID_PATTERN.matcher(s);
-
- if (!matcher.find()) {
- return new String[] { null, s };
- }
-
- int n = matcher.groupCount();
- String[] res = new String[n];
- for (int i = 1; i < n + 1; i++) {
- res[i - 1] = matcher.group(i);
- }
- return res;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListCellModifier.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListCellModifier.java
deleted file mode 100644
index 2cbb7a2f6..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListCellModifier.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.util.Arrays;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-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.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @author Mik Kersten
- */
-class TaskListCellModifier implements ICellModifier {
-
- private final TaskListView taskListView;
-
- private boolean disableActivateForParentTasks = false;
-
- TaskListCellModifier(TaskListView taskListView) {
- this.taskListView = taskListView;
-
- if (SWT.getPlatform().equals("gtk")) { //$NON-NLS-1$
- disableActivateForParentTasks = true;
- }
- }
-
- public boolean canModify(Object element, String property) {
- return taskListView.isInRenameAction;
- }
-
- public Object getValue(Object element, String property) {
- try {
- int columnIndex = Arrays.asList(this.taskListView.columnNames).indexOf(property);
- if (element instanceof IRepositoryElement) {
- final IRepositoryElement taskListElement = (IRepositoryElement) element;
- switch (columnIndex) {
- case 0:
- return taskListElement.getSummary();
- case 1:
- return ""; //$NON-NLS-1$
- case 2:
- return ""; //$NON-NLS-1$
- }
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- return ""; //$NON-NLS-1$
- }
-
- public void modify(Object element, String property, Object value) {
- int columnIndex = -1;
- try {
- if (element instanceof TreeItem && ((TreeItem) element).isDisposed()) {
- return;
- }
- columnIndex = Arrays.asList(this.taskListView.columnNames).indexOf(property);
- Object data = ((TreeItem) element).getData();
- if (data instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) data;
- switch (columnIndex) {
- case 0:
- if (task != null) {
- task.setSummary(((String) value).trim());
- TasksUiPlugin.getTaskList().notifyElementChanged(task);
- }
- break;
- case 1:
- break;
- case 2:
- toggleTaskActivation((TreeItem) element);
- break;
- }
- } else if (data instanceof AbstractTaskCategory || data instanceof IRepositoryQuery) {
- AbstractTaskContainer container = (AbstractTaskContainer) data;
- switch (columnIndex) {
- case 0:
- TasksUiPlugin.getTaskList().renameContainer(container, ((String) value).trim());
- case 1:
- break;
- case 2:
- break;
- }
- }
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- this.taskListView.refresh();//.getViewer().refresh();
- }
-
- public void toggleTaskActivation(TreeItem element) {
- AbstractTask task = null;
- if (element.getData() instanceof AbstractTask) {
- task = (AbstractTask) element.getData();
-
- if (disableActivateForParentTasks) {
- // check if activation column overlaps with tree expander control: element is on second hierarchy level and has children
- TreeItem parent = element.getParentItem();
- if (parent != null
- && (parent.getData() instanceof IRepositoryQuery || parent.getData() instanceof AbstractTaskCategory)
- && element.getItemCount() > 0) {
- return;
- }
- }
-
- if (task.isActive()) {
- new TaskDeactivateAction().run(task);
- } else {
- new TaskActivateAction().run(task);
- }
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java
deleted file mode 100644
index ba99c3836..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.Viewer;
-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.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-
-/**
- * Provides custom content for the task list, e.g. guaranteed visibility of some elements, ability to suppress
- * containers showing if nothing should show under them.
- *
- * TODO: move to viewer filter architecture?
- *
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TaskListContentProvider extends AbstractTaskListContentProvider {
-
- public TaskListContentProvider(TaskListView taskListView) {
- super(taskListView);
- }
-
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- this.taskListView.expandToActiveTasks();
- }
-
- public void dispose() {
- }
-
- public Object[] getElements(Object parent) {
- if (parent.equals(this.taskListView.getViewSite())) {
- return applyFilter(TasksUiPlugin.getTaskList().getRootElements()).toArray();
- }
- return getChildren(parent);
- }
-
- /**
- * @return first parent found
- */
- public Object getParent(Object child) {
- // return first parent found, first search within categories then queries
- if (child instanceof ITask) {
- ITask task = (ITask) child;
- AbstractTaskCategory parent = TaskCategory.getParentTaskCategory(task);
- if (parent != null) {
- return parent;
- }
-
- Set<AbstractTaskContainer> parents = ((AbstractTask) task).getParentContainers();
- Iterator<AbstractTaskContainer> it = parents.iterator();
- if (it.hasNext()) {
- return parents.iterator().next();
- }
- }
- // no parent found
- return null;
- }
-
- public Object[] getChildren(Object parent) {
- return getFilteredChildrenFor(parent).toArray();
- }
-
- /**
- * NOTE: If parent is an ITask, this method checks if parent has unfiltered children (see bug 145194).
- */
- public boolean hasChildren(Object parent) {
- Object[] children = getChildren(parent);
- return children != null && children.length > 0;
-
-// if (parent instanceof AbstractRepositoryQuery) {
-// AbstractRepositoryQuery query = (AbstractRepositoryQuery) parent;
-// return !getFilteredChildrenFor(query).isEmpty();
-// //return !query.isEmpty();
-// } else if (parent instanceof AbstractTask) {
-// return taskHasUnfilteredChildren((AbstractTask) parent);
-// } else if (parent instanceof AbstractTaskContainer) {
-// AbstractTaskContainer container = (AbstractTaskContainer) parent;
-// return !getFilteredChildrenFor(container).isEmpty();
-// //return !container.getChildren().isEmpty();
-// }
-// return false;
- }
-
- protected List<AbstractTaskContainer> applyFilter(Set<AbstractTaskContainer> roots) {
- List<AbstractTaskContainer> filteredRoots = new ArrayList<AbstractTaskContainer>();
- for (AbstractTaskContainer element : roots) {
- // NOTE: tasks can no longer appear as root elements
- if (selectContainer(element)) {
- filteredRoots.add(element);
- }
- }
- return filteredRoots;
- }
-
- /**
- * See bug 109693
- */
- private boolean containsNoFilterText(String filterText) {
- return filterText == null || filterText.length() == 0;
- }
-
- private boolean selectContainer(ITaskContainer container) {
- if (filter(null, container)) {
- return false;
- }
- return true;
- }
-
- private List<IRepositoryElement> getFilteredChildrenFor(Object parent) {
- if (containsNoFilterText((this.taskListView.getFilteredTree().getFilterControl()).getText())) {
- List<IRepositoryElement> children = new ArrayList<IRepositoryElement>();
- if (parent instanceof ITask) {
- Collection<ITask> subTasks = ((AbstractTask) parent).getChildren();
- for (ITask task : subTasks) {
- if (!filter(parent, task)) {
- children.add(task);
- }
- }
- return children;
- } else if (parent instanceof ITaskContainer) {
- return getFilteredRootChildren((ITaskContainer) parent);
- }
- } else {
- List<IRepositoryElement> children = new ArrayList<IRepositoryElement>();
- if (parent instanceof ITaskContainer) {
- children.addAll(((ITaskContainer) parent).getChildren());
- return children;
- }
- }
- return Collections.emptyList();
- }
-
- /**
- * @return all children who aren't already revealed as a sub task
- */
- private List<IRepositoryElement> getFilteredRootChildren(ITaskContainer parent) {
- List<IRepositoryElement> result = new ArrayList<IRepositoryElement>();
- if (TasksUiPlugin.getDefault().groupSubtasks(parent)) {
- Collection<ITask> parentTasks = parent.getChildren();
- Set<IRepositoryElement> parents = new HashSet<IRepositoryElement>();
- Set<ITask> children = new HashSet<ITask>();
- // get all children
- for (ITask element : parentTasks) {
- if (element instanceof ITaskContainer) {
- for (ITask abstractTask : ((ITaskContainer) element).getChildren()) {
- children.add(abstractTask);
- }
- }
- }
- for (ITask task : parentTasks) {
- if (!filter(parent, task) && !children.contains(task)) {
- parents.add(task);
- }
- }
- result.addAll(parents);
- } else {
- for (IRepositoryElement element : parent.getChildren()) {
- if (!filter(parent, element)) {
- result.add(element);
- }
- }
- }
- return result;
- }
-
- protected boolean filter(Object parent, Object object) {
- boolean emptyFilterText = containsNoFilterText((this.taskListView.getFilteredTree().getFilterControl()).getText());
- for (AbstractTaskListFilter filter : this.taskListView.getFilters()) {
- if (emptyFilterText) {
- if (!filter.select(parent, object)) {
- return true;
- }
- } else {
- if (filter.applyToFilteredText()) {
- if (!filter.select(parent, object)) {
- return true;
- }
- }
- }
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java
deleted file mode 100644
index a37e7e028..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Jevgeni Holodkov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerDropAdapter;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.AbstractRetrieveTitleFromUrlJob;
-import org.eclipse.mylyn.internal.tasks.ui.util.PlatformUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskScheduleContentProvider.Unscheduled;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves (added URL based task creation support)
- * @author Jevgeni Holodkov
- */
-public class TaskListDropAdapter extends ViewerDropAdapter {
-
- private boolean fileTransfer;
-
- private boolean localTransfer;
-
- public TaskListDropAdapter(Viewer viewer) {
- super(viewer);
- setFeedbackEnabled(true);
- }
-
- @Override
- public void dragOver(DropTargetEvent event) {
- // support dragging from sources only supporting DROP_LINK
- if (event.detail == DND.DROP_NONE && (event.operations & DND.DROP_LINK) == DND.DROP_LINK) {
- event.detail = DND.DROP_LINK;
- }
- super.dragOver(event);
- }
-
- @Override
- public boolean performDrop(final Object data) {
- List<ITask> tasksToMove = new ArrayList<ITask>();
-
- if (localTransfer) {
- ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
- if (selection instanceof IStructuredSelection) {
- for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();) {
- Object item = it.next();
- if (item instanceof ITask) {
- tasksToMove.add((ITask) item);
- }
- }
- }
- } else if (fileTransfer) {
- // TODO implement dropping of files
- } else if (data instanceof String) {
- String text = (String) data;
- AbstractTask task = createTaskFromUrl(text);
- if (task == null) {
- task = TasksUiInternal.createNewLocalTask(text);
- }
- if (task != null) {
- tasksToMove.add(task);
- final ITask newTask = task;
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiUtil.openTask(newTask);
- }
- });
- }
- }
-
- Object currentTarget = getCurrentTarget();
- if (currentTarget instanceof LocalTask && areAllLocalTasks(tasksToMove) && getCurrentLocation() == LOCATION_ON) {
- for (ITask task : tasksToMove) {
- if (!((AbstractTask) task).contains(((LocalTask) currentTarget).getHandleIdentifier())) {
- TasksUiInternal.getTaskList().addTask(task, (LocalTask) currentTarget);
- }
- }
- } else {
- for (ITask task : tasksToMove) {
- if (currentTarget instanceof UncategorizedTaskContainer) {
- TasksUiInternal.getTaskList().addTask(task, (UncategorizedTaskContainer) currentTarget);
- } else if (currentTarget instanceof TaskCategory) {
- TasksUiInternal.getTaskList().addTask(task, (TaskCategory) currentTarget);
- } else if (currentTarget instanceof UnmatchedTaskContainer) {
- if (((UnmatchedTaskContainer) currentTarget).getRepositoryUrl().equals(task.getRepositoryUrl())) {
- TasksUiInternal.getTaskList().addTask(task, (AbstractTaskCategory) currentTarget);
- }
- } else if (currentTarget instanceof ITask) {
- ITask targetTask = (ITask) currentTarget;
- AbstractTaskCategory targetCategory = null;
- // TODO: TaskCategory only used what about AbstractTaskCategory descendants?
- ITaskContainer container = TaskCategory.getParentTaskCategory(targetTask);
- if (container instanceof TaskCategory || container instanceof UncategorizedTaskContainer) {
- targetCategory = (AbstractTaskCategory) container;
- } else if (container instanceof UnmatchedTaskContainer) {
- if (((UnmatchedTaskContainer) container).getRepositoryUrl().equals(task.getRepositoryUrl())) {
- targetCategory = (AbstractTaskCategory) container;
- }
- }
- if (targetCategory != null) {
- TasksUiInternal.getTaskList().addTask(task, targetCategory);
- }
- } else if (currentTarget instanceof ScheduledTaskContainer) {
- ScheduledTaskContainer container = (ScheduledTaskContainer) currentTarget;
- if (container instanceof Unscheduled) {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor((AbstractTask) task, null);
- } else {
- TasksUiPlugin.getTaskActivityManager().setScheduledFor((AbstractTask) task,
- container.getDateRange());
- }
- } else if (currentTarget == null) {
- TasksUiInternal.getTaskList().addTask(task, TasksUiPlugin.getTaskList().getDefaultCategory());
- }
- }
- }
-
- if (tasksToMove.size() == 1) {
- getViewer().setSelection(new StructuredSelection(tasksToMove.get(0)));
- }
- return true;
- }
-
- private boolean areAllLocalTasks(List<ITask> tasksToMove) {
- for (ITask task : tasksToMove) {
- if (!(task instanceof LocalTask)) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * @param data
- * string containing url and title separated by <quote>\n</quote>
- */
- private AbstractTask createTaskFromUrl(String data) {
- if (!data.startsWith("http://") && !data.startsWith("https://")) { //$NON-NLS-1$ //$NON-NLS-2$
- return null;
- }
-
- String[] urlTransfer = data.split("\n"); //$NON-NLS-1$
- if (urlTransfer.length > 0) {
- String url = urlTransfer[0];
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager()
- .getConnectorForRepositoryTaskUrl(url);
- if (connector != null) {
- // attempt to find task in task list
- String repositoryUrl = connector.getRepositoryUrlFromTaskUrl(url);
- String taskId = connector.getTaskIdFromTaskUrl(url);
- AbstractTask task = TasksUiInternal.getTask(repositoryUrl, taskId, url);
- if (task != null) {
- return task;
- }
- if (repositoryUrl != null && taskId != null) {
- // attempt to open task in background
- // TODO: consider attaching a listener to OpenRepsitoryTaskJob to move task to drop target
- TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId);
- }
- } else {
- // create local task, using title of web page as a summary
- final String summary = Messages.TaskListDropAdapter__retrieving_from_URL_;
- final LocalTask newTask = TasksUiInternal.createNewLocalTask(summary);
- newTask.setUrl(url);
- AbstractRetrieveTitleFromUrlJob job = new AbstractRetrieveTitleFromUrlJob(url) {
- @Override
- protected void titleRetrieved(final String pageTitle) {
- // make sure summary was not changed in the mean time
- if (newTask.getSummary().equals(summary)) {
- newTask.setSummary(pageTitle);
- TasksUiInternal.getTaskList().notifyElementChanged(newTask);
- }
- }
- };
- job.schedule();
- return newTask;
- }
- }
- return null;
- }
-
- @Override
- public boolean validateDrop(Object targetObject, int operation, TransferData transferType) {
- fileTransfer = false;
- localTransfer = false;
- if (FileTransfer.getInstance().isSupportedType(transferType)) {
- fileTransfer = true;
- // TODO handle all files
- return false;
- } else if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
- localTransfer = true;
- if (getCurrentTarget() instanceof UncategorizedTaskContainer || getCurrentTarget() instanceof TaskCategory
- || getCurrentTarget() instanceof UnmatchedTaskContainer
- || getCurrentTarget() instanceof ScheduledTaskContainer) {
- return true;
- } else if (getCurrentTarget() instanceof ITaskContainer
- && (getCurrentLocation() == ViewerDropAdapter.LOCATION_AFTER || getCurrentLocation() == ViewerDropAdapter.LOCATION_BEFORE)) {
- return true;
- } else if (getCurrentTarget() instanceof LocalTask && getCurrentLocation() == ViewerDropAdapter.LOCATION_ON) {
- return true;
- } else {
- return false;
- }
- } else if (PlatformUtil.getUrlTransfer().isSupportedType(transferType)) {
- return true;
- }
-
- return TextTransfer.getInstance().isSupportedType(transferType);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java
deleted file mode 100644
index cf90772e4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java
+++ /dev/null
@@ -1,627 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.layout.TreeColumnLayout;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractFilteredTree;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor;
-import org.eclipse.mylyn.internal.tasks.ui.TaskHistoryDropDown;
-import org.eclipse.mylyn.internal.tasks.ui.TaskHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.TaskSearchPage;
-import org.eclipse.mylyn.internal.tasks.ui.TaskWorkingSetFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ActivateTaskDialogAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskListElementAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskWorkingSetAction;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskListChangeAdapter;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.workingsets.TaskWorkingSetUpdater;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskActivityAdapter;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.search.internal.ui.SearchDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MenuDetectEvent;
-import org.eclipse.swt.events.MenuDetectListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.internal.ObjectActionContributorManager;
-
-/**
- * @author Mik Kersten
- * @author Leo Dos Santos - Task Working Set UI
- */
-public class TaskListFilteredTree extends AbstractFilteredTree {
-
- public static final String LABEL_SEARCH = Messages.TaskListFilteredTree_Search_repository_for_key_or_summary_;
-
- private TaskHyperlink workingSetLink;
-
- private TaskHyperlink activeTaskLink;
-
- private WorkweekProgressBar taskProgressBar;
-
- private int totalTasks;
-
- private int completeTime;
-
- private int completeTasks;
-
- private int incompleteTime;
-
- private IWorkingSet currentWorkingSet;
-
- private MenuManager activeTaskMenuManager = null;
-
- private Menu activeTaskMenu = null;
-
- private final CopyTaskDetailsAction copyTaskDetailsAction = new CopyTaskDetailsAction();
-
- private TaskListToolTip taskListToolTip;
-
- private ITaskListChangeListener changeListener;
-
- private TaskListChangeAdapter taskProgressBarChangeListener;
-
- private TaskActivityAdapter taskProgressBarActivityListener;
-
- private IPropertyChangeListener taskProgressBarWorkingSetListener;
-
- private TaskWorkingSetFilter workingSetFilter;
-
- private final IWorkbenchWindow window;
-
- /**
- * @param window
- * can be null. Needed for the working sets to be displayed properly
- */
- public TaskListFilteredTree(Composite parent, int treeStyle, PatternFilter filter, IWorkbenchWindow window) {
- super(parent, treeStyle, filter);
- hookContextMenu();
- this.window = window;
- }
-
- @Override
- public void dispose() {
- if (changeListener != null) {
- TasksUiInternal.getTaskList().removeChangeListener(changeListener);
- }
- if (taskProgressBarChangeListener != null) {
- TasksUiInternal.getTaskList().removeChangeListener(taskProgressBarChangeListener);
- }
- if (taskProgressBarActivityListener != null) {
- TasksUi.getTaskActivityManager().removeActivityListener(taskProgressBarActivityListener);
- }
- if (taskProgressBarWorkingSetListener != null) {
- PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(
- taskProgressBarWorkingSetListener);
- }
-
- super.dispose();
- taskListToolTip.dispose();
- }
-
- private void hookContextMenu() {
- activeTaskMenuManager = new MenuManager("#PopupMenu"); //$NON-NLS-1$
- activeTaskMenuManager.setRemoveAllWhenShown(true);
- activeTaskMenuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- fillContextMenu(manager, TasksUi.getTaskActivityManager().getActiveTask());
- }
- });
- }
-
- @Override
- protected TreeViewer doCreateTreeViewer(Composite parent, int style) {
- // Use a single Composite for the Tree to being able to use the
- // TreeColumnLayout. See Bug 177891 for more details.
- Composite container = new Composite(parent, SWT.None);
- GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
- gridData.verticalIndent = 0;
- gridData.horizontalIndent = 0;
- container.setLayoutData(gridData);
- container.setLayout(new TreeColumnLayout());
- return super.doCreateTreeViewer(container, style);
- }
-
- @Override
- protected Composite createProgressComposite(Composite container) {
- Composite progressComposite = new Composite(container, SWT.NONE);
- GridLayout progressLayout = new GridLayout(1, false);
- progressLayout.marginWidth = 4;
- progressLayout.marginHeight = 0;
- progressLayout.marginBottom = 0;
- progressLayout.horizontalSpacing = 0;
- progressLayout.verticalSpacing = 0;
- progressComposite.setLayout(progressLayout);
- progressComposite.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false, 4, 1));
-
- taskProgressBar = new WorkweekProgressBar(progressComposite);
- taskProgressBar.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- updateTaskProgressBar();
-
- taskProgressBarChangeListener = new TaskListChangeAdapter() {
-
- @Override
- public void containersChanged(Set<TaskContainerDelta> containers) {
- for (TaskContainerDelta taskContainerDelta : containers) {
- if (taskContainerDelta.getElement() instanceof ITask) {
- updateTaskProgressBar();
- break;
- }
- }
- }
- };
- TasksUiInternal.getTaskList().addChangeListener(taskProgressBarChangeListener);
-
- taskProgressBarActivityListener = new TaskActivityAdapter() {
-
- @Override
- public void activityReset() {
- updateTaskProgressBar();
- }
-
- };
- TasksUiPlugin.getTaskActivityManager().addActivityListener(taskProgressBarActivityListener);
-
- taskProgressBarWorkingSetListener = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property)
- || IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property)) {
- updateTaskProgressBar();
- }
- }
- };
- PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(taskProgressBarWorkingSetListener);
-
- return progressComposite;
- }
-
- @Override
- protected Composite createSearchComposite(Composite container) {
- Composite searchComposite = new Composite(container, SWT.NONE);
- GridLayout searchLayout = new GridLayout(1, false);
- searchLayout.marginWidth = 8;
- searchLayout.marginHeight = 0;
- searchLayout.marginBottom = 0;
- searchLayout.horizontalSpacing = 0;
- searchLayout.verticalSpacing = 0;
- searchComposite.setLayout(searchLayout);
- searchComposite.setLayoutData(new GridData(SWT.FILL, SWT.DEFAULT, true, false, 4, 1));
-
- final TaskHyperlink searchLink = new TaskHyperlink(searchComposite, SWT.LEFT);
- searchLink.setText(LABEL_SEARCH);
-
- searchLink.addHyperlinkListener(new IHyperlinkListener() {
-
- public void linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- new SearchDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow(), TaskSearchPage.ID).open();
- }
-
- public void linkEntered(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- searchLink.setUnderlined(true);
- }
-
- public void linkExited(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- searchLink.setUnderlined(false);
- }
- });
-
- return searchComposite;
- }
-
- private void updateTaskProgressBar() {
- if (taskProgressBar.isDisposed()) {
- return;
- }
-
- Set<ITask> tasksThisWeek = TasksUiPlugin.getTaskActivityManager().getScheduledForADayThisWeek();
- if (workingSetFilter != null) {
- for (Iterator<ITask> it = tasksThisWeek.iterator(); it.hasNext();) {
- ITask task = it.next();
- if (!workingSetFilter.select(task)) {
- it.remove();
- }
- }
- }
-
- totalTasks = tasksThisWeek.size();
- completeTime = 0;
- completeTasks = 0;
- incompleteTime = 0;
- for (ITask task : tasksThisWeek) {
- if (task instanceof AbstractTask) {
- AbstractTask abstractTask = (AbstractTask) task;
- if (task.isCompleted()) {
- completeTasks++;
- if (abstractTask.getEstimatedTimeHours() > 0) {
- completeTime += abstractTask.getEstimatedTimeHours();
- } else {
- completeTime++;
- }
- } else {
- if (abstractTask.getEstimatedTimeHours() > 0) {
- incompleteTime += abstractTask.getEstimatedTimeHours();
- } else {
- incompleteTime++;
- }
- }
- }
- }
-
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (PlatformUI.isWorkbenchRunning() && !taskProgressBar.isDisposed()) {
- taskProgressBar.reset(completeTime, (completeTime + incompleteTime));
-
- taskProgressBar.setToolTipText(Messages.TaskListFilteredTree_Workweek_Progress
- + "\n" //$NON-NLS-1$
- + MessageFormat.format(Messages.TaskListFilteredTree_Estimated_hours, completeTime,
- completeTime + incompleteTime)
- + "\n" //$NON-NLS-1$
- + MessageFormat.format(Messages.TaskListFilteredTree_Scheduled_tasks, completeTasks,
- totalTasks));
- }
- }
- });
- }
-
- @Override
- protected Composite createActiveWorkingSetComposite(Composite container) {
- final ImageHyperlink workingSetButton = new ImageHyperlink(container, SWT.FLAT);
- workingSetButton.setImage(CommonImages.getImage(CommonImages.TOOLBAR_ARROW_RIGHT));
- workingSetButton.setToolTipText(Messages.TaskListFilteredTree_Select_Working_Set);
-
- workingSetLink = new TaskHyperlink(container, SWT.LEFT);
- workingSetLink.setText(TaskWorkingSetAction.LABEL_SETS_NONE);
- workingSetLink.setUnderlined(false);
-
- final TaskWorkingSetAction workingSetAction = new TaskWorkingSetAction();
- workingSetButton.addHyperlinkListener(new IHyperlinkListener() {
-
- public void linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- workingSetAction.getMenu(workingSetButton).setVisible(true);
- }
-
- public void linkEntered(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- workingSetButton.setImage(CommonImages.getImage(CommonImages.TOOLBAR_ARROW_DOWN));
- }
-
- public void linkExited(org.eclipse.ui.forms.events.HyperlinkEvent e) {
- workingSetButton.setImage(CommonImages.getImage(CommonImages.TOOLBAR_ARROW_RIGHT));
- }
- });
- indicateActiveTaskWorkingSet();
-
- workingSetLink.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseDown(MouseEvent e) {
- if (currentWorkingSet != null) {
- workingSetAction.run(currentWorkingSet);
- } else {
- workingSetAction.run();
- }
- }
- });
-
- return workingSetLink;
- }
-
- @Override
- protected Composite createActiveTaskComposite(final Composite container) {
- final ImageHyperlink activeTaskButton = new ImageHyperlink(container, SWT.LEFT);// SWT.ARROW | SWT.RIGHT);
- activeTaskButton.setImage(CommonImages.getImage(CommonImages.TOOLBAR_ARROW_RIGHT));
- activeTaskButton.setToolTipText(Messages.TaskListFilteredTree_Select_Active_Task);
-
- activeTaskLink = new TaskHyperlink(container, SWT.LEFT);
-
- changeListener = new TaskListChangeAdapter() {
- @Override
- public void containersChanged(Set<TaskContainerDelta> containers) {
- for (TaskContainerDelta taskContainerDelta : containers) {
- if (taskContainerDelta.getElement() instanceof ITask) {
- final AbstractTask changedTask = (AbstractTask) (taskContainerDelta.getElement());
- if (changedTask.isActive()) {
- if (Platform.isRunning() && PlatformUI.getWorkbench() != null) {
- if (Display.getCurrent() == null) {
- if (PlatformUI.getWorkbench().getDisplay() != null
- && !PlatformUI.getWorkbench().getDisplay().isDisposed()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- indicateActiveTask(changedTask);
- }
- });
- }
- } else {
- indicateActiveTask(changedTask);
- }
- }
- }
- }
- }
- }
- };
- TasksUiInternal.getTaskList().addChangeListener(changeListener);
-
- activeTaskLink.setText(Messages.TaskListFilteredTree_Activate);
- // avoid having the Hyperlink class show a native tooltip when it shortens the text which would overlap with the task list tooltip
- activeTaskLink.setToolTipText(""); //$NON-NLS-1$
-
- taskListToolTip = new TaskListToolTip(activeTaskLink);
-
- ITask activeTask = TasksUi.getTaskActivityManager().getActiveTask();
- if (activeTask != null) {
- indicateActiveTask(activeTask);
- }
-
- activeTaskButton.addHyperlinkListener(new IHyperlinkListener() {
-
- private Menu dropDownMenu;
-
- public void linkActivated(HyperlinkEvent event) {
- if (dropDownMenu != null) {
- dropDownMenu.dispose();
- }
- TaskHistoryDropDown taskHistory = new TaskHistoryDropDown();
- taskHistory.setScopedToWorkingSet(true);
- dropDownMenu = new Menu(activeTaskButton);
- taskHistory.fill(dropDownMenu, 0);
- dropDownMenu.setVisible(true);
- }
-
- public void linkEntered(HyperlinkEvent event) {
- activeTaskButton.setImage(CommonImages.getImage(CommonImages.TOOLBAR_ARROW_DOWN));
- }
-
- public void linkExited(HyperlinkEvent event) {
- activeTaskButton.setImage(CommonImages.getImage(CommonImages.TOOLBAR_ARROW_RIGHT));
- }
- });
-
- activeTaskLink.addMenuDetectListener(new MenuDetectListener() {
- public void menuDetected(MenuDetectEvent e) {
- if (activeTaskMenu != null) {
- activeTaskMenu.dispose();
- }
- activeTaskMenu = activeTaskMenuManager.createContextMenu(container);
- activeTaskMenu.setVisible(true);
- }
- });
-
- activeTaskLink.addMouseListener(new MouseAdapter() {
-
- @Override
- public void mouseDown(MouseEvent e) {
- if (e.button == 1) {
- ITask activeTask = (TasksUi.getTaskActivityManager().getActiveTask());
- if (activeTask == null) {
- ActivateTaskDialogAction activateAction = new ActivateTaskDialogAction();
- activateAction.init(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
- activateAction.run(null);
- } else {
-// if (TaskListFilteredTree.super.filterText.getText().length() > 0) {
-// TaskListFilteredTree.super.filterText.setText("");
-// TaskListFilteredTree.this.textChanged();
-// }
-// if (TaskListView.getFromActivePerspective().getDrilledIntoCategory() != null) {
-// TaskListView.getFromActivePerspective().goUpToRoot();
-// }
- TasksUiInternal.refreshAndOpenTaskListElement(activeTask);
- }
- }
- }
- });
-
- return activeTaskLink;
- }
-
- @Override
- protected void textChanged() {
- super.textChanged();
- if (getFilterString() != null && !getFilterString().trim().equals("")) { //$NON-NLS-1$
- setShowSearch(true);
- } else {
- setShowSearch(false);
- }
- }
-
- public void indicateActiveTaskWorkingSet() {
- if (window != null) {
- Set<IWorkingSet> activeSets = TaskWorkingSetUpdater.getActiveWorkingSets(window);
-
- if (filterComposite.isDisposed() || activeSets == null) {
- return;
- }
-
- if (activeSets.size() == 0) {
- workingSetLink.setText(TaskWorkingSetAction.LABEL_SETS_NONE);
- workingSetLink.setToolTipText(Messages.TaskListFilteredTree_Edit_Task_Working_Sets_);
- currentWorkingSet = null;
- } else if (activeSets.size() > 1) {
- workingSetLink.setText(Messages.TaskListFilteredTree__multiple_);
- workingSetLink.setToolTipText(Messages.TaskListFilteredTree_Edit_Task_Working_Sets_);
- currentWorkingSet = null;
- } else {
- Object[] array = activeSets.toArray();
- IWorkingSet workingSet = (IWorkingSet) array[0];
- workingSetLink.setText(workingSet.getLabel());
- workingSetLink.setToolTipText(Messages.TaskListFilteredTree_Edit_Task_Working_Sets_);
- currentWorkingSet = workingSet;
- }
- filterComposite.layout();
- }
- }
-
- public void indicateActiveTask(ITask task) {
- if (Display.getCurrent() != null) {
-
- if (filterComposite.isDisposed()) {
- return;
- }
-
- activeTaskLink.setTask(task);
-
- filterComposite.layout();
- }
- }
-
- public String getActiveTaskLabelText() {
- return activeTaskLink.getText();
- }
-
- public void indicateNoActiveTask() {
- if (filterComposite.isDisposed()) {
- return;
- }
-
- activeTaskLink.setTask(null);
- activeTaskLink.setText(Messages.TaskListFilteredTree_Activate);
- activeTaskLink.setToolTipText(""); //$NON-NLS-1$
-
- filterComposite.layout();
- }
-
- @Override
- public void setFilterText(String string) {
- if (filterText != null) {
- filterText.setText(string);
- selectAll();
- }
- }
-
- private void fillContextMenu(IMenuManager manager, final ITask activeTask) {
- if (activeTask != null) {
- IStructuredSelection selection = new StructuredSelection(activeTask);
- copyTaskDetailsAction.selectionChanged(selection);
-
- manager.add(new OpenTaskListElementAction(null) {
- @Override
- public void run() {
- TasksUiInternal.refreshAndOpenTaskListElement(activeTask);
- }
- });
-
- if (activeTask.isActive()) {
- manager.add(new TaskDeactivateAction() {
- @Override
- public void run() {
- super.run(activeTask);
- }
- });
- } else {
- manager.add(new TaskActivateAction() {
- @Override
- public void run() {
-// TasksUiPlugin.getTaskListManager().getTaskActivationHistory().addTask(activeTask);
- super.run(activeTask);
- }
- });
- }
-
- manager.add(new Separator());
-
- for (String menuPath : TasksUiPlugin.getDefault().getDynamicMenuMap().keySet()) {
- for (IDynamicSubMenuContributor contributor : TasksUiPlugin.getDefault().getDynamicMenuMap().get(
- menuPath)) {
- if (TaskListView.ID_SEPARATOR_TASKS.equals(menuPath)) {
- List<IRepositoryElement> selectedElements = new ArrayList<IRepositoryElement>();
- selectedElements.add(activeTask);
- MenuManager subMenuManager = contributor.getSubMenuManager(selectedElements);
- if (subMenuManager != null) {
- manager.add(subMenuManager);
- }
- }
- }
- }
-
- manager.add(new Separator());
- manager.add(copyTaskDetailsAction);
- manager.add(new Separator());
-
- ObjectActionContributorManager.getManager().contributeObjectActions(null, manager,
- new ISelectionProvider() {
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- // ignore
- }
-
- public ISelection getSelection() {
- return new StructuredSelection(activeTask);
- }
-
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- // ignore
- }
-
- public void setSelection(ISelection selection) {
- // ignore
- }
- });
- }
- }
-
- @Override
- protected String getFilterString() {
- String text = super.getFilterString();
- return (text != null) ? text.trim() : null;
- }
-
- public TaskWorkingSetFilter getWorkingSetFilter() {
- return workingSetFilter;
- }
-
- public void setWorkingSetFilter(TaskWorkingSetFilter workingSetFilter) {
- this.workingSetFilter = workingSetFilter;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java
deleted file mode 100644
index be3dbc59a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.util.Collection;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskScheduleContentProvider.Unscheduled;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-
-/**
- * Goal is to have this reuse as much of the super as possible.
- *
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TaskListInterestFilter extends AbstractTaskListFilter {
-
- @Override
- public boolean select(Object parent, Object child) {
- try {
- if (child instanceof ScheduledTaskContainer) {
- ScheduledTaskContainer dateRangeTaskContainer = (ScheduledTaskContainer) child;
- 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) {
- Collection<ITask> children = ((ITaskContainer) child).getChildren();
- // Always display empty containers
- if (children.size() == 0) {
- return false;
- }
-
- for (ITask task : children) {
- if (shouldAlwaysShow(child, (AbstractTask) task, ITasksCoreConstants.MAX_SUBTASK_DEPTH)) {
- return true;
- }
- }
-
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Interest filter failed", t)); //$NON-NLS-1$
- }
- return false;
- }
-
- private boolean isDateRangeInteresting(ScheduledTaskContainer scheduleContainer) {
- if (scheduleContainer instanceof TaskScheduleContentProvider.Unscheduled) {
- return true;
- }
- if (TaskActivityUtil.getCurrentWeek().isCurrentWeekDay(scheduleContainer.getDateRange())) {
- if (scheduleContainer.isPresent() || scheduleContainer.isFuture()) {
- return true;
- }
- } else if (scheduleContainer.isPresent() /*&& scheduleContainer.isCaptureFloating()*/) {
- 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) {
-
- return task.isActive() || TasksUiPlugin.getTaskActivityManager().isCompletedToday(task)
- || hasChanges(parent, task)
- || hasInterestingSubTasks(parent, task, depth)
- // note that following condition is wrapped in ()!
- || (!task.isCompleted() && (LocalRepositoryConnector.DEFAULT_SUMMARY.equals(task.getSummary())
- || shouldShowInFocusedWorkweekDateContainer(parent, task)
- || TasksUiPlugin.getTaskActivityManager().isOverdue(task) || isInterestingForThisWeek(parent,
- task)));
- }
-
- private boolean hasInterestingSubTasks(Object parent, AbstractTask task, int depth) {
- if (depth > 0) {
- if (!TasksUiPlugin.getDefault().groupSubtasks(task)) {
- return false;
- }
- if (task.getChildren() != null && task.getChildren().size() > 0) {
- for (ITask subTask : task.getChildren()) {
- if (shouldAlwaysShow(parent, (AbstractTask) subTask, depth - 1)) {
- return true;
- }
- }
- }
- }
- return false;
- }
-
- private boolean shouldShowInFocusedWorkweekDateContainer(Object parent, ITask task) {
- if (parent instanceof ScheduledTaskContainer) {
-
- ScheduledTaskContainer container = (ScheduledTaskContainer) parent;
-
- if (container instanceof Unscheduled) {
- return false;
- }
-
- if (isDateRangeInteresting(container)) {
- return true;
- }
-
-// if (container.isWeekDay() || container.isPresent()) {
-// return true;
-// }
-//
-//// if (!TasksUiPlugin.getTaskActivityManager().isWeekDay((ScheduledTaskContainer) parent)) {
-//// return false;
-//// }
-// if (TasksUiPlugin.getTaskActivityManager().isOverdue(task)
-// || TasksUiPlugin.getTaskActivityManager().isPastReminder((AbstractTask) task)) {
-// return true;
-// }
-
- }
-
- return false;
- }
-
- public boolean isInterestingForThisWeek(Object parent, AbstractTask task) {
- if (parent instanceof ScheduledTaskContainer) {
- return shouldShowInFocusedWorkweekDateContainer(parent, task);
- } else {
- return TasksUiPlugin.getTaskActivityManager().isPastReminder(task)
- || TasksUiPlugin.getTaskActivityManager().isSheduledForPastWeek(task)
- || TasksUiPlugin.getTaskActivityManager().isScheduledForThisWeek(task)
- || TasksUiPlugin.getTaskActivityManager().isDueThisWeek(task)
- || TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task);
- }
- }
-
- public boolean hasChanges(Object parent, ITask task) {
- if (parent instanceof ScheduledTaskContainer && !(parent instanceof TaskScheduleContentProvider.Unscheduled)) {
- if (!shouldShowInFocusedWorkweekDateContainer(parent, task)) {
- return false;
- }
- }
- return hasChangesHelper(parent, task);
- }
-
- private boolean hasChangesHelper(Object parent, ITask task) {
- if (task.getSynchronizationState().isOutgoing()) {
- return true;
- } else if (task.getSynchronizationState().isIncoming()) {
- return true;
- }
- if (task instanceof ITaskContainer) {
- for (ITask child : ((ITaskContainer) task).getChildren()) {
- if (hasChangesHelper(parent, child)) {
- return true;
- }
- }
- }
- return false;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java
deleted file mode 100644
index 99295bc0e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestSorter.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-
-/**
- * @author Mik Kersten
- */
-public class TaskListInterestSorter extends ViewerSorter {
-
- private final TaskKeyComparator taskKeyComparator = new TaskKeyComparator();
-
- @Override
- public int compare(Viewer compareViewer, Object o1, Object o2) {
-
- if (o1 instanceof ITaskContainer && o2 instanceof UnmatchedTaskContainer) {
- return -1;
- } else if (o2 instanceof ITaskContainer && o1 instanceof UnmatchedTaskContainer) {
- return 1;
- }
- if (o1 instanceof ScheduledTaskContainer && o2 instanceof ScheduledTaskContainer) {
- ScheduledTaskContainer dateRangeTaskContainer1 = (ScheduledTaskContainer) o1;
- ScheduledTaskContainer dateRangeTaskContainer2 = (ScheduledTaskContainer) o2;
- return dateRangeTaskContainer1.getDateRange().compareTo(dateRangeTaskContainer2.getDateRange());
- } else if (o1 instanceof ITaskContainer && o2 instanceof ScheduledTaskContainer) {
- return -1;
- } else if (o1 instanceof ScheduledTaskContainer && o2 instanceof ITaskContainer) {
- return 1;
- }
-
- if (o1 instanceof UncategorizedTaskContainer && o2 instanceof ITaskContainer) {
- return -1;
- } else if (o1 instanceof ITaskContainer && o2 instanceof UncategorizedTaskContainer) {
- return 1;
- }
-
- if (!(o1 instanceof ITask) && o2 instanceof ITask) {
- return 1;
- }
-
- if (!(o1 instanceof ITask)) {//o1 instanceof AbstractTaskContainer || o1 instanceof AbstractRepositoryQuery) {
- if (!(o2 instanceof ITask)) {//o2 instanceof AbstractTaskContainer || o2 instanceof AbstractRepositoryQuery) {
- return ((IRepositoryElement) o1).getSummary().compareToIgnoreCase(
- ((IRepositoryElement) o2).getSummary());
- } else {
- return -1;
- }
- } else if (o1 instanceof ITaskContainer) {
- if (!(o2 instanceof ITask)) {//o2 instanceof AbstractTaskContainer || o2 instanceof AbstractRepositoryQuery) {
- return -1;
- } else if (o2 instanceof ITaskContainer) {
- IRepositoryElement element1 = (IRepositoryElement) o1;
- IRepositoryElement element2 = (IRepositoryElement) o2;
-
- AbstractTask task1 = null;
- AbstractTask task2 = null;
- if (element1 instanceof ITask) {
- task1 = (AbstractTask) element1;
- }
- if (element2 instanceof ITask) {
- task2 = (AbstractTask) element2;
- }
-
- if (task1 == null && task2 == null) {
- return comparePrioritiesAndKeys(element1, element2);
- } else if (task1 == null) {
- return 1;
- } else if (task2 == null) {
- return -1;
- }
-
- int complete = compareCompleted(task1, task2);
- if (complete != 0) {
- return complete;
- } else {
- int due = compareDueDates(task1, task2);
- if (due != 0) {
- return due;
- } else {
- int today = compareScheduledDate(task1, task2);
- if (today == 0) {
- return comparePrioritiesAndKeys(element1, element2);
- } else {
- return today;
- }
- }
- }
- }
- }
- return 0;
- }
-
- private int compareDueDates(ITask task1, ITask task2) {
- if (TasksUiPlugin.getTaskActivityManager().isOverdue(task1)
- && !TasksUiPlugin.getTaskActivityManager().isOverdue(task2)) {
- return -1;
- } else if (!TasksUiPlugin.getTaskActivityManager().isOverdue(task1)
- && TasksUiPlugin.getTaskActivityManager().isOverdue(task2)) {
- return 1;
- }
- return 0;
- }
-
- private int compareScheduledDate(AbstractTask task1, AbstractTask task2) {
- if (isToday(task1) && !isToday(task2)) {
- return -1;
- } else if (!isToday(task1) && isToday(task2)) {
- return 1;
- } else {
- return 0;
- }
- }
-
- private boolean isToday(AbstractTask task) {
- return TasksUiPlugin.getTaskActivityManager().isPastReminder(task)
- || TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task);
- }
-
- private int compareCompleted(ITask task1, ITask task2) {
- if (task1.isCompleted() && !task2.isCompleted()) {
- return 1;
- } else if (!task1.isCompleted() && task2.isCompleted()) {
- return -1;
- } else {
- return 0;
- }
- }
-
- private int comparePrioritiesAndKeys(IRepositoryElement element1, IRepositoryElement element2) {
- int priority = comparePriorities(element1, element2);
- if (priority != 0) {
- return priority;
- }
-
- int description = compareKeys(element1, element2);
- if (description != 0) {
- return description;
- }
- return 0;
- }
-
- private int compareKeys(IRepositoryElement element1, IRepositoryElement element2) {
- return taskKeyComparator.compare(TaskComparator.getSortableFromElement(element1),
- TaskComparator.getSortableFromElement(element2));
- }
-
- private int comparePriorities(IRepositoryElement element1, IRepositoryElement element2) {
- if (element1 instanceof AbstractTaskContainer && element2 instanceof AbstractTaskContainer) {
- return ((AbstractTaskContainer) element1).getPriority().compareTo(
- ((AbstractTaskContainer) element2).getPriority());
- } else {
- // TODO: consider implementing
- return -1;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListSorter.java
deleted file mode 100644
index 777beb21f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListSorter.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-/**
- * @author Mik Kersten
- */
-public class TaskListSorter extends ViewerSorter {
-
- public static final int DEFAULT_SORT_DIRECTION = 1;
-
- private int sortDirectionRootElement;
-
- private final TaskComparator taskComparator;
-
- public TaskListSorter() {
- this.sortDirectionRootElement = DEFAULT_SORT_DIRECTION;
- this.taskComparator = new TaskComparator();
- }
-
- /**
- * compare - invoked when column is selected calls the actual comparison method for particular criteria
- */
- @Override
- public int compare(Viewer compareViewer, Object o1, Object o2) {
- if (o1 instanceof AbstractTask && o2 instanceof AbstractTask) {
- // sort of the tasks within the container using the setting from the Sortdialog
- ITask element1 = (ITask) o1;
- ITask element2 = (ITask) o2;
- return compareElements(element1, element2);
- } else if (o1 instanceof ScheduledTaskContainer && o2 instanceof ScheduledTaskContainer) {
- // scheduled Mode compare
- ScheduledTaskContainer dateRangeTaskContainer1 = (ScheduledTaskContainer) o1;
- ScheduledTaskContainer dateRangeTaskContainer2 = (ScheduledTaskContainer) o2;
- return dateRangeTaskContainer1.getDateRange().compareTo(dateRangeTaskContainer2.getDateRange());
- } else {
- int o1Type;
- if (o1 instanceof AbstractTask) {
- o1Type = 0;
- } else if (o1 instanceof UncategorizedTaskContainer) {
- o1Type = 1;
- } else if (o1 instanceof UnsubmittedTaskContainer) {
- o1Type = 2;
- } else if (o1 instanceof TaskCategory) {
- o1Type = 3;
- } else if (o1 instanceof RepositoryQuery) {
- o1Type = 4;
- } else if (o1 instanceof TaskGroup) { // support for the experimental grouping of tasks
- o1Type = 5;
- } else if (o1 instanceof UnmatchedTaskContainer) {
- o1Type = 6;
- } else {
- o1Type = 99;
- }
- int o2Type;
- if (o2 instanceof AbstractTask) {
- o2Type = 0;
- } else if (o2 instanceof UncategorizedTaskContainer) {
- o2Type = 1;
- } else if (o2 instanceof UnsubmittedTaskContainer) {
- o2Type = 2;
- } else if (o2 instanceof TaskCategory) {
- o2Type = 3;
- } else if (o2 instanceof RepositoryQuery) {
- o2Type = 4;
- } else if (o2 instanceof TaskGroup) { // support for the experimental grouping of tasks
- o2Type = 5;
- } else if (o2 instanceof UnmatchedTaskContainer) {
- o2Type = 6;
- } else {
- o2Type = 99;
- }
- if (o1Type != o2Type) {
- return o1Type - o2Type < 0 ? -1 : 1;
- }
- if (o1Type < 7) {
- AbstractTaskContainer taskContainer1 = (AbstractTaskContainer) o1;
- AbstractTaskContainer taskContainer2 = (AbstractTaskContainer) o2;
-
- return this.sortDirectionRootElement
- * taskContainer1.getSummary().compareToIgnoreCase(taskContainer2.getSummary());
- }
- }
- return 0;
- }
-
- private int compareElements(ITask element1, ITask element2) {
- return taskComparator.compare(element1, element2);
- }
-
- @Override
- public TaskComparator getComparator() {
- return taskComparator;
- }
-
- public int getSortDirectionRootElement() {
- return sortDirectionRootElement;
- }
-
- public void setSortDirectionRootElement(int sortDirection) {
- this.sortDirectionRootElement = sortDirection;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java
deleted file mode 100644
index b6664b93b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.commons.core.DateUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.GradientToolTip;
-import org.eclipse.mylyn.internal.provisional.commons.ui.ScalingHyperlink;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TaskHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskDataDiff;
-import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskListNotifier;
-import org.eclipse.mylyn.internal.tasks.ui.util.PlatformUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-
-/**
- * @author Mik Kersten
- * @author Eric Booth
- * @author Leo Dos Santos - multi-monitor support
- * @author Steffen Pingel
- */
-public class TaskListToolTip extends GradientToolTip {
-
- private final static int MAX_TEXT_WIDTH = 300;
-
- private final static int MAX_WIDTH = 600;
-
- private final static int X_SHIFT = PlatformUtil.getToolTipXShift();
-
- private final static int Y_SHIFT = 1;
-
- private IRepositoryElement currentTipElement;
-
- private final List<TaskListToolTipListener> listeners = new ArrayList<TaskListToolTipListener>();
-
- private boolean visible;
-
- private boolean triggeredByMouse;
-
- private final Control control;
-
- public TaskListToolTip(Control control) {
- super(control);
-
- this.control = control;
- setShift(new Point(1, 1));
- }
-
- public void dispose() {
- hide();
- }
-
- @Override
- protected void afterHideToolTip(Event event) {
- triggeredByMouse = true;
- visible = false;
- for (TaskListToolTipListener listener : listeners.toArray(new TaskListToolTipListener[0])) {
- listener.toolTipHidden(event);
- }
- }
-
- public void addTaskListToolTipListener(TaskListToolTipListener listener) {
- listeners.add(listener);
- }
-
- public void removeTaskListToolTipListener(TaskListToolTipListener listener) {
- listeners.remove(listener);
- }
-
- private IRepositoryElement getTaskListElement(Object hoverObject) {
- if (hoverObject instanceof ScalingHyperlink) {
- TaskHyperlink hyperlink = (TaskHyperlink) hoverObject;
- return hyperlink.getTask();
- } else if (hoverObject instanceof Widget) {
- Object data = ((Widget) hoverObject).getData();
- if (data != null) {
- if (data instanceof ITaskContainer) {
- return (IRepositoryElement) data;
- } else if (data instanceof IAdaptable) {
- return (IRepositoryElement) ((IAdaptable) data).getAdapter(AbstractTaskContainer.class);
- }
- }
- }
- return null;
- }
-
- private String getTitleText(IRepositoryElement element) {
- if (element instanceof ScheduledTaskContainer) {
- StringBuilder sb = new StringBuilder();
- sb.append(element.getSummary());
- Calendar start = ((ScheduledTaskContainer) element).getDateRange().getStartDate();
- sb.append(" ["); //$NON-NLS-1$
- sb.append(DateFormat.getDateInstance(DateFormat.LONG).format(start.getTime()));
- sb.append("]"); //$NON-NLS-1$
- return sb.toString();
- } else if (element instanceof IRepositoryQuery) {
- IRepositoryQuery query = (IRepositoryQuery) element;
- StringBuilder sb = new StringBuilder();
- sb.append(element.getSummary());
- sb.append(" ["); //$NON-NLS-1$
- sb.append(getRepositoryLabel(query.getConnectorKind(), query.getRepositoryUrl()));
- sb.append("]"); //$NON-NLS-1$
- return sb.toString();
- } else {
- return new TaskElementLabelProvider(false).getText(element);
- }
- }
-
- private String getDetailsText(IRepositoryElement element) {
- if (element instanceof ScheduledTaskContainer) {
- ScheduledTaskContainer container = (ScheduledTaskContainer) element;
- int estimateTotal = 0;
- long elapsedTotal = 0;
- for (ITask child : container.getChildren()) {
- if (child instanceof AbstractTask) {
- estimateTotal += ((AbstractTask) child).getEstimatedTimeHours();
- elapsedTotal += TasksUiPlugin.getTaskActivityManager().getElapsedTime(child,
- container.getDateRange());
- }
- }
- StringBuilder sb = new StringBuilder();
- sb.append(NLS.bind(Messages.TaskListToolTip_Estimate, estimateTotal));
- sb.append("\n"); //$NON-NLS-1$
- sb.append(NLS.bind(Messages.TaskListToolTip_Elapsed, DateUtil.getFormattedDurationShort(elapsedTotal)));
- sb.append("\n"); //$NON-NLS-1$
- return sb.toString();
- } else if (element instanceof ITask) {
- ITask task = (ITask) element;
- StringBuilder sb = new StringBuilder();
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(task.getConnectorKind());
- String kindLabel = null;
- if (connectorUi != null) {
- kindLabel = connectorUi.getTaskKindLabel(task);
- sb.append(kindLabel);
- }
- String key = task.getTaskKey();
- if (key != null) {
- sb.append(" "); //$NON-NLS-1$
- sb.append(key);
- }
- String taskKind = task.getTaskKind();
- if (taskKind != null && taskKind.length() > 0 && !taskKind.equals(kindLabel)) {
- sb.append(" ("); //$NON-NLS-1$
- sb.append(taskKind);
- sb.append(") "); //$NON-NLS-1$
- }
- sb.append(", "); //$NON-NLS-1$
- sb.append(task.getPriority());
- sb.append(" ["); //$NON-NLS-1$
- sb.append(getRepositoryLabel(task.getConnectorKind(), task.getRepositoryUrl()));
- sb.append("]"); //$NON-NLS-1$
- sb.append("\n"); //$NON-NLS-1$
- return sb.toString();
- } else {
- return null;
- }
- }
-
- private String getRepositoryLabel(String repositoryKind, String repositoryUrl) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(repositoryKind, repositoryUrl);
- if (repository != null) {
- String label = repository.getRepositoryLabel();
- if (label.indexOf("//") != -1) { //$NON-NLS-1$
- return label.substring((repository.getRepositoryUrl().indexOf("//") + 2)); //$NON-NLS-1$
- }
- return label;
- }
- return ""; //$NON-NLS-1$
- }
-
- private String getActivityText(IRepositoryElement element) {
-// if (element instanceof ScheduledTaskDelegate) {
-// ScheduledTaskDelegate task = (ScheduledTaskDelegate) element;
-//
-// StringBuilder sb = new StringBuilder();
-// Date date = task.getScheduledForDate();
-// if (date != null) {
-// sb.append("Scheduled for: ");
-// sb.append(new SimpleDateFormat("E").format(date)).append(", ");
-// sb.append(DateFormat.getDateInstance(DateFormat.LONG).format(date));
-// sb.append(" (").append(DateFormat.getTimeInstance(DateFormat.SHORT).format(date)).append(")\n");
-// }
-//
-// long elapsed = TasksUiPlugin.getTaskActivityManager().getElapsedTime(task.getCorrespondingTask(),
-// task.getDateRangeContainer().getStart(), task.getDateRangeContainer().getEnd());
-// String elapsedTimeString = DateUtil.getFormattedDurationShort(elapsed);
-// sb.append("Elapsed: ");
-// sb.append(elapsedTimeString);
-// sb.append("\n");
-//
-// return sb.toString();
-// } else
-//
- if (element instanceof ITask) {
- AbstractTask task = (AbstractTask) element;
-
- StringBuilder sb = new StringBuilder();
-
- Date dueDate = task.getDueDate();
- if (dueDate != null) {
- sb.append(NLS.bind(Messages.TaskListToolTip_Due, new Object[] {
- new SimpleDateFormat("E").format(dueDate), //$NON-NLS-1$
- DateFormat.getDateInstance(DateFormat.LONG).format(dueDate),
- DateFormat.getTimeInstance(DateFormat.SHORT).format(dueDate) }));
- sb.append("\n"); //$NON-NLS-1$
- }
-
- DateRange scheduledDate = task.getScheduledForDate();
- if (scheduledDate != null) {
- sb.append(NLS.bind(Messages.TaskListToolTip_Scheduled, scheduledDate.toString()));
- sb.append("\n"); //$NON-NLS-1$
- }
-
- long elapsed = TasksUiPlugin.getTaskActivityManager().getElapsedTime(task);
- sb.append(NLS.bind(Messages.TaskListToolTip_Elapsed, DateUtil.getFormattedDurationShort(elapsed)));
- sb.append("\n"); //$NON-NLS-1$
-
- return sb.toString();
- }
- return null;
- }
-
- private String getIncommingText(IRepositoryElement element) {
- if (element instanceof ITask) {
- ITask task = (ITask) element;
- if (task.getSynchronizationState().isIncoming()) {
- String text = null;
- TaskListNotifier notifier = new TaskListNotifier(TasksUiPlugin.getRepositoryModel(),
- TasksUiPlugin.getTaskDataManager());
- TaskDataDiff diff = notifier.getDiff(task);
- if (diff != null) {
- text = diff.toString(MAX_TEXT_WIDTH);
- }
- if (text != null && text.length() > 0) {
- return text;
- }
- }
- }
- return null;
- }
-
- private String getStatusText(IRepositoryElement element) {
- IStatus status = null;
- if (element instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) element;
- status = task.getStatus();
- } else if (element instanceof IRepositoryQuery) {
- RepositoryQuery query = (RepositoryQuery) element;
- status = query.getStatus();
- }
-
- if (status != null) {
- StringBuilder sb = new StringBuilder();
- sb.append(status.getMessage());
- if (status instanceof RepositoryStatus && ((RepositoryStatus) status).isHtmlMessage()) {
- sb.append(Messages.TaskListToolTip_Please_synchronize_manually_for_full_error_message);
- }
- return sb.toString();
- }
-
- return null;
- }
-
- @Override
- public Point getLocation(Point tipSize, Event event) {
- Widget widget = getTipWidget(event);
- if (widget != null) {
- Rectangle bounds = getBounds(widget);
- if (bounds != null) {
- return control.toDisplay(bounds.x + X_SHIFT, bounds.y + bounds.height + Y_SHIFT);
- }
- }
- return super.getLocation(tipSize, event);//control.toDisplay(event.x + xShift, event.y + yShift);
- }
-
- private ProgressData getProgressData(IRepositoryElement element) {
- if (element instanceof ITaskContainer) {
- Object[] children = new Object[0];
-
- children = ((ITaskContainer) element).getChildren().toArray();
-
- int total = children.length;
- if (total > 0) {
- int completed = 0;
- for (ITask task : ((ITaskContainer) element).getChildren()) {
- if (task.isCompleted()) {
- completed++;
- }
- }
- String text = NLS.bind(Messages.TaskListToolTip_Total_Complete_Incomplete, new Object[] { //
- total, completed, (total - completed) });
- return new ProgressData(completed, total, text);
- }
- }
- return null;
- }
-
- private Image getImage(IRepositoryElement element) {
- if (element instanceof IRepositoryQuery) {
- IRepositoryQuery query = (IRepositoryQuery) element;
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- query.getConnectorKind());
- if (connector != null) {
- return TasksUiPlugin.getDefault().getBrandingIcon(connector.getConnectorKind());
- }
- } else if (element instanceof ITask) {
- ITask repositoryTask = (ITask) element;
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repositoryTask.getConnectorKind());
- if (connector != null) {
- return TasksUiPlugin.getDefault().getBrandingIcon(connector.getConnectorKind());
- }
- } else if (element instanceof ScheduledTaskContainer) {
- return CommonImages.getImage(CommonImages.CALENDAR);
- }
- return null;
- }
-
- protected Widget getTipWidget(Event event) {
- Point widgetPosition = new Point(event.x, event.y);
- Widget widget = event.widget;
- if (widget instanceof ToolBar) {
- ToolBar w = (ToolBar) widget;
- return w.getItem(widgetPosition);
- }
- if (widget instanceof Table) {
- Table w = (Table) widget;
- return w.getItem(widgetPosition);
- }
- if (widget instanceof Tree) {
- Tree w = (Tree) widget;
- return w.getItem(widgetPosition);
- }
-
- return widget;
- }
-
- private Rectangle getBounds(Widget widget) {
- if (widget instanceof ToolItem) {
- ToolItem w = (ToolItem) widget;
- return w.getBounds();
- }
- if (widget instanceof TableItem) {
- TableItem w = (TableItem) widget;
- return w.getBounds();
- }
- if (widget instanceof TreeItem) {
- TreeItem w = (TreeItem) widget;
- return w.getBounds();
- }
- return null;
- }
-
- @Override
- protected boolean shouldCreateToolTip(Event event) {
- currentTipElement = null;
-
- if (super.shouldCreateToolTip(event)) {
- Widget tipWidget = getTipWidget(event);
- if (tipWidget != null) {
- Rectangle bounds = getBounds(tipWidget);
- if (tipWidget instanceof ScalingHyperlink) {
- currentTipElement = getTaskListElement(tipWidget);
- } else if (bounds != null && control.getBounds().contains(bounds.x, bounds.y)) {
- currentTipElement = getTaskListElement(tipWidget);
- }
- }
- }
-
- if (currentTipElement == null) {
- hide();
- return false;
- } else {
- return true;
- }
- }
-
- @Override
- protected Composite createToolTipArea(Event event, Composite parent) {
- assert currentTipElement != null;
-
- Composite composite = createToolTipContentAreaComposite(parent);
-
- addIconAndLabel(composite, getImage(currentTipElement), getTitleText(currentTipElement));
-
- String detailsText = getDetailsText(currentTipElement);
- if (detailsText != null) {
- addIconAndLabel(composite, null, detailsText);
- }
-
- String synchText = getSynchText(currentTipElement);
- if (synchText != null) {
- addIconAndLabel(composite, CommonImages.getImage(TasksUiImages.REPOSITORY_SYNCHRONIZE), synchText);
- }
-
- String activityText = getActivityText(currentTipElement);
- if (activityText != null) {
- addIconAndLabel(composite, CommonImages.getImage(CommonImages.CALENDAR), activityText);
- }
-
- String incommingText = getIncommingText(currentTipElement);
- if (incommingText != null) {
- Image image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING);
- if (currentTipElement instanceof ITask) {
- ITask task = (ITask) currentTipElement;
- if (task.getSynchronizationState() == SynchronizationState.INCOMING_NEW) {
- image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_INCOMMING_NEW);
- } else if (task.getSynchronizationState() == SynchronizationState.OUTGOING_NEW) {
- image = CommonImages.getImage(CommonImages.OVERLAY_SYNC_OUTGOING_NEW);
- }
- }
- addIconAndLabel(composite, image, incommingText);
- }
-
- ProgressData progress = getProgressData(currentTipElement);
- if (progress != null) {
- addIconAndLabel(composite, null, progress.text);
-
- // label height need to be set to 0 to remove gap below the progress bar
- Label label = new Label(composite, SWT.NONE);
- GridData labelGridData = new GridData(SWT.FILL, SWT.TOP, true, false);
- labelGridData.heightHint = 0;
- label.setLayoutData(labelGridData);
-
- Composite progressComposite = new Composite(composite, SWT.NONE);
- GridLayout progressLayout = new GridLayout(1, false);
- progressLayout.marginWidth = 0;
- progressLayout.marginHeight = 0;
- progressComposite.setLayout(progressLayout);
- progressComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
- WorkweekProgressBar taskProgressBar = new WorkweekProgressBar(progressComposite);
- taskProgressBar.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
- taskProgressBar.reset(progress.completed, progress.total);
-
- // do we really need custom canvas? code below renders the same
-// IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
-// Color color = themeManager.getCurrentTheme().getColorRegistry().get(
-// TaskListColorsAndFonts.THEME_COLOR_TASK_TODAY_COMPLETED);
-// ProgressBar bar = new ProgressBar(tipShell, SWT.SMOOTH);
-// bar.setForeground(color);
-// bar.setSelection((int) (100d * progress.completed / progress.total));
-// GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
-// gridData.heightHint = 5;
-// bar.setLayoutData(gridData);
- }
-
- String statusText = getStatusText(currentTipElement);
- if (statusText != null) {
- addIconAndLabel(composite, CommonImages.getImage(CommonImages.WARNING), statusText);
- }
-
- String helpText = getHelpText(currentTipElement);
- if (helpText != null) {
- addIconAndLabel(composite, CommonImages.getImage(CommonImages.QUESTION), helpText);
- }
-
- visible = true;
-
- return composite;
- }
-
- private String getHelpText(IRepositoryElement element) {
- if (element instanceof TaskCategory || element instanceof IRepositoryQuery) {
- if (AbstractTaskListFilter.hasDescendantIncoming((ITaskContainer) element)) {
- TaskListView taskListView = TaskListView.getFromActivePerspective();
- if (taskListView != null) {
-
- if (!taskListView.isFocusedMode()
- && TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.FILTER_COMPLETE_MODE)) {
- Object[] children = ((TaskListContentProvider) taskListView.getViewer().getContentProvider()).getChildren(element);
- boolean hasIncoming = false;
- for (Object child : children) {
- if (child instanceof ITask) {
- if (((ITask) child).getSynchronizationState().isIncoming()) {
- hasIncoming = true;
- break;
- }
- }
- }
- if (!hasIncoming) {
- return Messages.TaskListToolTip_Some_incoming_elements_may_be_filtered;
- }
- }
- }
- }
- // if has incoming but no top level children have incoming, suggest incoming tasks may be filtered
- }
- if (element instanceof UncategorizedTaskContainer) {
- return Messages.TaskListToolTip_Automatic_container_for_all_local_tasks;
- } else if (element instanceof UnmatchedTaskContainer) {
- return Messages.TaskListToolTip_Automatic_container_for_repository_tasks;
- }
- return null;
- }
-
- protected Composite createToolTipContentAreaComposite(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- gridLayout.marginWidth = 5;
- gridLayout.marginHeight = 2;
- composite.setLayout(gridLayout);
- composite.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- return composite;
- }
-
- private String getSynchText(IRepositoryElement element) {
- if (element instanceof IRepositoryQuery) {
- String syncStamp = ((RepositoryQuery) element).getLastSynchronizedTimeStamp();
- if (syncStamp != null) {
- return NLS.bind(Messages.TaskListToolTip_Synchronized, syncStamp);
- }
- }
- return null;
- }
-
- private String removeTrailingNewline(String text) {
- if (text.endsWith("\n")) { //$NON-NLS-1$
- return text.substring(0, text.length() - 1);
- }
- return text;
- }
-
- protected void addIconAndLabel(Composite parent, Image image, String text) {
- Label imageLabel = new Label(parent, SWT.NONE);
- imageLabel.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- imageLabel.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- imageLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
- imageLabel.setImage(image);
-
- Label textLabel = new Label(parent, SWT.WRAP);
- textLabel.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- textLabel.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- textLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER));
- text = removeTrailingNewline(text);
- textLabel.setText(TasksUiInternal.escapeLabelText(text));
- GC gc = new GC(textLabel);
- int width = Math.min(gc.textExtent(text).x, MAX_WIDTH);
- try {
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).hint(width, SWT.DEFAULT).applyTo(textLabel);
- } finally {
- gc.dispose();
- }
- }
-
- private static class ProgressData {
-
- int completed;
-
- int total;
-
- String text;
-
- public ProgressData(int completed, int total, String text) {
- this.completed = completed;
- this.total = total;
- this.text = text;
- }
-
- }
-
- public static interface TaskListToolTipListener {
-
- void toolTipHidden(Event event);
-
- }
-
- public boolean isVisible() {
- return visible;
- }
-
- public boolean isTriggeredByMouse() {
- return triggeredByMouse;
- }
-
- @Override
- public void show(Point location) {
- super.show(location);
- triggeredByMouse = false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
deleted file mode 100644
index d4417bddf..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
+++ /dev/null
@@ -1,1917 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Ken Sueda - improvements
- * Eugene Kuleshov - improvements
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.views;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.layout.TreeColumnLayout;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.provisional.commons.ui.DelayedRefreshJob;
-import org.eclipse.mylyn.internal.provisional.commons.ui.SubstringPatternFilter;
-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.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
-import org.eclipse.mylyn.internal.tasks.ui.CategorizedPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.ScheduledPresentation;
-import org.eclipse.mylyn.internal.tasks.ui.TaskArchiveFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TaskCompletionFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TaskPriorityFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TaskWorkingSetFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CollapseAllAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.EditRepositoryPropertiesAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ExpandAllAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.FilterCompletedTasksAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.GoIntoAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.GoUpAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.GroupSubTasksAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.LinkWithEditorAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskListElementAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTasksUiPreferencesAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.PresentationDropDownSelectionAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.RemoveFromCategoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.RenameAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ShowInSearchViewAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeAutomaticallyAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskListSortAction;
-import org.eclipse.mylyn.internal.tasks.ui.commands.CollapseAllHandler;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskListChangeAdapter;
-import org.eclipse.mylyn.internal.tasks.ui.util.PlatformUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDragSourceListener;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker;
-import org.eclipse.mylyn.internal.tasks.ui.util.TreeWalker.TreeVisitor;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivationListener;
-import org.eclipse.mylyn.tasks.core.ITaskActivityListener;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.core.TaskActivationAdapter;
-import org.eclipse.mylyn.tasks.core.TaskActivityAdapter;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.RTFTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.Region;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-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.IPageListener;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IViewPart;
-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.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.DrillDownAdapter;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @author Mik Kersten
- * @author Ken Sueda
- * @author Eugene Kuleshov
- */
-public class TaskListView extends ViewPart implements IPropertyChangeListener, IShowInTarget {
-
- private final class TaskListRefreshJob extends DelayedRefreshJob {
-
- private TaskListRefreshJob(TreeViewer treeViewer, String name) {
- super(treeViewer, name);
- }
-
- @Override
- protected void doRefresh(Object[] items) {
- TreePath selection = preserveSelection();
-
- if (items == null) {
- viewer.refresh(true);
- } else if (items.length > 0) {
- try {
- if (TaskListView.this.isFocusedMode()) {
- Set<Object> children = new HashSet<Object>(Arrays.asList(items));
- Set<AbstractTaskContainer> parents = new HashSet<AbstractTaskContainer>();
- for (Object item : items) {
- if (item instanceof AbstractTask) {
- parents.addAll(((AbstractTask) item).getParentContainers());
- }
- }
- // 1. refresh parents
- children.removeAll(parents);
- for (AbstractTaskContainer parent : parents) {
- viewer.refresh(parent, false);
- // only refresh label of parent
- viewer.update(parent, null);
- }
- // 2. refresh children
- for (Object item : children) {
- viewer.refresh(item, true);
- }
- // 3. update states of all changed items
- for (Object item : items) {
- updateExpansionState(item);
- }
- } else {
- Set<AbstractTaskContainer> parents = new HashSet<AbstractTaskContainer>();
- for (Object item : items) {
- if (item instanceof AbstractTask) {
- parents.addAll(((AbstractTask) item).getParentContainers());
- }
- viewer.refresh(item, true);
- updateExpansionState(item);
- }
- // refresh labels of parents for task activation or incoming indicators
- for (AbstractTaskContainer parent : parents) {
- // only refresh label
- viewer.update(parent, null);
- }
- }
- } catch (SWTException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to refresh viewer: " //$NON-NLS-1$
- + viewer, e));
- }
- }
-
- updateToolTip(false);
- restoreSelection(selection);
- }
-
- private TreePath preserveSelection() {
- if (viewer instanceof TreeViewer) {
- TreeViewer treeViewer = (TreeViewer) viewer;
- // in case the refresh removes the currently selected item,
- // remember the next item in the tree to restore the selection
- // TODO: consider making this optional
- TreeItem[] selection = treeViewer.getTree().getSelection();
- if (selection.length > 0) {
- TreeWalker treeWalker = new TreeWalker(treeViewer);
- return treeWalker.walk(new TreeVisitor() {
- @Override
- public boolean visit(Object object) {
- return true;
- }
- }, selection[selection.length - 1]);
- }
- }
- return null;
- }
-
- private void restoreSelection(TreePath treePath) {
- if (treePath != null) {
- ISelection newSelection = viewer.getSelection();
- if (newSelection == null || newSelection.isEmpty()) {
- viewer.setSelection(new TreeSelection(treePath), true);
- }
- }
- }
-
- protected void updateExpansionState(Object item) {
- if (TaskListView.this.isFocusedMode() && isAutoExpandMode()) {
- TaskListView.this.getViewer().expandToLevel(item, 3);
- }
- }
- }
-
- // TODO e3.4 replace with SWT.NO_SCROLL constant
- public static final int SWT_NO_SCROLL = 1 << 4;
-
- /**
- * @deprecated Use {@link ITasksUiConstants#ID_VIEW_TASKS} instead
- */
- @Deprecated
- public static final String ID = ITasksUiConstants.ID_VIEW_TASKS;
-
- public static final String LABEL_VIEW = Messages.TaskListView_Task_List;
-
- private static final String MEMENTO_KEY_SORT_DIRECTION = "sortDirection"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_ROOT_SORT_DIRECTION = "rootSortDirection"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_SORTER = "sorter"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_SORTER2 = "sorter2"; //$NON-NLS-1$
-
- private static final String MEMENTO_KEY_SORT_INDEX = "sortIndex"; //$NON-NLS-1$
-
- private static final String MEMENTO_SORT_INDEX = "org.eclipse.mylyn.tasklist.ui.views.tasklist.sortIndex"; //$NON-NLS-1$
-
- private static final String MEMENTO_LINK_WITH_EDITOR = "linkWithEditor"; //$NON-NLS-1$
-
- private static final String MEMENTO_PRESENTATION = "presentation"; //$NON-NLS-1$
-
- private static final String ID_SEPARATOR_NEW = "new"; //$NON-NLS-1$
-
- public static final String ID_SEPARATOR_OPERATIONS = "operations"; //$NON-NLS-1$
-
- public static final String ID_SEPARATOR_CONTEXT = "context"; //$NON-NLS-1$
-
- public static final String ID_SEPARATOR_TASKS = "tasks"; //$NON-NLS-1$
-
- private static final String ID_SEPARATOR_FILTERS = "filters"; //$NON-NLS-1$
-
- private static final String ID_SEPARATOR_REPOSITORY = "repository"; //$NON-NLS-1$
-
- private static final String ID_SEPARATOR_PROPERTIES = "properties"; //$NON-NLS-1$
-
- public static final String ID_SEPARATOR_NAVIGATE = "navigate"; //$NON-NLS-1$
-
- private static final String LABEL_NO_TASKS = "no task active"; //$NON-NLS-1$
-
- private final static int SIZE_MAX_SELECTION_HISTORY = 10;
-
- static final String[] PRIORITY_LEVELS = { PriorityLevel.P1.toString(), PriorityLevel.P2.toString(),
- PriorityLevel.P3.toString(), PriorityLevel.P4.toString(), PriorityLevel.P5.toString() };
-
- public static final String[] PRIORITY_LEVEL_DESCRIPTIONS = { PriorityLevel.P1.getDescription(),
- PriorityLevel.P2.getDescription(), PriorityLevel.P3.getDescription(), PriorityLevel.P4.getDescription(),
- PriorityLevel.P5.getDescription() };
-
- private static List<AbstractTaskListPresentation> presentationsPrimary = new ArrayList<AbstractTaskListPresentation>();
-
- private static List<AbstractTaskListPresentation> presentationsSecondary = new ArrayList<AbstractTaskListPresentation>();
-
- private boolean focusedMode = false;
-
- private boolean linkWithEditor;
-
- private final TaskListCellModifier taskListCellModifier = new TaskListCellModifier(this);
-
- private IThemeManager themeManager;
-
- private TaskListFilteredTree filteredTree;
-
- private DrillDownAdapter drillDownAdapter;
-
- private AbstractTaskContainer drilledIntoCategory = null;
-
- private GoIntoAction goIntoAction;
-
- private GoUpAction goUpAction;
-
- private CopyTaskDetailsAction copyDetailsAction;
-
- private OpenTaskListElementAction openAction;
-
- private OpenWithBrowserAction openWithBrowser;
-
- private RenameAction renameAction;
-
- private CollapseAllAction collapseAll;
-
- private ExpandAllAction expandAll;
-
- private DeleteAction deleteAction;
-
- private RemoveFromCategoryAction removeFromCategoryAction;
-
- private final TaskActivateAction activateAction = new TaskActivateAction();
-
- private final TaskDeactivateAction deactivateAction = new TaskDeactivateAction();
-
- private FilterCompletedTasksAction filterCompleteTask;
-
- private GroupSubTasksAction filterSubTasksAction;
-
- private SynchronizeAutomaticallyAction synchronizeAutomatically;
-
- private OpenTasksUiPreferencesAction openPreferencesAction;
-
- //private FilterArchiveContainerAction filterArchiveCategory;
-
- private PriorityDropDownAction filterOnPriorityAction;
-
- private TaskListSortAction sortDialogAction;
-
- private PresentationDropDownSelectionAction presentationDropDownSelectionAction;
-
- private NewTaskAction newTaskAction;
-
- private LinkWithEditorAction linkWithEditorAction;
-
- private final TaskPriorityFilter filterPriority = new TaskPriorityFilter();
-
- private final TaskCompletionFilter filterComplete = new TaskCompletionFilter();
-
- private final TaskArchiveFilter filterArchive = new TaskArchiveFilter();
-
- private TaskWorkingSetFilter filterWorkingSet;
-
- private final Set<AbstractTaskListFilter> filters = new HashSet<AbstractTaskListFilter>();
-
- protected String[] columnNames = new String[] { Messages.TaskListView_Summary };
-
- protected int[] columnWidths = new int[] { 200 };
-
- private TreeColumn[] columns;
-
- private IMemento taskListMemento;
-
- private AbstractTaskListPresentation currentPresentation;
-
- private TaskTableLabelProvider taskListTableLabelProvider;
-
- private TaskListSorter tableSorter;
-
- private Color categoryGradientStart;
-
- private Color categoryGradientEnd;
-
- private CustomTaskListDecorationDrawer customDrawer;
-
- private final IPageListener PAGE_LISTENER = new IPageListener() {
- public void pageActivated(IWorkbenchPage page) {
- filteredTree.indicateActiveTaskWorkingSet();
- }
-
- public void pageClosed(IWorkbenchPage page) {
- // ignore
-
- }
-
- public void pageOpened(IWorkbenchPage page) {
- // ignore
- }
- };
-
- private final LinkedHashMap<String, IStructuredSelection> lastSelectionByTaskHandle = new LinkedHashMap<String, IStructuredSelection>(
- SIZE_MAX_SELECTION_HISTORY);
-
- /**
- * True if the view should indicate that interaction monitoring is paused
- */
- protected boolean isPaused = false;
-
- boolean synchronizationOverlaid = false;
-
- private final Listener CATEGORY_GRADIENT_DRAWER = new Listener() {
- public void handleEvent(Event event) {
- if (event.item.getData() instanceof ITaskContainer && !(event.item.getData() instanceof ITask)) {
- Scrollable scrollable = (Scrollable) event.widget;
- GC gc = event.gc;
-
- Rectangle area = scrollable.getClientArea();
- Rectangle rect = event.getBounds();
-
- /* Paint the selection beyond the end of last column */
- expandRegion(event, scrollable, gc, area);
-
- /* Draw Gradient Rectangle */
- Color oldForeground = gc.getForeground();
- Color oldBackground = gc.getBackground();
-
- gc.setForeground(categoryGradientEnd);
- gc.drawLine(0, rect.y, area.width, rect.y);
-
- gc.setForeground(categoryGradientStart);
- gc.setBackground(categoryGradientEnd);
-
- // gc.setForeground(categoryGradientStart);
- // gc.setBackground(categoryGradientEnd);
- // gc.setForeground(new Clr(Display.getCurrent(), 255, 0, 0));
-
- gc.fillGradientRectangle(0, rect.y + 1, area.width, rect.height, true);
-
- /* Bottom Line */
- // gc.setForeground();
- gc.setForeground(categoryGradientEnd);
- gc.drawLine(0, rect.y + rect.height - 1, area.width, rect.y + rect.height - 1);
-
- gc.setForeground(oldForeground);
- gc.setBackground(oldBackground);
- /* Mark as Background being handled */
- event.detail &= ~SWT.BACKGROUND;
- }
- }
-
- private void expandRegion(Event event, Scrollable scrollable, GC gc, Rectangle area) {
- int columnCount;
- if (scrollable instanceof Table) {
- columnCount = ((Table) scrollable).getColumnCount();
- } else {
- columnCount = ((Tree) scrollable).getColumnCount();
- }
-
- if (event.index == columnCount - 1 || columnCount == 0) {
- int width = area.x + area.width - event.x;
- if (width > 0) {
- Region region = new Region();
- gc.getClipping(region);
- region.add(event.x, event.y, width, event.height);
- gc.setClipping(region);
- region.dispose();
- }
- }
- }
- };
-
- private boolean gradientListenerAdded = false;
-
- private final ITaskActivityListener TASK_ACTIVITY_LISTENER = new TaskActivityAdapter() {
- @Override
- public void activityReset() {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- refreshJob.refresh();
- }
- });
- }
- };
-
- private final ITaskActivationListener TASK_ACTIVATION_LISTENER = new TaskActivationAdapter() {
-
- @Override
- public void taskActivated(final ITask task) {
- if (task != null) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- updateDescription();
- refresh(task);
- selectedAndFocusTask(task);
- filteredTree.indicateActiveTask(task);
- }
- });
- }
- }
-
- @Override
- public void taskDeactivated(final ITask task) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- refresh(task);
- updateDescription();
- filteredTree.indicateNoActiveTask();
- }
- });
- }
-
- private void refresh(final ITask task) {
- if (TaskListView.this.isScheduledPresentation()) {
- refreshJob.refresh();
- } else {
- refreshJob.refreshElement(task);
- }
- }
-
- };
-
- private final ITaskListChangeListener TASKLIST_CHANGE_LISTENER = new TaskListChangeAdapter() {
-
- @Override
- public void containersChanged(final Set<TaskContainerDelta> deltas) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- for (TaskContainerDelta taskContainerDelta : deltas) {
- if (ScheduledPresentation.ID.equals(getCurrentPresentation().getId())) {
- // TODO: implement refresh policy for scheduled presentation
- refreshJob.refresh();
- } else {
- switch (taskContainerDelta.getKind()) {
- case ROOT:
- refreshJob.refresh();
- break;
- case ADDED:
- case REMOVED:
- if (taskContainerDelta.getElement() != null) {
- refreshJob.refreshElement(taskContainerDelta.getElement());
- }
- if (taskContainerDelta.getParent() != null) {
- refreshJob.refreshElement(taskContainerDelta.getParent());
- } else {
- // element was added/removed from the root
- refreshJob.refresh();
- }
- break;
- case CONTENT:
- refreshJob.refreshElement(taskContainerDelta.getElement());
- }
-
- }
- }
- }
- });
- }
- };
-
- private final IPropertyChangeListener THEME_CHANGE_LISTENER = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(IThemeManager.CHANGE_CURRENT_THEME)
- || CommonThemes.isCommonTheme(event.getProperty())) {
- configureGradientColors();
- taskListTableLabelProvider.setCategoryBackgroundColor(themeManager.getCurrentTheme()
- .getColorRegistry()
- .get(CommonThemes.COLOR_CATEGORY));
- getViewer().refresh();
- }
- }
- };
-
- private TaskListToolTip taskListToolTip;
-
- private void configureGradientColors() {
- categoryGradientStart = themeManager.getCurrentTheme().getColorRegistry().get(
- CommonThemes.COLOR_CATEGORY_GRADIENT_START);
- categoryGradientEnd = themeManager.getCurrentTheme().getColorRegistry().get(
- CommonThemes.COLOR_CATEGORY_GRADIENT_END);
-
- boolean customized = true;
- if (categoryGradientStart != null && categoryGradientStart.getRed() == 240
- && categoryGradientStart.getGreen() == 240 && categoryGradientStart.getBlue() == 240
- && categoryGradientEnd != null && categoryGradientEnd.getRed() == 220
- && categoryGradientEnd.getGreen() == 220 && categoryGradientEnd.getBlue() == 220) {
- customized = false;
- }
-
- if (gradientListenerAdded == false && categoryGradientStart != null
- && !categoryGradientStart.equals(categoryGradientEnd)) {
- getViewer().getTree().addListener(SWT.EraseItem, CATEGORY_GRADIENT_DRAWER);
- gradientListenerAdded = true;
- if (!customized) {
- // Set parent-based colors
- Color parentBackground = getViewer().getTree().getParent().getBackground();
- double GRADIENT_TOP = 1.05;// 1.02;
- double GRADIENT_BOTTOM = .995;// 1.035;
-
- int red = Math.min(255, (int) (parentBackground.getRed() * GRADIENT_TOP));
- int green = Math.min(255, (int) (parentBackground.getGreen() * GRADIENT_TOP));
- int blue = Math.min(255, (int) (parentBackground.getBlue() * GRADIENT_TOP));
-
- try {
- categoryGradientStart = new Color(Display.getDefault(), red, green, blue);
- } catch (Exception e) {
- categoryGradientStart = getViewer().getTree().getParent().getBackground();
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not set color: " + red //$NON-NLS-1$
- + ", " + green + ", " + blue, e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- red = Math.max(0, (int) (parentBackground.getRed() / GRADIENT_BOTTOM));
- green = Math.max(0, (int) (parentBackground.getGreen() / GRADIENT_BOTTOM));
- blue = Math.max(0, (int) (parentBackground.getBlue() / GRADIENT_BOTTOM));
- if (red > 255) {
- red = 255;
- }
- try {
- categoryGradientEnd = new Color(Display.getDefault(), red, green, blue);
- } catch (Exception e) {
- categoryGradientStart = getViewer().getTree().getParent().getBackground();
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not set color: " + red //$NON-NLS-1$
- + ", " + green + ", " + blue, e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- } else if (categoryGradientStart != null && categoryGradientStart.equals(categoryGradientEnd)) {
- getViewer().getTree().removeListener(SWT.EraseItem, CATEGORY_GRADIENT_DRAWER);
- gradientListenerAdded = false;
- }
- }
-
- public static TaskListView getFromActivePerspective() {
- if (PlatformUI.isWorkbenchRunning()) {
- IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (activeWorkbenchWindow != null) {
- IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
- if (activePage != null) {
- IViewPart view = activePage.findView(ITasksUiConstants.ID_VIEW_TASKS);
- if (view instanceof TaskListView) {
- return (TaskListView) view;
- }
- }
- }
- }
- return null;
- }
-
- public TaskListView() {
- PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(this);
- TasksUiPlugin.getTaskActivityManager().addActivityListener(TASK_ACTIVITY_LISTENER);
- TasksUiPlugin.getTaskActivityManager().addActivationListener(TASK_ACTIVATION_LISTENER);
- TasksUiInternal.getTaskList().addChangeListener(TASKLIST_CHANGE_LISTENER);
- }
-
- @Override
- public void dispose() {
- super.dispose();
- TasksUiInternal.getTaskList().removeChangeListener(TASKLIST_CHANGE_LISTENER);
- TasksUiPlugin.getTaskActivityManager().removeActivityListener(TASK_ACTIVITY_LISTENER);
- TasksUiPlugin.getTaskActivityManager().removeActivationListener(TASK_ACTIVATION_LISTENER);
-
- PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(this);
- if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().removePageListener(PAGE_LISTENER);
- }
-
- final IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager();
- if (themeManager != null) {
- themeManager.removePropertyChangeListener(THEME_CHANGE_LISTENER);
- }
-
- customDrawer.dispose();
- categoryGradientStart.dispose();
- categoryGradientEnd.dispose();
- }
-
- private void updateDescription() {
- ITask task = TasksUi.getTaskActivityManager().getActiveTask();
- if (getSite() == null || getSite().getPage() == null) {
- return;
- }
-
- IViewReference reference = getSite().getPage().findViewReference(ITasksUiConstants.ID_VIEW_TASKS);
- boolean shouldSetDescription = false;
- if (reference != null && reference.isFastView() && !getSite().getPage().isPartVisible(this)) {
- shouldSetDescription = true;
- }
-
- if (task != null) {
- setTitleToolTip(LABEL_VIEW + " (" + task.getSummary() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
- if (shouldSetDescription) {
- setContentDescription(task.getSummary());
- } else {
- setContentDescription(""); //$NON-NLS-1$
- }
- } else {
- setTitleToolTip(LABEL_VIEW);
- if (shouldSetDescription) {
- setContentDescription(LABEL_NO_TASKS);
- } else {
- setContentDescription(""); //$NON-NLS-1$
- }
- }
- }
-
- @Override
- public void init(IViewSite site, IMemento memento) throws PartInitException {
- init(site);
- this.taskListMemento = memento;
- }
-
- @Override
- public void saveState(IMemento memento) {
- IMemento sorter = memento.createChild(MEMENTO_SORT_INDEX);
- IMemento m = sorter.createChild(MEMENTO_KEY_SORTER);
- switch (tableSorter.getComparator().getSortByIndex()) {
- case SUMMARY:
- m.putInteger(MEMENTO_KEY_SORT_INDEX, 1);
- break;
- case DATE_CREATED:
- m.putInteger(MEMENTO_KEY_SORT_INDEX, 2);
- break;
- case TASK_ID:
- m.putInteger(MEMENTO_KEY_SORT_INDEX, 3);
- break;
- default:
- m.putInteger(MEMENTO_KEY_SORT_INDEX, 0);
- }
-
- m.putInteger(MEMENTO_KEY_SORT_DIRECTION, tableSorter.getComparator().getSortDirection());
- IMemento m2 = sorter.createChild(MEMENTO_KEY_SORTER2);
- switch (tableSorter.getComparator().getSortByIndex2()) {
- case SUMMARY:
- m2.putInteger(MEMENTO_KEY_SORT_INDEX, 1);
- break;
- case DATE_CREATED:
- m2.putInteger(MEMENTO_KEY_SORT_INDEX, 2);
- break;
- case TASK_ID:
- m2.putInteger(MEMENTO_KEY_SORT_INDEX, 3);
- break;
- default:
- m2.putInteger(MEMENTO_KEY_SORT_INDEX, 0);
- }
-
- m2.putInteger(MEMENTO_KEY_SORT_DIRECTION, tableSorter.getComparator().getSortDirection2());
- memento.putString(MEMENTO_LINK_WITH_EDITOR, Boolean.toString(linkWithEditor));
- memento.putString(MEMENTO_PRESENTATION, currentPresentation.getId());
- memento.putInteger(MEMENTO_KEY_ROOT_SORT_DIRECTION, tableSorter.getSortDirectionRootElement());
- }
-
- private void restoreState() {
- if (taskListMemento != null) {
- IMemento sorterMemento = taskListMemento.getChild(MEMENTO_SORT_INDEX);
- int restoredSortIndex = 0;
- if (sorterMemento != null) {
- int sortDirection = -1;
- IMemento m = sorterMemento.getChild(MEMENTO_KEY_SORTER);
- if (m != null) {
- Integer sortIndexInt = m.getInteger(MEMENTO_KEY_SORT_INDEX);
- if (sortIndexInt != null) {
- restoredSortIndex = sortIndexInt.intValue();
- }
- Integer sortDirInt = m.getInteger(MEMENTO_KEY_SORT_DIRECTION);
- if (sortDirInt != null) {
- sortDirection = sortDirInt.intValue();
- tableSorter.getComparator().setSortDirection(sortDirection);
- switch (restoredSortIndex) {
- case 1:
- tableSorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.SUMMARY);
- break;
- case 2:
- tableSorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.DATE_CREATED);
- break;
- case 3:
- tableSorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.TASK_ID);
- break;
- default:
- tableSorter.getComparator().setSortByIndex(TaskComparator.SortByIndex.PRIORITY);
- }
- }
- }
-
- IMemento m2 = sorterMemento.getChild(MEMENTO_KEY_SORTER2);
- if (m2 != null) {
- Integer sortIndexInt = m2.getInteger(MEMENTO_KEY_SORT_INDEX);
- if (sortIndexInt != null) {
- restoredSortIndex = sortIndexInt.intValue();
- }
- Integer sortDirInt = m2.getInteger(MEMENTO_KEY_SORT_DIRECTION);
- if (sortDirInt != null) {
- sortDirection = sortDirInt.intValue();
- tableSorter.getComparator().setSortDirection2(sortDirection);
- switch (restoredSortIndex) {
- case 1:
- tableSorter.getComparator().setSortByIndex2(TaskComparator.SortByIndex.SUMMARY);
- break;
- case 2:
- tableSorter.getComparator().setSortByIndex2(TaskComparator.SortByIndex.DATE_CREATED);
- break;
- case 3:
- tableSorter.getComparator().setSortByIndex2(TaskComparator.SortByIndex.TASK_ID);
- break;
- default:
- tableSorter.getComparator().setSortByIndex2(TaskComparator.SortByIndex.PRIORITY);
- }
- }
- }
- }
- applyPresentation(taskListMemento.getString(MEMENTO_PRESENTATION));
- Integer sortOrder = taskListMemento.getInteger(MEMENTO_KEY_ROOT_SORT_DIRECTION);
- if (sortOrder != null) {
- tableSorter.setSortDirectionRootElement(sortOrder);
- } else {
- tableSorter.setSortDirectionRootElement(TaskListSorter.DEFAULT_SORT_DIRECTION);
- }
- }
-
- filterWorkingSet = new TaskWorkingSetFilter();
- filterWorkingSet.updateWorkingSet(getSite().getPage().getAggregateWorkingSet());
- filteredTree.setWorkingSetFilter(filterWorkingSet);
- addFilter(filterWorkingSet);
- addFilter(filterPriority);
- if (TasksUiPlugin.getDefault().getPreferenceStore().contains(ITasksUiPreferenceConstants.FILTER_COMPLETE_MODE)) {
- addFilter(filterComplete);
- }
-
- //if (TasksUiPlugin.getDefault().getPreferenceStore().contains(TasksUiPreferenceConstants.FILTER_ARCHIVE_MODE)) {
- addFilter(filterArchive);
- //}
-
- // Restore "link with editor" value; by default true
- boolean linkValue = true;
- if (taskListMemento != null && taskListMemento.getString(MEMENTO_LINK_WITH_EDITOR) != null) {
- linkValue = Boolean.parseBoolean(taskListMemento.getString(MEMENTO_LINK_WITH_EDITOR));
- }
- setLinkWithEditor(linkValue);
-
- getViewer().refresh();
- }
-
- @Override
- 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_NO_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION, new SubstringPatternFilter(),
- getViewSite().getWorkbenchWindow());
- // Set to empty string to disable native tooltips (windows only?)
- // bug#160897
- // http://dev.eclipse.org/newslists/news.eclipse.platform.swt/msg29614.html
- getViewer().getTree().setToolTipText(""); //$NON-NLS-1$
-
- filteredTree.getFilterControl().addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- updateFilterEnablement();
- }
- });
-
- getViewer().getTree().setHeaderVisible(false);
- getViewer().setUseHashlookup(true);
- refreshJob = new TaskListRefreshJob(getViewer(), "Task List Refresh"); //$NON-NLS-1$
-
- configureColumns(columnNames, columnWidths);
-
- final IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager();
- Color categoryBackground = themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_CATEGORY);
- taskListTableLabelProvider = new TaskTableLabelProvider(new TaskElementLabelProvider(true),
- PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), categoryBackground);
- getViewer().setLabelProvider(taskListTableLabelProvider);
-
- CellEditor[] editors = new CellEditor[columnNames.length];
- TextCellEditor textEditor = new TextCellEditor(getViewer().getTree());
- ((Text) textEditor.getControl()).setOrientation(SWT.LEFT_TO_RIGHT);
- editors[0] = textEditor;
- // editors[1] = new ComboBoxCellEditor(getViewer().getTree(),
- // editors[2] = new CheckboxCellEditor();
-
- getViewer().setCellEditors(editors);
- getViewer().setCellModifier(taskListCellModifier);
-
- tableSorter = new TaskListSorter();
- getViewer().setSorter(tableSorter);
-
- applyPresentation(CategorizedPresentation.ID);
-
- drillDownAdapter = new DrillDownAdapter(getViewer());
- getViewer().setInput(getViewSite());
-
- final int activationImageOffset = PlatformUtil.getTreeImageOffset();
- customDrawer = new CustomTaskListDecorationDrawer(this, activationImageOffset);
- getViewer().getTree().addListener(SWT.EraseItem, customDrawer);
- getViewer().getTree().addListener(SWT.PaintItem, customDrawer);
-
- getViewer().getTree().addMouseListener(new MouseListener() {
-
- public void mouseDown(MouseEvent e) {
- // NOTE: need e.x offset for Linux/GTK, which does not see
- // left-aligned items in tree
- Object selectedNode = ((Tree) e.widget).getItem(new Point(e.x + 70, e.y));
- if (selectedNode instanceof TreeItem) {
- Object selectedObject = ((TreeItem) selectedNode).getData();
- if (selectedObject instanceof ITask) {
- if (e.x > activationImageOffset && e.x < activationImageOffset + 13) {
- taskListCellModifier.toggleTaskActivation((TreeItem) selectedNode);
- }
- }
- }
- }
-
- public void mouseDoubleClick(MouseEvent e) {
- // ignore
- }
-
- public void mouseUp(MouseEvent e) {
- // ignore
- }
-
- });
-
- // TODO make these proper commands and move code into TaskListViewCommands
- getViewer().getTree().addKeyListener(new KeyListener() {
-
- public void keyPressed(KeyEvent e) {
- if (e.keyCode == SWT.F2 && e.stateMask == 0) {
- if (renameAction.isEnabled()) {
- renameAction.run();
- }
- } else if ((e.keyCode & SWT.KEYCODE_BIT) != 0) {
- // Do nothing here since it is key code
- } else if (e.keyCode == SWT.ESC) {
- taskListToolTip.hide();
- } else if (e.keyCode == 'f' && e.stateMask == SWT.MOD1) {
- filteredTree.getFilterControl().setFocus();
- } else if (e.stateMask == 0) {
- if (Character.isLetter((char) e.keyCode) || Character.isDigit((char) e.keyCode)) {
- String string = new Character((char) e.keyCode).toString();
- filteredTree.getFilterControl().setText(string);
- filteredTree.getFilterControl().setSelection(1, 1);
- filteredTree.getFilterControl().setFocus();
- }
- }
- }
-
- public void keyReleased(KeyEvent e) {
- }
-
- });
-
- getViewer().addTreeListener(new ITreeViewerListener() {
-
- public void treeCollapsed(final TreeExpansionEvent event) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getViewer().refresh(event.getElement());
- }
- });
- }
-
- public void treeExpanded(final TreeExpansionEvent event) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- getViewer().refresh(event.getElement());
- }
- });
- }
- });
-
- // HACK: shouldn't need to update explicitly
- getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- Object selectedObject = ((IStructuredSelection) getViewer().getSelection()).getFirstElement();
- if (selectedObject instanceof ITaskContainer) {
- updateActionEnablement(renameAction, (ITaskContainer) selectedObject);
- updateActionEnablement(deleteAction, (ITaskContainer) selectedObject);
- }
- }
- });
-
- taskListToolTip = new TaskListToolTip(getViewer().getControl());
-
- // update tooltip contents
- getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateToolTip(true);
- }
- });
-
- getViewer().getTree().addFocusListener(new FocusAdapter() {
- @Override
- public void focusLost(FocusEvent e) {
- taskListToolTip.hide();
- }
- });
-
- makeActions();
- hookGlobalActions();
- hookContextMenu();
- hookOpenAction();
- contributeToActionBars();
- initHandlers();
-
- configureGradientColors();
-
- initDragAndDrop(parent);
- expandToActiveTasks();
- restoreState();
-
- updateDescription();
-
- IContextService contextSupport = (IContextService) getSite().getService(IContextService.class);
- if (contextSupport != null) {
- contextSupport.activateContext(ITasksUiConstants.ID_VIEW_TASKS);
- }
-
- getSite().setSelectionProvider(getViewer());
- getSite().getPage().addPartListener(editorListener);
-
- // Need to do this because the page, which holds the active working set is not around on creation, see bug 203179
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().addPageListener(PAGE_LISTENER);
- }
-
- private void initHandlers() {
- IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
- handlerService.activateHandler(CollapseAllHandler.ID_COMMAND, new CollapseAllHandler(getViewer()));
- }
-
- private void hookGlobalActions() {
- IActionBars bars = getViewSite().getActionBars();
- bars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
- bars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyDetailsAction);
- }
-
- private void applyPresentation(String id) {
- if (id != null) {
- for (AbstractTaskListPresentation presentation : presentationsPrimary) {
- if (id.equals(presentation.getId())) {
- applyPresentation(presentation);
- return;
- }
- }
- for (AbstractTaskListPresentation presentation : presentationsSecondary) {
- if (id.equals(presentation.getId())) {
- applyPresentation(presentation);
- return;
- }
- }
- }
- }
-
- public void applyPresentation(AbstractTaskListPresentation presentation) {
- try {
- getViewer().getControl().setRedraw(false);
- if (!filteredTree.getFilterControl().getText().equals("")) { //$NON-NLS-1$
- filteredTree.getFilterControl().setText(""); //$NON-NLS-1$
- }
- AbstractTaskListContentProvider contentProvider = presentation.getContentProvider(this);
- getViewer().setContentProvider(contentProvider);
- refresh(true);
-
- currentPresentation = presentation;
- } finally {
- getViewer().getControl().setRedraw(true);
- }
- }
-
- public AbstractTaskListPresentation getCurrentPresentation() {
- return currentPresentation;
- }
-
- private void configureColumns(final String[] columnNames, final int[] columnWidths) {
- TreeColumnLayout layout = (TreeColumnLayout) getViewer().getTree().getParent().getLayout();
- getViewer().setColumnProperties(columnNames);
- columns = new TreeColumn[columnNames.length];
- for (int i = 0; i < columnNames.length; i++) {
- columns[i] = new TreeColumn(getViewer().getTree(), 0);
- columns[i].setText(columnNames[i]);
-
- if (i == 0) {
- layout.setColumnData(columns[i], new ColumnWeightData(100));
- } else {
- layout.setColumnData(columns[i], new ColumnPixelData(columnWidths[i]));
- }
-
- columns[i].addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- tableSorter.getComparator().setSortDirection(tableSorter.getComparator().getSortDirection() * -1);
- getViewer().refresh(false);
- }
- });
- columns[i].addControlListener(new ControlListener() {
- public void controlResized(ControlEvent e) {
- for (int j = 0; j < columnWidths.length; j++) {
- if (columns[j].equals(e.getSource())) {
- columnWidths[j] = columns[j].getWidth();
- }
- }
- }
-
- public void controlMoved(ControlEvent e) {
- // don't care if the control is moved
- }
- });
- }
- }
-
- /**
- * Tracks editor activation and jump to corresponding task, if applicable
- */
- private final IPartListener editorListener = new IPartListener() {
-
- private void jumpToEditor(IWorkbenchPart part) {
- if (!linkWithEditor || !(part instanceof IEditorPart)) {
- return;
- }
- jumpToEditorTask((IEditorPart) part);
- }
-
- public void partActivated(IWorkbenchPart part) {
- if (part == TaskListView.this) {
- updateDescription();
- } else {
- jumpToEditor(part);
- }
- }
-
- public void partBroughtToTop(IWorkbenchPart part) {
- }
-
- public void partClosed(IWorkbenchPart part) {
- }
-
- public void partDeactivated(IWorkbenchPart part) {
- if (part == TaskListView.this) {
- IViewReference reference = getSite().getPage().findViewReference(ITasksUiConstants.ID_VIEW_TASKS);
- if (reference != null && reference.isFastView()) {
- updateDescription();
- }
- taskListToolTip.hide();
- }
- }
-
- public void partOpened(IWorkbenchPart part) {
- }
- };
-
- private ShowInSearchViewAction showInSearchViewAction;
-
- private void initDragAndDrop(Composite parent) {
- Transfer[] dragTypes = new Transfer[] { LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
- Transfer[] dropTypes = new Transfer[] { LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance(),
- TextTransfer.getInstance(), RTFTransfer.getInstance(), PlatformUtil.getUrlTransfer() };
-
- getViewer().addDragSupport(DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK, dragTypes,
- new TaskDragSourceListener(getViewer()));
- getViewer().addDropSupport(DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK | DND.DROP_DEFAULT, dropTypes,
- new TaskListDropAdapter(getViewer()));
- }
-
- void expandToActiveTasks() {
- final IWorkbench workbench = PlatformUI.getWorkbench();
- workbench.getDisplay().asyncExec(new Runnable() {
- public void run() {
- ITask task = TasksUi.getTaskActivityManager().getActiveTask();
- if (task != null) {
- getViewer().expandToLevel(task, 0);
- }
- }
- });
- }
-
- private void hookContextMenu() {
- MenuManager menuManager = new MenuManager("#PopupMenu"); //$NON-NLS-1$
- menuManager.setRemoveAllWhenShown(true);
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- TaskListView.this.fillContextMenu(manager);
- }
- });
- Menu menu = menuManager.createContextMenu(getViewer().getControl());
- getViewer().getControl().setMenu(menu);
- getSite().registerContextMenu(menuManager, getViewer());
- }
-
- private void contributeToActionBars() {
- IActionBars bars = getViewSite().getActionBars();
- fillLocalPullDown(bars.getMenuManager());
- fillLocalToolBar(bars.getToolBarManager());
- }
-
- private void fillLocalPullDown(IMenuManager manager) {
- updateDrillDownActions();
- manager.add(goUpAction);
- manager.add(collapseAll);
- manager.add(expandAll);
- manager.add(new Separator(ID_SEPARATOR_FILTERS));
- manager.add(sortDialogAction);
- manager.add(filterOnPriorityAction);
- manager.add(filterCompleteTask);
- //manager.add(filterArchiveCategory);
- manager.add(filterSubTasksAction);
-
- manager.add(new Separator(ID_SEPARATOR_TASKS));
- manager.add(synchronizeAutomatically);
-
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
- manager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- filterOnPriorityAction.updateCheckedState();
- }
- });
-
- manager.add(linkWithEditorAction);
- manager.add(new Separator());
- manager.add(openPreferencesAction);
- }
-
- private void fillLocalToolBar(IToolBarManager manager) {
- manager.add(newTaskAction);
- manager.add(presentationDropDownSelectionAction);
- manager.add(new Separator());
- manager.add(collapseAll);
- manager.add(new GroupMarker(ID_SEPARATOR_CONTEXT));
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- /*
- * TODO: clean up, consider relying on extension points for groups
- */
- private void fillContextMenu(final IMenuManager manager) {
- updateDrillDownActions();
- final ITaskContainer element;
-
- final Object firstSelectedObject = ((IStructuredSelection) getViewer().getSelection()).getFirstElement();
- if (firstSelectedObject instanceof ITaskContainer) {
- element = (ITaskContainer) firstSelectedObject;
- } else {
- element = null;
- }
- final List<IRepositoryElement> selectedElements = getSelectedTaskContainers();
- AbstractTask task = null;
- if (element instanceof ITask) {
- task = (AbstractTask) element;
- }
-
- manager.add(new Separator(ID_SEPARATOR_NEW));
- manager.add(new Separator());
-
- if (element instanceof ITask) {
- addAction(openAction, manager, element);
- }
- addAction(openWithBrowser, manager, element);
- if (showInSearchViewAction.isEnabled()) {
- manager.add(showInSearchViewAction);
- }
- if (task != null) {
- if (task.isActive()) {
- manager.add(deactivateAction);
- } else {
- manager.add(activateAction);
- }
- }
-
- manager.add(new Separator());
-
- Map<String, List<IDynamicSubMenuContributor>> dynamicMenuMap = TasksUiPlugin.getDefault().getDynamicMenuMap();
- for (String menuPath : dynamicMenuMap.keySet()) {
- if (!ID_SEPARATOR_CONTEXT.equals(menuPath)) {
- for (final IDynamicSubMenuContributor contributor : dynamicMenuMap.get(menuPath)) {
- SafeRunnable.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Menu contributor failed")); //$NON-NLS-1$
- }
-
- public void run() throws Exception {
- MenuManager subMenuManager = contributor.getSubMenuManager(selectedElements);
- if (subMenuManager != null) {
- addMenuManager(subMenuManager, manager, element);
- }
- }
-
- });
- }
- }
- }
- manager.add(new Separator(ID_SEPARATOR_NAVIGATE));
-// manager.add(new Separator(ID_SEPARATOR_OPERATIONS));
- manager.add(new Separator());
-
- addAction(copyDetailsAction, manager, element);
-
- boolean enableRemove = true;
- for (IRepositoryElement repositoryElement : selectedElements) {
- if (repositoryElement instanceof ITask) {
- AbstractTaskCategory tempCategory = TaskCategory.getParentTaskCategory((AbstractTask) repositoryElement);
- if (tempCategory == null) {
- enableRemove = false;
- break;
- }
- }
- }
- if (enableRemove) {
- addAction(removeFromCategoryAction, manager, element);
- }
-
- // This should also test for null, or else nothing to delete!
- addAction(deleteAction, manager, element);
- if (!(element instanceof ITask)) {
- addAction(renameAction, manager, element);
- }
-
- if (element != null && !(element instanceof ITask)) {
- manager.add(goIntoAction);
- }
- if (drilledIntoCategory != null) {
- manager.add(goUpAction);
- }
- manager.add(new Separator(ID_SEPARATOR_CONTEXT));
- manager.add(new Separator(ID_SEPARATOR_OPERATIONS));
-
- if (element instanceof ITask) {
- for (String menuPath : dynamicMenuMap.keySet()) {
- if (ID_SEPARATOR_CONTEXT.equals(menuPath)) {
- for (IDynamicSubMenuContributor contributor : dynamicMenuMap.get(menuPath)) {
- MenuManager subMenuManager = contributor.getSubMenuManager(selectedElements);
- if (subMenuManager != null) {
- addMenuManager(subMenuManager, manager, element);
- }
- }
- }
- }
- }
- if (element instanceof IRepositoryQuery) {
- EditRepositoryPropertiesAction repositoryPropertiesAction = new EditRepositoryPropertiesAction();
- repositoryPropertiesAction.selectionChanged(new StructuredSelection(element));
- if (repositoryPropertiesAction.isEnabled()) {
- MenuManager subMenu = new MenuManager(Messages.TaskListView_Repository);
- manager.add(subMenu);
-
- UpdateRepositoryConfigurationAction resetRepositoryConfigurationAction = new UpdateRepositoryConfigurationAction();
- resetRepositoryConfigurationAction.selectionChanged(new StructuredSelection(element));
- subMenu.add(resetRepositoryConfigurationAction);
- subMenu.add(new Separator());
- subMenu.add(repositoryPropertiesAction);
- }
- }
- manager.add(new Separator(ID_SEPARATOR_REPOSITORY));
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
- manager.add(new Separator());
- manager.add(new Separator(ID_SEPARATOR_PROPERTIES));
- }
-
- public List<IRepositoryElement> getSelectedTaskContainers() {
- List<IRepositoryElement> selectedElements = new ArrayList<IRepositoryElement>();
- for (Iterator<?> i = ((IStructuredSelection) getViewer().getSelection()).iterator(); i.hasNext();) {
- Object object = i.next();
- if (object instanceof ITaskContainer) {
- selectedElements.add((IRepositoryElement) object);
- }
- }
- return selectedElements;
- }
-
- private void addMenuManager(IMenuManager menuToAdd, IMenuManager manager, ITaskContainer element) {
- if ((element instanceof ITask) || element instanceof IRepositoryQuery) {
- manager.add(menuToAdd);
- }
- }
-
- private void addAction(Action action, IMenuManager manager, ITaskContainer element) {
- manager.add(action);
- if (element != null) {
- updateActionEnablement(action, element);
- }
- }
-
- // TODO move the enablement to the action classes
- private void updateActionEnablement(Action action, ITaskContainer element) {
- if (element instanceof ITask) {
- if (action instanceof OpenWithBrowserAction) {
- if (TasksUiInternal.isValidUrl(((ITask) element).getUrl())) {
- action.setEnabled(true);
- } else {
- action.setEnabled(false);
- }
- } else if (action instanceof DeleteAction) {
- action.setEnabled(true);
- } else if (action instanceof OpenTaskListElementAction) {
- action.setEnabled(true);
- } else if (action instanceof CopyTaskDetailsAction) {
- action.setEnabled(true);
- } else if (action instanceof RenameAction) {
- action.setEnabled(true);
- }
- } else if (element != null) {
- if (action instanceof DeleteAction) {
- if (element instanceof UncategorizedTaskContainer) {
- action.setEnabled(false);
- } else {
- action.setEnabled(true);
- }
- } else if (action instanceof GoIntoAction) {
- TaskCategory cat = (TaskCategory) element;
- if (cat.getChildren().size() > 0) {
- action.setEnabled(true);
- } else {
- action.setEnabled(false);
- }
- } else if (action instanceof OpenTaskListElementAction) {
- action.setEnabled(true);
- } else if (action instanceof CopyTaskDetailsAction) {
- action.setEnabled(true);
- } else if (action instanceof RenameAction) {
- if (element instanceof AbstractTaskCategory) {
- AbstractTaskCategory container = (AbstractTaskCategory) element;
- action.setEnabled(container.isUserManaged());
- } else if (element instanceof IRepositoryQuery) {
- action.setEnabled(true);
- }
- }
- } else {
- action.setEnabled(true);
- }
- }
-
- private void makeActions() {
- copyDetailsAction = new CopyTaskDetailsAction();
- copyDetailsAction.setActionDefinitionId(IWorkbenchActionDefinitionIds.COPY);
-
- goIntoAction = new GoIntoAction();
- goUpAction = new GoUpAction(drillDownAdapter);
-
- //newLocalTaskAction = new NewLocalTaskAction(this);
- removeFromCategoryAction = new RemoveFromCategoryAction(this);
- renameAction = new RenameAction(this);
- filteredTree.getViewer().addSelectionChangedListener(renameAction);
-
- deleteAction = new DeleteAction();
- collapseAll = new CollapseAllAction(this);
- expandAll = new ExpandAllAction(this);
- openAction = new OpenTaskListElementAction(this.getViewer());
- openWithBrowser = new OpenWithBrowserAction();
- showInSearchViewAction = new ShowInSearchViewAction();
- filterCompleteTask = new FilterCompletedTasksAction(this);
- filterSubTasksAction = new GroupSubTasksAction(this);
- synchronizeAutomatically = new SynchronizeAutomaticallyAction();
- openPreferencesAction = new OpenTasksUiPreferencesAction();
- //filterArchiveCategory = new FilterArchiveContainerAction(this);
- sortDialogAction = new TaskListSortAction(getSite(), this);
- filterOnPriorityAction = new PriorityDropDownAction(this);
- linkWithEditorAction = new LinkWithEditorAction(this);
- presentationDropDownSelectionAction = new PresentationDropDownSelectionAction(this);
- newTaskAction = new NewTaskAction();
- filteredTree.getViewer().addSelectionChangedListener(newTaskAction);
- filteredTree.getViewer().addSelectionChangedListener(openWithBrowser);
- filteredTree.getViewer().addSelectionChangedListener(showInSearchViewAction);
- filteredTree.getViewer().addSelectionChangedListener(copyDetailsAction);
- }
-
- private void hookOpenAction() {
- getViewer().addOpenListener(new IOpenListener() {
- public void open(OpenEvent event) {
- openAction.run();
- }
- });
-
- getViewer().addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- if (TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.ACTIVATE_WHEN_OPENED)) {
- AbstractTask selectedTask = TaskListView.getFromActivePerspective().getSelectedTask();
- if (selectedTask != null) {
- activateAction.run(selectedTask);
- }
- }
- }
- });
- }
-
- /**
- * Passing the focus request to the viewer's control.
- */
- @Override
- public void setFocus() {
- filteredTree.getViewer().getControl().setFocus();
- }
-
- public void refresh(boolean expandIfFocused) {
- if (expandIfFocused && isFocusedMode() && isAutoExpandMode()) {
- try {
- getViewer().getControl().setRedraw(false);
- refreshJob.refreshNow();
- getViewer().expandAll();
- } finally {
- getViewer().getControl().setRedraw(true);
- }
- } else {
- refreshJob.refreshNow();
- }
- }
-
- public void refresh() {
- refreshJob.refreshNow();
- }
-
- public TaskListToolTip getToolTip() {
- return taskListToolTip;
- }
-
- public TreeViewer getViewer() {
- return filteredTree.getViewer();
- }
-
- public TaskCompletionFilter getCompleteFilter() {
- return filterComplete;
- }
-
- public TaskPriorityFilter getPriorityFilter() {
- return filterPriority;
- }
-
- public void addFilter(AbstractTaskListFilter filter) {
- if (!filters.contains(filter)) {
- filters.add(filter);
- }
- }
-
- public void clearFilters() {
- filters.clear();
- filters.add(filterArchive);
- filters.add(filterWorkingSet);
- }
-
- public void removeFilter(AbstractTaskListFilter filter) {
- filters.remove(filter);
- }
-
- public void updateDrillDownActions() {
- if (drillDownAdapter.canGoBack()) {
- goUpAction.setEnabled(true);
- } else {
- goUpAction.setEnabled(false);
- }
- }
-
- boolean isInRenameAction = false;
-
- private DelayedRefreshJob refreshJob;
-
- private boolean itemNotFoundExceptionLogged;
-
- public void setInRenameAction(boolean b) {
- isInRenameAction = b;
- }
-
- public void goIntoCategory() {
- ISelection selection = getViewer().getSelection();
- if (selection instanceof StructuredSelection) {
- StructuredSelection structuredSelection = (StructuredSelection) selection;
- Object element = structuredSelection.getFirstElement();
- if (element instanceof ITaskContainer) {
- drilledIntoCategory = (AbstractTaskContainer) element;
- drillDownAdapter.goInto();
- IActionBars bars = getViewSite().getActionBars();
- bars.getToolBarManager().remove(goUpAction.getId());
- bars.getToolBarManager().add(goUpAction);
- bars.updateActionBars();
- updateDrillDownActions();
- }
- }
- }
-
- public void goUpToRoot() {
- drilledIntoCategory = null;
- drillDownAdapter.goBack();
- IActionBars bars = getViewSite().getActionBars();
- bars.getToolBarManager().remove(GoUpAction.ID);
- bars.updateActionBars();
- updateDrillDownActions();
- }
-
- public AbstractTask getSelectedTask() {
- ISelection selection = getViewer().getSelection();
- if (selection.isEmpty()) {
- return null;
- }
- if (selection instanceof StructuredSelection) {
- StructuredSelection structuredSelection = (StructuredSelection) selection;
- Object element = structuredSelection.getFirstElement();
- if (element instanceof ITask) {
- return (AbstractTask) structuredSelection.getFirstElement();
- }
- }
- return null;
- }
-
- public static AbstractTask getSelectedTask(ISelection selection) {
- if (selection instanceof StructuredSelection) {
- StructuredSelection structuredSelection = (StructuredSelection) selection;
- if (structuredSelection.size() != 1) {
- return null;
- }
- Object element = structuredSelection.getFirstElement();
- if (element instanceof ITask) {
- return (AbstractTask) structuredSelection.getFirstElement();
- }
- }
- return null;
- }
-
- public void indicatePaused(boolean paused) {
- isPaused = paused;
- IStatusLineManager statusLineManager = getViewSite().getActionBars().getStatusLineManager();
- if (isPaused) {
- statusLineManager.setMessage(CommonImages.getImage(TasksUiImages.TASKS_VIEW),
- Messages.TaskListView_Mylyn_context_capture_paused);
- setPartName(Messages.TaskListView__paused_ + LABEL_VIEW);
- } else {
- statusLineManager.setMessage(""); //$NON-NLS-1$
- setPartName(LABEL_VIEW);
- }
- }
-
- public AbstractTaskContainer getDrilledIntoCategory() {
- return drilledIntoCategory;
- }
-
- public TaskListFilteredTree getFilteredTree() {
- return filteredTree;
- }
-
- public void selectedAndFocusTask(ITask task) {
- if (task == null || getViewer().getControl().isDisposed()) {
- return;
- }
- saveSelection();
-
- IStructuredSelection selection = restoreSelection(task);
- try {
- getViewer().setSelection(selection, true);
- } catch (SWTError e) {
- if (!itemNotFoundExceptionLogged) {
- itemNotFoundExceptionLogged = true;
- // It's probably not worth displaying this to the user since the item
- // is not there in this case, so consider removing.
- StatusHandler.log(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- "Could not link Task List with editor", //$NON-NLS-1$
- e));
- }
- }
- }
-
- private void saveSelection() {
- IStructuredSelection selection = (IStructuredSelection) getViewer().getSelection();
- if (!selection.isEmpty()) {
- if (selection.getFirstElement() instanceof ITaskContainer) {
- // make sure the new selection is inserted at the end of the
- // list
- String handle = ((IRepositoryElement) selection.getFirstElement()).getHandleIdentifier();
- lastSelectionByTaskHandle.remove(handle);
- lastSelectionByTaskHandle.put(handle, selection);
-
- if (lastSelectionByTaskHandle.size() > SIZE_MAX_SELECTION_HISTORY) {
- Iterator<String> it = lastSelectionByTaskHandle.keySet().iterator();
- it.next();
- it.remove();
- }
- }
- }
- }
-
- private IStructuredSelection restoreSelection(IRepositoryElement task) {
- IStructuredSelection selection = lastSelectionByTaskHandle.get(task.getHandleIdentifier());
- if (selection != null) {
- return selection;
- } else {
- return new StructuredSelection(task);
- }
- }
-
- public Image[] getPirorityImages() {
- Image[] images = new Image[PriorityLevel.values().length];
- for (int i = 0; i < PriorityLevel.values().length; i++) {
- images[i] = TasksUiImages.getImageForPriority(PriorityLevel.values()[i]);
- }
- return images;
- }
-
- public Set<AbstractTaskListFilter> getFilters() {
- return filters;
- }
-
- public static String getCurrentPriorityLevel() {
- if (TasksUiPlugin.getDefault().getPreferenceStore().contains(ITasksUiPreferenceConstants.FILTER_PRIORITY)) {
- return TasksUiPlugin.getDefault().getPreferenceStore().getString(
- ITasksUiPreferenceConstants.FILTER_PRIORITY);
- } else {
- return PriorityLevel.P5.toString();
- }
- }
-
- public TaskArchiveFilter getArchiveFilter() {
- return filterArchive;
- }
-
- private void updateFilterEnablement() {
- boolean enabled = !isFocusedMode();
- if (enabled) {
- Text textControl = filteredTree.getFilterControl();
- if (textControl != null && textControl.getText().length() > 0) {
- enabled = false;
- }
- }
- sortDialogAction.setEnabled(enabled);
- filterOnPriorityAction.setEnabled(enabled);
- filterCompleteTask.setEnabled(enabled);
- //filterArchiveCategory.setEnabled(enabled);
- }
-
- public boolean isScheduledPresentation() {
- return currentPresentation != null && ScheduledPresentation.ID.equals(currentPresentation.getId());
- }
-
- public boolean isFocusedMode() {
- return focusedMode;
- }
-
- private boolean isAutoExpandMode() {
- return TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.AUTO_EXPAND_TASK_LIST);
- }
-
- public void setFocusedMode(boolean focusedMode) {
- if (this.focusedMode == focusedMode) {
- return;
- }
- this.focusedMode = focusedMode;
- IToolBarManager manager = getViewSite().getActionBars().getToolBarManager();
-
- if (focusedMode && isAutoExpandMode()) {
- manager.remove(CollapseAllAction.ID);
- } else if (manager.find(CollapseAllAction.ID) == null) {
- manager.prependToGroup(ID_SEPARATOR_CONTEXT, collapseAll);
- }
- manager.update(false);
- updateFilterEnablement();
- }
-
- public void setSynchronizationOverlaid(boolean synchronizationOverlaid) {
- this.synchronizationOverlaid = synchronizationOverlaid;
- getViewer().refresh();
- }
-
- public void displayPrioritiesAbove(String priority) {
- filterPriority.displayPrioritiesAbove(priority);
- getViewer().refresh();
- }
-
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property)
- || IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property)) {
- if (getSite() != null && getSite().getPage() != null) {
- if (filterWorkingSet.updateWorkingSet(getSite().getPage().getAggregateWorkingSet())) {
- try {
- getViewer().getControl().setRedraw(false);
-
- if (drilledIntoCategory != null) {
- goUpToRoot();
- }
-
- getViewer().refresh();
- if (isFocusedMode() && isAutoExpandMode()) {
- getViewer().expandAll();
- }
- } finally {
- getViewer().getControl().setRedraw(true);
- }
- }
- }
-
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- filteredTree.indicateActiveTaskWorkingSet();
- }
- });
- }
- }
-
- public void setLinkWithEditor(boolean linkWithEditor) {
- this.linkWithEditor = linkWithEditor;
- linkWithEditorAction.setChecked(linkWithEditor);
- if (linkWithEditor) {
- IEditorPart activeEditor = getSite().getPage().getActiveEditor();
- if (activeEditor != null) {
- jumpToEditorTask(activeEditor);
- }
- }
- }
-
- private void jumpToEditorTask(IEditorPart editor) {
- IEditorInput input = editor.getEditorInput();
- if (input instanceof TaskEditorInput) {
- ITask task = ((TaskEditorInput) input).getTask();
- ITask selected = getSelectedTask();
- if (selected == null || !selected.equals(task)) {
- selectedAndFocusTask(task);
- }
- }
- }
-
- private void updateToolTip(boolean force) {
- if (taskListToolTip != null && taskListToolTip.isVisible()) {
- if (!force && taskListToolTip.isTriggeredByMouse()) {
- return;
- }
-
- TreeItem[] selection = getViewer().getTree().getSelection();
- if (selection != null && selection.length > 0) {
- Rectangle bounds = selection[0].getBounds();
- taskListToolTip.show(new Point(bounds.x + 1, bounds.y + 1));
- }
- }
- }
-
- /**
- * This can be used for experimentally adding additional presentations, but note that this convention is extremely
- * likely to change in the Mylyn 3.0 cycle.
- */
- public static List<AbstractTaskListPresentation> getPresentations() {
- List<AbstractTaskListPresentation> presentations = new ArrayList<AbstractTaskListPresentation>();
- presentations.addAll(presentationsPrimary);
- presentations.addAll(presentationsSecondary);
- return presentations;
- }
-
- public static void addPresentation(AbstractTaskListPresentation presentation) {
- if (presentation.isPrimary()) {
- presentationsPrimary.add(presentation);
- } else {
- presentationsSecondary.add(presentation);
- }
- }
-
- public TaskListSorter getSorter() {
- return tableSorter;
- }
-
- public boolean show(ShowInContext context) {
- ISelection selection = context.getSelection();
- if (selection instanceof IStructuredSelection) {
- getViewer().setSelection(selection, true);
- return true;
- }
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesSorter.java
deleted file mode 100644
index 1c2482af2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesSorter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Mik Kersten
- */
-public class TaskRepositoriesSorter extends ViewerSorter {
-
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (e1 instanceof TaskRepository && e2 instanceof TaskRepository) {
- TaskRepository t1 = (TaskRepository) e1;
- TaskRepository t2 = (TaskRepository) e2;
-
- String label1 = t1.getProperty(IRepositoryConstants.PROPERTY_LABEL);
- String label2 = t2.getProperty(IRepositoryConstants.PROPERTY_LABEL);
-
- if (LocalRepositoryConnector.REPOSITORY_LABEL.equals(label1)) {
- return -1;
- } else if (LocalRepositoryConnector.REPOSITORY_LABEL.equals(label2)) {
- return 1;
- }
-
- if (!t1.getConnectorKind().equals(t2.getConnectorKind())) {
- return (t1.getConnectorKind()).compareTo(t2.getConnectorKind());
- } else {
- if ((label1 == null || label1.equals("")) && label2 != null) { //$NON-NLS-1$
- return 1;
- } else if (label1 != null && (label2 == null || label2.equals(""))) { //$NON-NLS-1$
- return -1;
- } else if (label1 != null && label2 != null) {
- return label1.compareTo(label2);
- } else {
- return (t1.getRepositoryUrl()).compareTo(t2.getRepositoryUrl());
- }
- }
- } else {
- return super.compare(viewer, e1, e2);
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java
deleted file mode 100644
index accc49b6d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.IRepositoryModelListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryAdapter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteTaskRepositoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction;
-import org.eclipse.mylyn.tasks.core.IRepositoryListener;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.BaseSelectionListenerAction;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * @author Mik Kersten
- */
-public class TaskRepositoriesView extends ViewPart {
-
- /**
- * @deprecated Use {@link ITasksUiConstants#ID_VIEW_REPOSITORIES} instead
- */
- @Deprecated
- public static final String ID = ITasksUiConstants.ID_VIEW_REPOSITORIES;
-
- private TableViewer viewer;
-
- private final Action addRepositoryAction = new AddRepositoryAction();
-
- private BaseSelectionListenerAction deleteRepositoryAction;
-
- private BaseSelectionListenerAction resetConfigurationAction;
-
- private DisconnectRepositoryAction offlineAction;
-
- private void asyncExec(Runnable runnable) {
- if (Display.getCurrent() != null) {
- runnable.run();
- } else {
- Display.getDefault().asyncExec(runnable);
- }
- }
-
- private final IRepositoryModelListener MODEL_LISTENER = new IRepositoryModelListener() {
-
- public void loaded() {
- asyncExec(new Runnable() {
- public void run() {
- refresh();
- }
- });
- }
- };
-
- private final IRepositoryListener REPOSITORY_LISTENER = new TaskRepositoryAdapter() {
-
- @Override
- public void repositoryAdded(TaskRepository repository) {
- asyncExec(new Runnable() {
- public void run() {
- refresh();
- }
- });
- }
-
- @Override
- public void repositoryRemoved(TaskRepository repository) {
- asyncExec(new Runnable() {
- public void run() {
- refresh();
- }
- });
- }
-
- @Override
- public void repositorySettingsChanged(TaskRepository repository) {
- asyncExec(new Runnable() {
- public void run() {
- refresh();
- }
- });
- }
- };
-
- static class ViewContentProvider implements IStructuredContentProvider {
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- }
-
- public void dispose() {
- }
-
- public Object[] getElements(Object parent) {
- return TasksUi.getRepositoryManager().getAllRepositories().toArray();
- }
- }
-
- public TaskRepositoriesView() {
- TasksUi.getRepositoryManager().addListener(REPOSITORY_LISTENER);
- TasksUiPlugin.getDefault().addModelListener(MODEL_LISTENER);
- }
-
- @Override
- public void dispose() {
- super.dispose();
- TasksUiPlugin.getRepositoryManager().removeListener(REPOSITORY_LISTENER);
- TasksUiPlugin.getDefault().removeModelListener(MODEL_LISTENER);
- }
-
- public static TaskRepositoriesView getFromActivePerspective() {
- if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
- IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- if (activePage == null) {
- return null;
- }
- IViewPart view = activePage.findView(ITasksUiConstants.ID_VIEW_REPOSITORIES);
- if (view instanceof TaskRepositoriesView) {
- return (TaskRepositoriesView) view;
- }
- }
- return null;
- }
-
- public static TaskRepositoriesView openInActivePerspective() {
- try {
- return (TaskRepositoriesView) PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage()
- .showView(ITasksUiConstants.ID_VIEW_REPOSITORIES);
- } catch (Exception e) {
- return null;
- }
- }
-
- @Override
- public void createPartControl(Composite parent) {
- viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
- viewer.setContentProvider(new ViewContentProvider());
- viewer.setUseHashlookup(true);
- viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
- PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
-
- viewer.setSorter(new TaskRepositoriesSorter());
-
-// new ViewerSorter() {
-//
-// @Override
-// public int compare(Viewer viewer, Object e1, Object e2) {
-// if (e1 instanceof TaskRepository && e2 instanceof TaskRepository) {
-// TaskRepository t1 = (TaskRepository) e1;
-// TaskRepository t2 = (TaskRepository) e2;
-// return (t1.getKind() + t1.getUrl()).compareTo(t2.getKind() + t2.getUrl());
-// } else {
-// return super.compare(viewer, e1, e2);
-// }
-// }
-// });
- viewer.setInput(getViewSite());
- viewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- IHandlerService service = (IHandlerService) getSite().getService(IHandlerService.class);
- if (service != null) {
- try {
- service.executeCommand(IWorkbenchActionDefinitionIds.PROPERTIES, null);
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Opening repository properties failed", e)); //$NON-NLS-1$
- }
- }
- }
- });
-
- // FIXME remove listener when view is disposed
- TasksUi.getRepositoryManager().addListener(new TaskRepositoryListener());
-
- makeActions();
- hookContextMenu();
- hookGlobalActions();
- contributeToActionBars();
- getSite().setSelectionProvider(getViewer());
- }
-
- private void hookGlobalActions() {
- IActionBars bars = getViewSite().getActionBars();
- bars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteRepositoryAction);
- bars.setGlobalActionHandler(ActionFactory.REFRESH.getId(), resetConfigurationAction);
- }
-
- private void makeActions() {
- deleteRepositoryAction = new DeleteTaskRepositoryAction();
- viewer.addSelectionChangedListener(deleteRepositoryAction);
-
- resetConfigurationAction = new UpdateRepositoryConfigurationAction();
- resetConfigurationAction.setActionDefinitionId("org.eclipse.ui.file.refresh"); //$NON-NLS-1$
- viewer.addSelectionChangedListener(resetConfigurationAction);
-
- offlineAction = new DisconnectRepositoryAction();
- viewer.addSelectionChangedListener(offlineAction);
- }
-
- private void hookContextMenu() {
- MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- TaskRepositoriesView.this.fillContextMenu(manager);
- }
- });
- Menu menu = menuMgr.createContextMenu(viewer.getControl());
- viewer.getControl().setMenu(menu);
- getSite().registerContextMenu(menuMgr, viewer);
- }
-
- private void contributeToActionBars() {
- IActionBars bars = getViewSite().getActionBars();
- fillLocalPullDown(bars.getMenuManager());
- fillLocalToolBar(bars.getToolBarManager());
- }
-
- private void fillLocalPullDown(IMenuManager manager) {
- manager.add(addRepositoryAction);
- }
-
- private void fillContextMenu(IMenuManager manager) {
- manager.add(addRepositoryAction);
- manager.add(new Separator());
- manager.add(deleteRepositoryAction);
- manager.add(resetConfigurationAction);
- manager.add(new Separator());
- manager.add(offlineAction);
- manager.add(new Separator("repository")); //$NON-NLS-1$
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- manager.add(new Separator());
- manager.add(new Separator("properties")); //$NON-NLS-1$
- }
-
- private void fillLocalToolBar(IToolBarManager manager) {
- manager.add(addRepositoryAction);
- }
-
- /**
- * Passing the focus request to the viewer's control.
- */
- @Override
- public void setFocus() {
- viewer.getControl().setFocus();
- }
-
- public void refresh() {
- if (viewer != null && !viewer.getControl().isDisposed()) {
- viewer.refresh();
- }
- }
-
- public TableViewer getViewer() {
- return viewer;
- }
-
- public class TaskRepositoryListener extends TaskRepositoryAdapter {
-
- @Override
- public void repositorySettingsChanged(TaskRepository repository) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (!getViewer().getControl().isDisposed()) {
- getViewer().refresh(true);
- }
- }
- });
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java
deleted file mode 100644
index 916a5c4b1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Mik Kersten
- */
-public class TaskRepositoryLabelProvider implements ILabelProvider {
-
-//extends LabelProvider implements ITableLabelProvider {
-
- public Image getColumnImage(Object obj, int index) {
- if (index == 0) {
- return getImage(obj);
- } else {
- return null;
- }
- }
-
- public Image getImage(Object object) {
- if (object instanceof AbstractRepositoryConnector) {
- AbstractRepositoryConnector repositoryConnector = (AbstractRepositoryConnector) object;
- Image image = TasksUiPlugin.getDefault().getBrandingIcon(repositoryConnector.getConnectorKind());
- if (image != null) {
- return image;
- } else {
- return CommonImages.getImage(TasksUiImages.REPOSITORY);
- }
- } else if (object instanceof TaskRepository) {
- if (((TaskRepository) object).isOffline()) {
- return CommonImages.getImage(TasksUiImages.REPOSITORY_OFFLINE);
- } else {
- return CommonImages.getImage(TasksUiImages.REPOSITORY);
- }
- }
- return null;
- }
-
- public String getText(Object object) {
-
- if (object instanceof TaskRepository) {
- TaskRepository repository = (TaskRepository) object;
- StringBuilder label = new StringBuilder();
- label.append(repository.getRepositoryLabel());
- if (repository.isOffline()) {
- label.append(" [" + DisconnectRepositoryAction.LABEL + "]"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return label.toString();
- } else if (object instanceof AbstractRepositoryConnector) {
- return ((AbstractRepositoryConnector) object).getLabel();
- } else {
- return null;
- }
- }
-
- public void addListener(ILabelProviderListener listener) {
- // ignore
-
- }
-
- public void dispose() {
- // ignore
-
- }
-
- public boolean isLabelProperty(Object element, String property) {
- // ignore
- return false;
- }
-
- public void removeListener(ILabelProviderListener listener) {
- // ignore
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java
deleted file mode 100644
index e0cfdc244..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.DateRange;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
-import org.eclipse.mylyn.internal.tasks.core.WeekDateRange;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskActivityListener;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Used by Scheduled task list presentation
- *
- * @author Rob Elves
- */
-public class TaskScheduleContentProvider extends TaskListContentProvider implements ITaskActivityListener {
-
- private final TaskActivityManager taskActivityManager;
-
- private final Unscheduled unscheduled;
-
- private final Calendar END_OF_TIME;
-
- private Job rolloverJob;
-
- public TaskScheduleContentProvider(TaskListView taskListView) {
- super(taskListView);
- this.taskActivityManager = TasksUiPlugin.getTaskActivityManager();
- taskActivityManager.addActivityListener(this);
- END_OF_TIME = TaskActivityUtil.getCalendar();
- END_OF_TIME.add(Calendar.YEAR, 5000);
- END_OF_TIME.getTime();
- unscheduled = new Unscheduled(taskActivityManager, new DateRange(END_OF_TIME));
- }
-
- @Override
- public Object[] getElements(Object parent) {
-
- if (parent != null && parent.equals(this.taskListView.getViewSite())) {
-
- Set<AbstractTaskContainer> containers = new HashSet<AbstractTaskContainer>();
-
- WeekDateRange week = TaskActivityUtil.getCurrentWeek();
- WeekDateRange nextWeek = TaskActivityUtil.getNextWeek();
-
- synchronized (this) {
- if (rolloverJob != null) {
- rolloverJob.cancel();
- rolloverJob = null;
- }
-
- long delay = week.getToday().getEndDate().getTime().getTime() - new Date().getTime();
- rolloverJob = new RolloverCheck();
- rolloverJob.setSystem(true);
- rolloverJob.setPriority(Job.SHORT);
- rolloverJob.schedule(delay);
- }
-
- for (DateRange day : week.getRemainingDays()) {
- containers.add(new ScheduledTaskContainer(TasksUiPlugin.getTaskActivityManager(), day));
- }
- containers.add(new ScheduledTaskContainer(TasksUiPlugin.getTaskActivityManager(), week));
-
- for (DateRange day : nextWeek.getDaysOfWeek()) {
- containers.add(new ScheduledTaskContainer(TasksUiPlugin.getTaskActivityManager(), day));
- }
-
- ScheduledTaskContainer nextWeekContainer = new ScheduledTaskContainer(taskActivityManager, nextWeek);
- containers.add(nextWeekContainer);
-
- ScheduledTaskContainer twoWeeksContainer = new ScheduledTaskContainer(taskActivityManager, week.next()
- .next(), Messages.TaskScheduleContentProvider_Two_Weeks);
- containers.add(twoWeeksContainer);
-
- containers.add(unscheduled);
- Calendar startDate = TaskActivityUtil.getCalendar();
- startDate.setTimeInMillis(twoWeeksContainer.getEnd().getTimeInMillis());
- TaskActivityUtil.snapNextDay(startDate);
- Calendar endDate = TaskActivityUtil.getCalendar();
- endDate.add(Calendar.YEAR, 4999);
- DateRange future = new DateRange(startDate, endDate);
-
- ScheduledTaskContainer futureContainer = new ScheduledTaskContainer(taskActivityManager, future,
- Messages.TaskScheduleContentProvider_Future);
- containers.add(futureContainer);
-
- return applyFilter(containers).toArray();
-
- } else {
- return getChildren(parent);
- }
- }
-
- @Override
- public Object getParent(Object child) {
-// for (Object o : getElements(null)) {
-// ScheduledTaskContainer container = ((ScheduledTaskContainer) o);
-// if (container.getChildren().contains(((ITask) child).getHandleIdentifier())) {
-// return container;
-// }
-// }
- return null;
- }
-
- @Override
- public boolean hasChildren(Object parent) {
- return getChildren(parent).length > 0;
- }
-
- @Override
- public Object[] getChildren(Object parent) {
- Set<ITask> result = new HashSet<ITask>();
- if (parent instanceof ITask) {
- // flat presentation (no subtasks revealed in Scheduled mode)
- } else if (parent instanceof ScheduledTaskContainer) {
- for (ITask child : ((ScheduledTaskContainer) parent).getChildren()) {
- if (!filter(parent, child)) {
- result.add(child);
- }
- }
-
- } else if (parent instanceof ITaskContainer) {
- for (ITask child : ((ITaskContainer) parent).getChildren()) {
- result.add(child);
- }
- }
- return result.toArray();
- }
-
- private void refresh() {
- if (Platform.isRunning() && PlatformUI.getWorkbench() != null && !PlatformUI.getWorkbench().isClosing()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- taskListView.refresh();
- }
- });
- }
- }
-
- @Override
- public void dispose() {
- synchronized (this) {
- if (rolloverJob != null) {
- rolloverJob.cancel();
- }
- }
- taskActivityManager.removeActivityListener(this);
- super.dispose();
- }
-
- public void activityReset() {
- refresh();
- }
-
- public void elapsedTimeUpdated(ITask task, long newElapsedTime) {
- // ignore
- }
-
- public class Unscheduled extends ScheduledTaskContainer {
-
- private final TaskActivityManager activityManager;
-
- public Unscheduled(TaskActivityManager activityManager, DateRange range) {
- super(activityManager, range, Messages.TaskScheduleContentProvider_Unscheduled);
- this.activityManager = activityManager;
- }
-
- @Override
- public Collection<ITask> getChildren() {
- Set<ITask> all = new HashSet<ITask>();
- for (ITask task : activityManager.getUnscheduled()) {
- if (!task.isCompleted() || (task.isCompleted() && !task.getSynchronizationState().isSynchronized())) {
- all.add(task);
- }
- }
- return all;
- }
- }
-
- private class RolloverCheck extends Job {
-
- public RolloverCheck() {
- super("Calendar Rollover Job"); //$NON-NLS-1$
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- refresh();
- return Status.OK_STATUS;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskTableLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskTableLabelProvider.java
deleted file mode 100644
index 0b9629ac3..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskTableLabelProvider.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Mik Kersten
- */
-public class TaskTableLabelProvider extends DecoratingLabelProvider implements ITableLabelProvider,
- ITableColorProvider, ITableFontProvider {
-
- private Color categoryBackgroundColor;
-
- /**
- * @param view
- * can be null
- */
- public TaskTableLabelProvider(ILabelProvider provider, ILabelDecorator decorator, Color parentBackground) {
- super(provider, decorator);
- this.categoryBackgroundColor = parentBackground;
- }
-
- public String getColumnText(Object obj, int columnIndex) {
- if (obj instanceof ITaskContainer) {
- switch (columnIndex) {
- case 0:
-// if (obj instanceof ScheduledTaskContainer) {
-// if (((ScheduledTaskContainer) obj).isToday()) {
-// return super.getText(obj) + " - Today";
-// }
-// }
- return super.getText(obj);
- case 1:
- return null;
- }
- }
- return null;
- }
-
- public Image getColumnImage(Object element, int columnIndex) {
- if (!(element instanceof ITaskContainer)) {
- return null;
- }
- if (columnIndex == 0) {
- return super.getImage(element);
- }
- return null;
- }
-
- public Font getFont(Object element, int columnIndex) {
- return super.getFont(element);
- }
-
- public Color getForeground(Object element, int columnIndex) {
- return super.getForeground(element);
- }
-
- public Color getBackground(Object element, int columnIndex) {
- if (element instanceof ITaskContainer && !(element instanceof ITask)) {
- return categoryBackgroundColor;
- } else if (element instanceof IRepositoryQuery) {
- return categoryBackgroundColor;
- }
-
- return super.getBackground(element);
- }
-
- public void setCategoryBackgroundColor(Color parentBackgroundColor) {
- this.categoryBackgroundColor = parentBackgroundColor;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java
deleted file mode 100644
index dde26d891..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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 java.text.MessageFormat;
-import java.util.Iterator;
-
-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.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.AbstractTaskRepositoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- */
-public class UpdateRepositoryConfigurationAction extends AbstractTaskRepositoryAction {
-
- private static final String ID = "org.eclipse.mylyn.tasklist.repositories.reset"; //$NON-NLS-1$
-
- public UpdateRepositoryConfigurationAction() {
- super(Messages.UpdateRepositoryConfigurationAction_Update_Repository_Configuration);
- setId(ID);
- setEnabled(false);
- }
-
- @Override
- public void run() {
- try {
- IStructuredSelection selection = getStructuredSelection();
- for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
- final TaskRepository repository = getTaskRepository(iter.next());
- if (repository != null) {
- final AbstractRepositoryConnector connector = TasksUi.getRepositoryManager()
- .getRepositoryConnector(repository.getConnectorKind());
- if (connector != null) {
- final String jobName = MessageFormat.format(
- Messages.UpdateRepositoryConfigurationAction_Updating_repository_configuration_for_X,
- repository.getRepositoryUrl());
- Job updateJob = new Job(jobName) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- monitor.beginTask(jobName, IProgressMonitor.UNKNOWN);
- try {
- performUpdate(repository, connector, monitor);
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
- };
- updateJob.schedule();
- }
- }
- }
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- }
-
- public void performUpdate(final TaskRepository repository, final AbstractRepositoryConnector connector,
- IProgressMonitor monitor) {
- try {
- connector.updateRepositoryConfiguration(repository, monitor);
- } catch (final CoreException e) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.displayStatus(
- Messages.UpdateRepositoryConfigurationAction_Error_updating_repository_configuration,
- e.getStatus());
- }
- });
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/WorkweekProgressBar.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/WorkweekProgressBar.java
deleted file mode 100644
index 25db76784..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/WorkweekProgressBar.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.provisional.commons.ui.CommonThemes;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * Derived from JUnitProgressBar.
- *
- * @author Mik Kersten
- */
-public class WorkweekProgressBar extends Canvas {
-
- private static final int DEFAULT_HEIGHT = 5;
-
- private int currentTickCount = 0;
-
- private int maxTickCount = 0;
-
- private int colorBarWidth = 0;
-
- private final Color completedColor;
-
- private final Composite parent;
-
- public WorkweekProgressBar(Composite parent) {
- super(parent, SWT.NONE);
- this.parent = parent;
-
- parent.addControlListener(new ControlAdapter() {
- @Override
- public void controlResized(ControlEvent e) {
- colorBarWidth = scale(currentTickCount);
- redraw();
- }
- });
- addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- paint(e);
- }
- });
- IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
- completedColor = themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_COMPLETED_TODAY);
- }
-
- public void setMaximum(int max) {
- maxTickCount = max;
- }
-
- public void reset() {
- currentTickCount = 0;
- maxTickCount = 0;
- colorBarWidth = 0;
- redraw();
- }
-
- public void reset(int ticksDone, int maximum) {
- currentTickCount = ticksDone;
- maxTickCount = maximum;
- colorBarWidth = scale(ticksDone);
- computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
- redraw();
- }
-
- private void paintStep(int startX, int endX) {
- GC gc = new GC(this);
- setStatusColor(gc);
- Rectangle rect = getClientArea();
- startX = Math.max(1, startX);
- gc.fillRectangle(startX, 1, endX - startX, rect.height - 2);
- gc.dispose();
- }
-
- private void setStatusColor(GC gc) {
- gc.setBackground(completedColor);
- }
-
- private int scale(int value) {
- if (maxTickCount > 0) {
- // TODO: should probably get own client area, not parent's
- Rectangle r = parent.getClientArea();
- if (r.width != 0) {
- return Math.max(0, value * (r.width - 2) / maxTickCount);
- }
- }
- return value;
- }
-
- private void drawBevelRect(GC gc, int x, int y, int w, int h, Color topleft, Color bottomright) {
- gc.setForeground(topleft);
- gc.drawLine(x, y, x + w - 1, y);
- gc.drawLine(x, y, x, y + h - 1);
-
- gc.setForeground(bottomright);
- gc.drawLine(x + w, y, x + w, y + h);
- gc.drawLine(x, y + h, x + w, y + h);
- }
-
- private void paint(PaintEvent event) {
- GC gc = event.gc;
- Display disp = getDisplay();
-
- Rectangle rect = getClientArea();
- gc.fillRectangle(rect);
- drawBevelRect(gc, rect.x, rect.y, rect.width - 1, rect.height - 1,
- disp.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW),
- disp.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
-
- setStatusColor(gc);
- colorBarWidth = Math.min(rect.width - 2, colorBarWidth);
- gc.fillRectangle(1, 1, colorBarWidth, rect.height - 2);
- }
-
- @Override
- public Point computeSize(int wHint, int hHint, boolean changed) {
- checkWidget();
- Point size = new Point(parent.getSize().x, DEFAULT_HEIGHT);//parent.getSize().y);
- if (wHint != SWT.DEFAULT) {
- size.x = wHint;
- }
- if (hHint != SWT.DEFAULT) {
- size.y = hHint;
- }
- return size;
- }
-
- public void setCount(int count) {
- currentTickCount++;
- int x = colorBarWidth;
-
- colorBarWidth = scale(currentTickCount);
-
- if (currentTickCount == maxTickCount) {
- colorBarWidth = getClientArea().width - 1;
- }
- paintStep(x, colorBarWidth);
- }
-
- public void step(int failures) {
- currentTickCount++;
- int x = colorBarWidth;
-
- colorBarWidth = scale(currentTickCount);
- if (currentTickCount == maxTickCount) {
- colorBarWidth = getClientArea().width - 1;
- }
- paintStep(x, colorBarWidth);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties
deleted file mode 100644
index d7127100b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties
+++ /dev/null
@@ -1,46 +0,0 @@
-DisconnectRepositoryAction_Disconnected=Disconnected
-
-PriorityDropDownAction_Filter_Priority_Lower_Than=Filter Priority Lower Than
-
-TaskInputDialog_Clear=Clear
-TaskInputDialog_Description=Description:
-TaskInputDialog_Get_Description=Get Description
-TaskInputDialog_New_Task=New Task
-TaskInputDialog_Web_Link=Web Link:
-
-TaskListDropAdapter__retrieving_from_URL_=<retrieving from URL>
-
-TaskListFilteredTree_Activate=Activate...
-TaskListFilteredTree_Edit_Task_Working_Sets_=Edit Task Working Sets...
-TaskListFilteredTree_Estimated_hours=\ Estimated hours: {0} of {1} estimated
-TaskListFilteredTree__multiple_=<multiple>
-TaskListFilteredTree_Scheduled_tasks=\ Scheduled tasks: {0} of {1} scheduled
-TaskListFilteredTree_Search_repository_for_key_or_summary_=Search repository for key or summary...
-TaskListFilteredTree_Select_Active_Task=Select Active Task
-TaskListFilteredTree_Select_Working_Set=Select Working Set
-TaskListFilteredTree_Workweek_Progress=Workweek Progress
-
-TaskListToolTip_Automatic_container_for_all_local_tasks=Automatic container for all local tasks\nwith no category set
-TaskListToolTip_Automatic_container_for_repository_tasks=Automatic container for repository tasks\nnot matched by any query
-TaskListToolTip_Due=Due: {0}, {1} ({2})
-TaskListToolTip_Elapsed=Elapsed: {0}
-TaskListToolTip_Estimate=Estimate: {0} hours
-TaskListToolTip_Please_synchronize_manually_for_full_error_message=\ Please synchronize manually for full error message.
-TaskListToolTip_Scheduled=Scheduled: {0}
-TaskListToolTip_Some_incoming_elements_may_be_filtered=Some incoming elements may be filtered,\nfocus the view to see all incomings
-TaskListToolTip_Synchronized=Synchronized: {0}
-TaskListToolTip_Total_Complete_Incomplete=Total: {0} (Complete: {1}, Incomplete: {2})
-
-TaskListView_Mylyn_context_capture_paused=Mylyn context capture paused
-TaskListView__paused_=(paused)
-TaskListView_Repository=Repository
-TaskListView_Summary=Summary
-TaskListView_Task_List=Task List
-
-TaskScheduleContentProvider_Future=Future
-TaskScheduleContentProvider_Two_Weeks=Two Weeks
-TaskScheduleContentProvider_Unscheduled=Unscheduled
-
-UpdateRepositoryConfigurationAction_Error_updating_repository_configuration=Error updating repository configuration
-UpdateRepositoryConfigurationAction_Update_Repository_Configuration=Update Repository Configuration
-UpdateRepositoryConfigurationAction_Updating_repository_configuration_for_X=Updating repository configuration for {0}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentPreviewPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentPreviewPage.java
deleted file mode 100644
index 1dca4147c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentPreviewPage.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- * Tasktop Technologies - improvement
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.HashSet;
-import java.util.Set;
-
-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.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Shows a preview of an attachment.
- *
- * @author Jeff Pound
- * @author Steffen Pingel
- */
-public class AttachmentPreviewPage extends WizardPage {
-
- private static final String DIALOG_SETTING_RUN_IN_BACKGROUND = "run-in-background"; //$NON-NLS-1$
-
- private static final String DIALOG_SETTINGS_SECTION_ATTACHMENTS_WIZARD = "attachments-wizard"; //$NON-NLS-1$
-
- protected static final int MAX_TEXT_SIZE = 50000;
-
- private static final String PAGE_NAME = "PreviewAttachmentPage"; //$NON-NLS-1$
-
- private final Set<String> imageTypes;
-
- private final TaskAttachmentModel model;
-
- private Button runInBackgroundButton;
-
- private ScrolledComposite scrolledComposite;
-
- private final Set<String> textTypes;
-
- private Composite contentComposite;
-
- public AttachmentPreviewPage(TaskAttachmentModel model) {
- super(PAGE_NAME);
- this.model = model;
- setTitle(Messages.AttachmentPreviewPage_Attachment_Preview);
- setDescription(Messages.AttachmentPreviewPage_Review_the_attachment_before_submitting);
-
- textTypes = new HashSet<String>();
- textTypes.add("text/plain"); //$NON-NLS-1$
- textTypes.add("text/html"); //$NON-NLS-1$
- textTypes.add("text/html"); //$NON-NLS-1$
- textTypes.add("application/xml"); //$NON-NLS-1$
-
- imageTypes = new HashSet<String>();
- imageTypes.add("image/jpeg"); //$NON-NLS-1$
- imageTypes.add("image/gif"); //$NON-NLS-1$
- imageTypes.add("image/png"); //$NON-NLS-1$
- }
-
- private void adjustScrollbars(Rectangle imgSize) {
- Rectangle clientArea = scrolledComposite.getClientArea();
-
- ScrollBar hBar = scrolledComposite.getHorizontalBar();
- hBar.setMinimum(0);
- hBar.setMaximum(imgSize.width - 1);
- hBar.setPageIncrement(clientArea.width);
- hBar.setIncrement(10);
-
- ScrollBar vBar = scrolledComposite.getVerticalBar();
- vBar.setMinimum(0);
- vBar.setMaximum(imgSize.height - 1);
- vBar.setPageIncrement(clientArea.height);
- vBar.setIncrement(10);
- }
-
- public void createControl(Composite parent) {
- final Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- setControl(composite);
-
- contentComposite = new Composite(composite, SWT.NONE);
- contentComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- contentComposite.setLayout(new GridLayout());
-
- runInBackgroundButton = new Button(composite, SWT.CHECK);
- runInBackgroundButton.setText(Messages.AttachmentPreviewPage_Run_in_background);
-
- IDialogSettings settings = TasksUiPlugin.getDefault().getDialogSettings();
- IDialogSettings attachmentsSettings = settings.getSection(DIALOG_SETTINGS_SECTION_ATTACHMENTS_WIZARD);
- if (attachmentsSettings != null) {
- runInBackgroundButton.setSelection(attachmentsSettings.getBoolean(DIALOG_SETTING_RUN_IN_BACKGROUND));
- }
-
- Dialog.applyDialogFont(composite);
- }
-
- @Override
- public void dispose() {
- IDialogSettings settings = TasksUiPlugin.getDefault().getDialogSettings();
- IDialogSettings attachmentsSettings = settings.getSection(DIALOG_SETTINGS_SECTION_ATTACHMENTS_WIZARD);
- if (attachmentsSettings == null) {
- attachmentsSettings = settings.addNewSection(DIALOG_SETTINGS_SECTION_ATTACHMENTS_WIZARD);
- }
- attachmentsSettings.put(DIALOG_SETTING_RUN_IN_BACKGROUND, runInBackgroundButton.getSelection());
- super.dispose();
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (visible) {
- Control[] children = contentComposite.getChildren();
- for (Control control : children) {
- control.dispose();
- }
- if (isTextAttachment() || isImageAttachment()) {
- Object content = getContent(contentComposite);
- if (content instanceof String) {
- createTextPreview(contentComposite, (String) content);
- } else if (content instanceof Image) {
- createImagePreview(contentComposite, (Image) content);
- }
- } else {
- createGenericPreview(contentComposite);
- }
- contentComposite.layout(true, true);
- }
- Dialog.applyDialogFont(contentComposite);
- super.setVisible(visible);
- }
-
- private void createErrorPreview(Composite composite, String message) {
- Label label = new Label(composite, SWT.NONE);
- label.setLayoutData(new GridData(GridData.FILL_BOTH));
- label.setText(message);
- }
-
- private void createGenericPreview(Composite composite) {
- Label label = new Label(composite, SWT.NONE);
- label.setLayoutData(new GridData(GridData.FILL_BOTH));
- // TODO 3.2 put filename on model
- String name = model.getSource().getName();
- TaskAttachmentMapper taskAttachment = TaskAttachmentMapper.createFrom(model.getAttribute());
- if (taskAttachment.getFileName() != null) {
- name = taskAttachment.getFileName();
- }
- label.setText(MessageFormat.format(
- Messages.AttachmentPreviewPage_A_preview_the_type_X_is_currently_not_available, name,
- model.getContentType()));
- }
-
- private void createImagePreview(Composite composite, final Image bufferedImage) {
- scrolledComposite = new ScrolledComposite(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- scrolledComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
- scrolledComposite.setExpandHorizontal(true);
- scrolledComposite.setExpandVertical(true);
-
- Composite canvasComposite = new Composite(scrolledComposite, SWT.NONE);
- canvasComposite.setLayout(GridLayoutFactory.fillDefaults().create());
- Canvas canvas = new Canvas(canvasComposite, SWT.NO_BACKGROUND);
- final Rectangle imgSize = bufferedImage.getBounds();
- canvas.setLayoutData(GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, true).hint(
- imgSize.width, imgSize.height).create());
- canvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent event) {
- event.gc.drawImage(bufferedImage, 0, 0);
- }
- });
- canvas.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- bufferedImage.dispose();
- }
- });
- canvas.setSize(imgSize.width, imgSize.height);
- scrolledComposite.setMinSize(imgSize.width, imgSize.height);
- scrolledComposite.setContent(canvasComposite);
- scrolledComposite.addControlListener(new ControlAdapter() {
- @Override
- public void controlResized(ControlEvent event) {
- adjustScrollbars(imgSize);
- }
-
- });
- adjustScrollbars(imgSize);
- }
-
- private void createTextPreview(Composite composite, String contents) {
- Text text = new Text(composite, SWT.MULTI | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- GridData gd = new GridData(GridData.FILL_BOTH);
- gd.heightHint = composite.getBounds().y;
- gd.widthHint = composite.getBounds().x;
- text.setLayoutData(gd);
- text.setText(contents);
- }
-
- private Object getContent(final Composite composite) {
- final Object result[] = new Object[1];
- try {
- getContainer().run(true, false, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask(Messages.AttachmentPreviewPage_Preparing_preview, IProgressMonitor.UNKNOWN);
- final InputStream in = model.getSource().createInputStream(monitor);
- try {
- if (isTextAttachment()) {
- StringBuilder content = new StringBuilder();
- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- String line;
- while ((line = reader.readLine()) != null && content.length() < MAX_TEXT_SIZE
- && !monitor.isCanceled()) {
- content.append(line);
- content.append("\n"); //$NON-NLS-1$
- }
- result[0] = content.toString();
- } else if (isImageAttachment()) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- // Uses double buffering to paint the image; there was a weird behavior
- // with transparent images and flicker with large images
- Image originalImage = new Image(getShell().getDisplay(), in);
- final Image bufferedImage = new Image(getShell().getDisplay(),
- originalImage.getBounds());
- GC gc = new GC(bufferedImage);
- gc.setBackground(composite.getBackground());
- gc.fillRectangle(originalImage.getBounds());
- gc.drawImage(originalImage, 0, 0);
- gc.dispose();
- originalImage.dispose();
- result[0] = bufferedImage;
- }
- });
- }
- } catch (IOException e) {
- throw new InvocationTargetException(e);
- } finally {
- try {
- in.close();
- } catch (IOException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Failed to close file", e)); //$NON-NLS-1$
- }
- }
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InvocationTargetException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error generating preview", e)); //$NON-NLS-1$
- createErrorPreview(composite, Messages.AttachmentPreviewPage_Could_not_create_preview);
- return null;
- } catch (InterruptedException e) {
- return null;
- }
- return result[0];
- }
-
- private boolean isImageAttachment() {
- return imageTypes.contains(model.getContentType());
- }
-
- private boolean isTextAttachment() {
- return textTypes.contains(model.getContentType());
- }
-
- public boolean runInBackground() {
- return runInBackgroundButton.getSelection();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentSourcePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentSourcePage.java
deleted file mode 100644
index a83165606..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/AttachmentSourcePage.java
+++ /dev/null
@@ -1,644 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * IBM Corporation - initial API and implementation
- * Sebastian Davids <sdavids@gmx.de> - layout tweaks
- * Jeff Pound - modified for attachment input
- * Chris Aniszczyk <caniszczyk@gmail.com> - bug 20957
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import java.io.File;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.resources.mapping.ResourceMappingContext;
-import org.eclipse.core.resources.mapping.ResourceTraversal;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskAttachmentWizard.ClipboardTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.navigator.ResourceComparator;
-
-/**
- * A wizard to input the source of the attachment.
- * <p>
- * Based on org.eclipse.compare.internal.InputPatchPage.
- */
-public class AttachmentSourcePage extends WizardPage {
-
- // constants
- protected static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
- protected static final int COMBO_HISTORY_LENGTH = 5;
-
- // input constants
- protected final static int CLIPBOARD = 1;
-
- protected final static int FILE = 2;
-
- protected final static int WORKSPACE = 3;
-
- protected final static int SCREENSHOT = 4;
-
- static final char SEPARATOR = System.getProperty("file.separator").charAt(0); //$NON-NLS-1$
-
- private boolean showError = false;
-
- // SWT widgets
- private Button useClipboardButton;
-
-// private Button useScreenshotButton;
-
- private Combo fileNameField;
-
- private Button fileBrowseButton;
-
- private Button useFileButton;
-
- private Button useWorkspaceButton;
-
- private Label workspaceSelectLabel;
-
- private TreeViewer treeViewer;
-
- private String clipboardContents;
-
- private boolean initUseClipboard = false;
-
- private final String DIALOG_SETTINGS = "InputAttachmentSourcePage"; //$NON-NLS-1$
-
- private final String S_LAST_SELECTION = "lastSelection"; //$NON-NLS-1$
-
- private final TaskAttachmentModel model;
-
- public AttachmentSourcePage(TaskAttachmentModel model) {
- super("InputAttachmentPage"); //$NON-NLS-1$
- this.model = model;
- setTitle(Messages.AttachmentSourcePage_Select_attachment_source);
- setDescription(Messages.AttachmentSourcePage_Clipboard_supports_text_and_image_attachments_only);
- // setMessage("Please select the source for the attachment");
- }
-
- private void initialize(IDialogSettings settings) {
- String selection = settings.get(S_LAST_SELECTION);
- if (selection != null) {
- setInputMethod(Integer.valueOf(selection).intValue());
- } else {
- updateWidgetEnablements();
- }
- }
-
- /*
- * Get a path from the supplied text widget. @return
- * org.eclipse.core.runtime.IPath
- */
- protected IPath getPathFromText(Text textField) {
- return (new Path(textField.getText())).makeAbsolute();
- }
-
- public String getAttachmentName() {
- if (getInputMethod() == CLIPBOARD) {
- return Messages.AttachmentSourcePage__Clipboard_;
- } else if (getInputMethod() == WORKSPACE) {
- return getResources(treeViewer.getSelection())[0].getFullPath().toOSString();
- }
- return getAttachmentFilePath();
- }
-
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayout(new GridLayout());
- GridData gd = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
- gd.heightHint = 800;
- composite.setLayoutData(gd);
- setControl(composite);
-
- initializeDialogUnits(parent);
-
- createAttachmentFileGroup(composite);
-
- // No error for dialog opening
- showError = false;
- clearErrorMessage();
- initialize(getDialogSettings());
-
- Dialog.applyDialogFont(composite);
- }
-
- @Override
- public IWizardPage getNextPage() {
- AbstractTaskAttachmentSource source = getSource();
- model.setSource(source);
- if (source != null) {
- model.setContentType(source.getContentType());
- }
- saveDialogSettings();
- return super.getNextPage();
- }
-
- private void saveDialogSettings() {
- IDialogSettings settings = getDialogSettings();
- settings.put(S_LAST_SELECTION, getInputMethod());
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return isPageComplete();
- }
-
- private void setEnableAttachmentFile(boolean enable) {
- fileNameField.setEnabled(enable);
- fileBrowseButton.setEnabled(enable);
- }
-
- private void setEnableWorkspaceAttachment(boolean enable) {
- workspaceSelectLabel.setEnabled(enable);
- treeViewer.getTree().setEnabled(enable);
- }
-
- /*
- * Create the group for selecting the attachment file
- */
- private void createAttachmentFileGroup(Composite parent) {
- final Composite composite = new Composite(parent, SWT.NULL);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 3;
- composite.setLayout(gridLayout);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // new row
- GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- useFileButton = new Button(composite, SWT.RADIO);
- useFileButton.setText(Messages.AttachmentSourcePage_File);
-
- fileNameField = new Combo(composite, SWT.BORDER);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = SIZING_TEXT_FIELD_WIDTH;
- fileNameField.setLayoutData(gd);
- fileNameField.setText(""); //$NON-NLS-1$
-
- fileBrowseButton = new Button(composite, SWT.PUSH);
- fileBrowseButton.setText(Messages.AttachmentSourcePage_Browse_);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- Point minSize = fileBrowseButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
- data.widthHint = Math.max(widthHint, minSize.x);
- fileBrowseButton.setLayoutData(data);
-
- // new row
- gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- gd.horizontalSpan = 3;
- useClipboardButton = new Button(composite, SWT.RADIO);
- useClipboardButton.setText(Messages.AttachmentSourcePage_Clipboard);
- useClipboardButton.setLayoutData(gd);
- useClipboardButton.setSelection(initUseClipboard);
-
- // new row
- useWorkspaceButton = new Button(composite, SWT.RADIO);
- useWorkspaceButton.setText(Messages.AttachmentSourcePage_Workspace);
- gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- useWorkspaceButton.setLayoutData(gd);
-
- addWorkspaceControls(parent);
-
- // Add listeners
- useClipboardButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (!useClipboardButton.getSelection()) {
- return;
- }
-
- clearErrorMessage();
- showError = true;
- storeClipboardContents();
- updateWidgetEnablements();
- }
- });
-
- useFileButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (!useFileButton.getSelection()) {
- return;
- }
- // If there is anything typed in at all
- clearErrorMessage();
- showError = (fileNameField.getText() != ""); //$NON-NLS-1$
- updateWidgetEnablements();
- }
- });
- fileNameField.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- setSourceName(fileNameField.getText());
- updateWidgetEnablements();
- }
- });
- fileNameField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- clearErrorMessage();
- showError = true;
- updateWidgetEnablements();
- }
- });
- fileBrowseButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- clearErrorMessage();
- showError = true;
- /* Launch Browser */
- FileDialog fileChooser = new FileDialog(composite.getShell(), SWT.OPEN);
- String file = fileChooser.open();
-
- // Check if the dialog was canceled or an error occured
- if (file == null) {
- return;
- }
- // update UI
- fileNameField.setText(file);
- updateWidgetEnablements();
- }
- });
- useWorkspaceButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (!useWorkspaceButton.getSelection()) {
- return;
- }
- clearErrorMessage();
- // If there is anything typed in at all
- showError = (!treeViewer.getSelection().isEmpty());
- updateWidgetEnablements();
- }
- });
-
- treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- clearErrorMessage();
- updateWidgetEnablements();
- }
- });
-
- treeViewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof TreeSelection) {
- TreeSelection treeSel = (TreeSelection) selection;
- Object res = treeSel.getFirstElement();
- if (res != null) {
- if (res instanceof IProject || res instanceof IFolder) {
- if (treeViewer.getExpandedState(res)) {
- treeViewer.collapseToLevel(res, 1);
- } else {
- treeViewer.expandToLevel(res, 1);
- }
- } else if (res instanceof IFile) {
- getContainer().showPage(getNextPage());
- }
- }
- }
- }
- });
-
- useFileButton.setSelection(!initUseClipboard);
- setEnableWorkspaceAttachment(false);
- }
-
- private void addWorkspaceControls(Composite composite) {
-
- Composite newComp = new Composite(composite, SWT.NONE);
- GridLayout layout = new GridLayout(1, false);
- layout.marginLeft = 16; // align w/ lable of check button
- newComp.setLayout(layout);
- newComp.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- workspaceSelectLabel = new Label(newComp, SWT.LEFT);
- workspaceSelectLabel.setText(Messages.AttachmentSourcePage_Select_the_location_of_the_attachment);
-
- treeViewer = new TreeViewer(newComp, SWT.BORDER);
- treeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
- treeViewer.setLabelProvider(new WorkbenchLabelProvider());
- treeViewer.setContentProvider(new WorkbenchContentProvider());
- treeViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
- treeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
- }
-
- /**
- * Updates the enable state of this page's controls.
- */
- private void updateWidgetEnablements() {
-
- String error = null;
-
- boolean attachmentFound = false;
- int inputMethod = getInputMethod();
- if (inputMethod == CLIPBOARD) {
- if (ClipboardTaskAttachmentSource.isSupportedType(getControl().getDisplay())) {
- attachmentFound = true;
- } else {
- error = Messages.AttachmentSourcePage_Clipboard_contains_an_unsupported_data;
- }
- } else if (inputMethod == SCREENSHOT) {
- attachmentFound = true;
- } else if (inputMethod == FILE) {
- String path = fileNameField.getText();
- if (path != null && path.length() > 0) {
- File file = new File(path);
- attachmentFound = file.exists() && file.isFile() && file.length() > 0;
- if (!attachmentFound) {
- error = Messages.AttachmentSourcePage_Cannot_locate_attachment_file;
- }
- } else {
- error = Messages.AttachmentSourcePage_No_file_name;
- }
- } else if (inputMethod == WORKSPACE) {
- // Get the selected attachment file (tree will only allow for one
- // selection)
- IResource[] resources = getResources(treeViewer.getSelection());
- if (resources == null || resources.length <= 0) {
- error = Messages.AttachmentSourcePage_No_file_name;
- } else {
- IResource attachmentFile = resources[0];
- if (attachmentFile != null && attachmentFile.getType() == IResource.FILE) {
- File actualFile = attachmentFile.getRawLocation().toFile();
- attachmentFound = actualFile.exists() && actualFile.isFile() && actualFile.length() > 0;
- if (!attachmentFound) {
- error = Messages.AttachmentSourcePage_Cannot_locate_attachment_file;
- }
- }
- }
- }
-
- setPageComplete(attachmentFound);
-
- if (showError) {
- setErrorMessage(error);
- }
-
- setEnableAttachmentFile(inputMethod == FILE);
- setEnableWorkspaceAttachment(inputMethod == WORKSPACE);
- }
-
- /**
- * Sets the source name of the import to be the supplied path. Adds the name of the path to the list of items in the
- * source combo and selects it.
- *
- * @param path
- * the path to be added
- */
- protected void setSourceName(String path) {
-
- if (path.length() > 0) {
-
- String[] currentItems = fileNameField.getItems();
- int selectionIndex = -1;
- for (int i = 0; i < currentItems.length; i++) {
- if (currentItems[i].equals(path)) {
- selectionIndex = i;
- }
- }
-
- if (selectionIndex < 0) { // not found in history
- int oldLength = currentItems.length;
- String[] newItems = new String[oldLength + 1];
- System.arraycopy(currentItems, 0, newItems, 0, oldLength);
- newItems[oldLength] = path;
- fileNameField.setItems(newItems);
- selectionIndex = oldLength;
- }
- fileNameField.select(selectionIndex);
-
- // resetSelection();
- }
- }
-
- /*
- * Clears the dialog message box
- */
- private void clearErrorMessage() {
- setErrorMessage(null);
- }
-
- protected int getInputMethod() {
- if (useClipboardButton == null) {
- if (initUseClipboard) {
- return CLIPBOARD;
- }
- return FILE;
- }
- if (useClipboardButton.getSelection()) {
- return CLIPBOARD;
- }
- if (useFileButton.getSelection()) {
- return FILE;
- }
- return WORKSPACE;
- }
-
- protected void setInputMethod(int input) {
- switch (input) {
- case WORKSPACE:
- useWorkspaceButton.setSelection(true);
- useClipboardButton.setSelection(false);
- useFileButton.setSelection(false);
- break;
- case CLIPBOARD:
- storeClipboardContents();
-
- useClipboardButton.setSelection(true);
- useFileButton.setSelection(false);
- useWorkspaceButton.setSelection(false);
- break;
- default:
- useFileButton.setSelection(true);
- useWorkspaceButton.setSelection(false);
- useClipboardButton.setSelection(false);
- break;
- }
- updateWidgetEnablements();
- }
-
- private String getAttachmentFilePath() {
- if (fileNameField != null) {
- return fileNameField.getText();
- }
- return null;
- }
-
- public String getAbsoluteAttachmentPath() {
- switch (getInputMethod()) {
- case CLIPBOARD:
- return Messages.AttachmentSourcePage__Clipboard_;
- case SCREENSHOT:
- return Messages.AttachmentSourcePage__Screenshot_;
- case WORKSPACE:
- IResource[] resources = getResources(treeViewer.getSelection());
- if (resources.length > 0 && resources[0].getRawLocation() != null) {
- return resources[0].getRawLocation().toOSString();
- } else {
- return null;
- }
- case FILE:
- default:
- return getAttachmentFilePath();
- }
- }
-
- /*
- * Based on .eclipse.compare.internal.Utilities
- *
- * Convenience method: extract all accessible <code>IResources</code> from
- * given selection. Never returns null.
- */
- public static IResource[] getResources(ISelection selection) {
- ArrayList<IResource> tmp = new ArrayList<IResource>();
- Class<?> type = IResource.class;
- if (selection instanceof IStructuredSelection) {
- Object[] s = ((IStructuredSelection) selection).toArray();
-
- for (Object o : s) {
- IResource resource = null;
- if (type.isInstance(o)) {
- resource = (IResource) o;
-
- } else if (o instanceof ResourceMapping) {
- try {
- ResourceTraversal[] travs = ((ResourceMapping) o).getTraversals(
- ResourceMappingContext.LOCAL_CONTEXT, null);
- if (travs != null) {
- for (ResourceTraversal trav : travs) {
- IResource[] resources = trav.getResources();
- for (IResource resource2 : resources) {
- if (type.isInstance(resource2) && resource2.isAccessible()) {
- tmp.add(resource2);
- }
- }
- }
- }
- } catch (CoreException ex) {
- // TODO handle error
- }
- } else if (o instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) o;
- Object adapter = a.getAdapter(IResource.class);
- if (type.isInstance(adapter)) {
- resource = (IResource) adapter;
- }
- }
-
- if (resource != null && resource.isAccessible()) {
- tmp.add(resource);
- }
- }
- }
-
- return tmp.toArray(new IResource[tmp.size()]);
- }
-
- private void storeClipboardContents() {
- Control c = getControl();
- if (c != null) {
- Clipboard clipboard = new Clipboard(c.getDisplay());
- Object o = clipboard.getContents(TextTransfer.getInstance());
- clipboard.dispose();
- if (o instanceof String) {
- clipboardContents = ((String) o).trim();
- }
- }
- }
-
- public String getClipboardContents() {
- return clipboardContents;
- }
-
- public void setClipboardContents(String attachContents) {
- clipboardContents = attachContents;
- }
-
- public void setUseClipboard(boolean b) {
- if (useClipboardButton != null) {
- useClipboardButton.setSelection(b);
- }
- initUseClipboard = b;
- }
-
- @Override
- protected IDialogSettings getDialogSettings() {
- TasksUiPlugin plugin = TasksUiPlugin.getDefault();
- IDialogSettings settings = plugin.getDialogSettings();
- IDialogSettings section = settings.getSection(DIALOG_SETTINGS);
- if (section == null) {
- section = settings.addNewSection(DIALOG_SETTINGS);
- }
- return section;
- }
-
- public AbstractTaskAttachmentSource getSource() {
- switch (getInputMethod()) {
- case CLIPBOARD:
- return new TaskAttachmentWizard.ClipboardTaskAttachmentSource();
- case WORKSPACE:
- IResource[] resources = getResources(treeViewer.getSelection());
- if (resources.length > 0) {
- return new FileTaskAttachmentSource(resources[0].getLocation().toFile());
- } else {
- return null;
- }
- default: // FILE
- return new FileTaskAttachmentSource(new File(getAttachmentFilePath()));
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java
deleted file mode 100644
index 04c17a240..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/EditRepositoryWizard.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.ui.RefactorRepositoryUrlOperation;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * @author Mik Kersten
- */
-public class EditRepositoryWizard extends Wizard implements INewWizard {
-
- private ITaskRepositoryPage settingsPage;
-
- private final TaskRepository repository;
-
- public EditRepositoryWizard(TaskRepository repository) {
- this.repository = repository;
- setNeedsProgressMonitor(true);
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY_SETTINGS);
- setWindowTitle(Messages.EditRepositoryWizard_Properties_for_Task_Repository);
- }
-
- /**
- * Custom properties should be set on the repository object to ensure they are saved.
- */
- @Override
- public boolean performFinish() {
- if (canFinish()) {
- String oldUrl = repository.getRepositoryUrl();
- String newUrl = settingsPage.getRepositoryUrl();
- if (oldUrl != null && newUrl != null && !oldUrl.equals(newUrl)) {
- TasksUi.getTaskActivityManager().deactivateActiveTask();
-
- RefactorRepositoryUrlOperation operation = new RefactorRepositoryUrlOperation(oldUrl, newUrl);
- try {
- getContainer().run(true, false, operation);
- } catch (InvocationTargetException e) {
- StatusHandler.fail(new Status(IStatus.WARNING, TasksUiPlugin.ID_PLUGIN,
- Messages.EditRepositoryWizard_Failed_to_refactor_repository_urls));
- return false;
- } catch (InterruptedException e) {
- // should not get here
- }
- }
-
- repository.flushAuthenticationCredentials();
-
- if (!repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND)) {
- repository.setRepositoryUrl(newUrl);
- }
- settingsPage.applyTo(repository);
- if (oldUrl != null && newUrl != null && !oldUrl.equals(newUrl)) {
- TasksUiPlugin.getRepositoryManager().notifyRepositoryUrlChanged(repository, oldUrl);
- }
- TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChanged(repository);
- TasksUiPlugin.getExternalizationManager().requestSave();
- return true;
- }
- return false;
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
-
- @Override
- public void addPages() {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind());
- settingsPage = connectorUi.getSettingsPage(repository);
- if (settingsPage instanceof AbstractRepositorySettingsPage) {
- ((AbstractRepositorySettingsPage) settingsPage).setRepository(repository);
- ((AbstractRepositorySettingsPage) settingsPage).setVersion(repository.getVersion());
- }
- settingsPage.setWizard(this);
- addPage(settingsPage);
- }
-
- @Override
- public boolean canFinish() {
- return settingsPage.isPageComplete();
- }
-
- /** public for testing */
- public ITaskRepositoryPage getSettingsPage() {
- return settingsPage;
- }
-
- public TaskRepository getRepository() {
- return repository;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java
deleted file mode 100644
index d498d7502..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/LocalRepositorySettingsPage.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractTaskRepositoryPage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-
-/**
- * A settings page for the local repository properties dialog. Local repositories have no settings, however they may
- * have settings contributed via the taskRepositoryPageContribution.
- *
- * @author David Green
- */
-public class LocalRepositorySettingsPage extends AbstractTaskRepositoryPage {
-
- public LocalRepositorySettingsPage(TaskRepository taskRepository) {
- super(Messages.LocalRepositorySettingsPage_Local_Repository_Settings, Messages.LocalRepositorySettingsPage_Configure_the_local_repository, taskRepository);
- }
-
- @Override
- public String getConnectorKind() {
- return LocalRepositoryConnector.CONNECTOR_KIND;
- }
-
- public String getRepositoryUrl() {
- return LocalRepositoryConnector.REPOSITORY_URL;
- }
-
- @Override
- protected void createSettingControls(Composite parent) {
- // nothing to do, since the local repository has no settings
- }
-
- @Override
- protected IStatus validate() {
- // nothing to do
- return null;
- }
-
- @Override
- protected void createContributionControls(Composite parentControl) {
- super.createContributionControls(parentControl);
- // expand the first contribution since we have no other settings
- Control[] children = parentControl.getChildren();
- if (children.length > 0) {
- if (children[0] instanceof ExpandableComposite) {
- ((ExpandableComposite) children[0]).setExpanded(true);
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/Messages.java
deleted file mode 100644
index baf4bc9de..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/Messages.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.wizards.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String EditRepositoryWizard_Failed_to_refactor_repository_urls;
-
- public static String EditRepositoryWizard_Properties_for_Task_Repository;
-
- public static String AttachmentSourcePage__Clipboard_;
-
- public static String AttachmentSourcePage__Screenshot_;
-
- public static String AttachmentSourcePage_Browse_;
-
- public static String AttachmentSourcePage_Cannot_locate_attachment_file;
-
- public static String AttachmentSourcePage_Clipboard;
-
- public static String AttachmentSourcePage_Clipboard_contains_an_unsupported_data;
-
- public static String AttachmentSourcePage_Clipboard_supports_text_and_image_attachments_only;
-
- public static String AttachmentSourcePage_File;
-
- public static String AttachmentSourcePage_No_file_name;
-
- public static String AttachmentSourcePage_Select_attachment_source;
-
- public static String AttachmentSourcePage_Select_the_location_of_the_attachment;
-
- public static String AttachmentSourcePage_Workspace;
-
- public static String NewQueryWizard_New_Repository_Query;
-
- public static String NewTaskWizard_New_Task;
-
- public static String NewWebTaskPage_Create_via_Web_Browser;
-
- public static String NewWebTaskPage_New_Task;
-
- public static String NewWebTaskPage_Once_submitted_synchronize_queries_or_add_the_task_to_a_category;
-
- public static String NewWebTaskPage_This_will_open_a_web_browser_that_can_be_used_to_create_a_new_task;
-
- public static String AttachmentPreviewPage_A_preview_the_type_X_is_currently_not_available;
-
- public static String AttachmentPreviewPage_Attachment_Preview;
-
- public static String AttachmentPreviewPage_Could_not_create_preview;
-
- public static String AttachmentPreviewPage_Preparing_preview;
-
- public static String AttachmentPreviewPage_Review_the_attachment_before_submitting;
-
- public static String AttachmentPreviewPage_Run_in_background;
-
- public static String SelectRepositoryConnectorPage_discoveryProblemMessage;
-
- public static String SelectRepositoryConnectorPage_discoveryProblemTitle;
-
- public static String SelectRepositoryConnectorPage_activateDiscovery;
-
- public static String SelectRepositoryConnectorPage_Select_a_task_repository_type;
-
- public static String SelectRepositoryConnectorPage_You_can_connect_to_an_existing_account_using_one_of_the_installed_connectors;
-
- public static String SelectRepositoryPage_Add_new_repositories_using_the_X_view;
-
- public static String SelectRepositoryPage_Select_a_repository;
-
- public static String TaskAttachmentWizard_Add_Attachment;
-
- public static String TaskAttachmentWizard_Attach_Screenshot;
-
- public static String TaskAttachmentWizard_Attaching_context;
-
- public static String TaskAttachmentWizard_Attachment_Failed;
-
- public static String TaskAttachmentWizard_Screenshot;
-
- public static String TaskDataExportWizard_Export;
-
- public static String TaskDataExportWizard_export_failed;
-
- public static String TaskDataExportWizardPage_Browse_;
-
- public static String TaskDataExportWizardPage_Export_Mylyn_Task_Data;
-
- public static String TaskDataExportWizardPage_File;
-
- public static String TaskDataExportWizardPage_Folder;
-
- public static String TaskDataExportWizardPage_Folder_Selection;
-
- public static String TaskDataExportWizardPage_Please_choose_an_export_destination;
-
- public static String TaskDataExportWizardPage_Specify_the_destination_folder_for_task_data;
-
- public static String TaskDataImportWizard_confirm_overwrite;
-
- public static String TaskDataImportWizard_could_not_be_found;
-
- public static String TaskDataImportWizard_existing_task_data_about_to_be_erased_proceed;
-
- public static String TaskDataImportWizard_File_not_found;
-
- public static String TaskDataImportWizard_Import;
-
- public static String TaskDataImportWizard_Import_Error;
-
- public static String TaskDataImportWizard_Importing_Data;
-
- public static String TaskDataImportWizard_task_data_import_failed;
-
- public static String TaskDataImportWizardPage_Restore_tasks_from_history;
-
- public static String TaskDataImportWizardPage_Browse_;
-
- public static String TaskDataImportWizardPage_From_snapshot;
-
- public static String TaskDataImportWizardPage_From_zip_file;
-
- public static String TaskDataImportWizardPage_Import_method_backup;
-
- public static String TaskDataImportWizardPage_Import_method_zip;
-
- public static String TaskDataImportWizardPage_Import_Settings_saved;
-
- public static String TaskDataImportWizardPage_Import_Source_zip_file_setting;
-
- public static String TaskDataImportWizardPage_Importing_overwrites_current_tasks_and_repositories;
-
- public static String TaskDataImportWizardPage__unspecified_;
-
- public static String TaskDataImportWizardPage_Zip_File_Selection;
-
- public static String AbstractRepositoryQueryPage_A_category_with_this_name_already_exists;
-
- public static String AbstractRepositoryQueryPage_Enter_query_parameters;
-
- public static String AbstractRepositoryQueryPage_If_attributes_are_blank_or_stale_press_the_Update_button;
-
- public static String AbstractRepositoryQueryPage_Please_specify_a_title_for_the_query;
-
- public static String AbstractRepositoryQueryPage_A_query_with_this_name_already_exists;
-
- public static String AbstractRepositorySettingsPage_Additional_Settings;
-
- public static String AbstractRepositorySettingsPage_Anonymous_Access;
-
- public static String AbstractRepositorySettingsPage_Authentication_credentials_are_valid;
-
- public static String AbstractRepositorySettingsPage_Change_account_settings;
-
- public static String AbstractRepositorySettingsPage_Change_Settings;
-
- public static String AbstractRepositorySettingsPage_Character_encoding;
-
- public static String AbstractRepositorySettingsPage_Create_new_account;
-
- public static String AbstractRepositorySettingsPage_Default__;
-
- public static String AbstractRepositorySettingsPage_Disconnected;
-
- public static String AbstractRepositorySettingsPage_Enable_http_authentication;
-
- public static String AbstractRepositorySettingsPage_Enable_proxy_authentication;
-
- public static String AbstractRepositorySettingsPage_Enter_a_valid_server_url;
-
- public static String AbstractRepositorySettingsPage_Http_Authentication;
-
- public static String AbstractRepositorySettingsPage_Internal_error_validating_repository;
-
- public static String AbstractRepositorySettingsPage_Label_;
-
- public static String AbstractRepositorySettingsPage_Other;
-
- public static String AbstractRepositorySettingsPage_Password_;
-
- public static String AbstractRepositorySettingsPage_Problems_encountered_determining_available_charsets;
-
- public static String AbstractRepositorySettingsPage_Proxy_host_address_;
-
- public static String AbstractRepositorySettingsPage_Proxy_host_port_;
-
- public static String AbstractRepositorySettingsPage_Proxy_Server_Configuration;
-
- public static String AbstractRepositorySettingsPage_Repository_already_exists;
-
- public static String AbstractRepositorySettingsPage_Repository_is_valid;
-
- public static String AbstractRepositorySettingsPage_Repository_url_is_invalid;
-
- public static String AbstractRepositorySettingsPage_Repository_user_name_and_password_must_not_be_blank;
-
- public static String AbstractRepositorySettingsPage_Save_Password;
-
- public static String AbstractRepositorySettingsPage_Server_;
-
- public static String AbstractRepositorySettingsPage_Unable_to_authenticate_with_repository;
-
- public static String AbstractRepositorySettingsPage_Use_global_Network_Connections_preferences;
-
- public static String AbstractRepositorySettingsPage_User_ID_;
-
- public static String AbstractRepositorySettingsPage_Validate_Settings;
-
- public static String AbstractRepositorySettingsPage_Validating_server_settings;
-
- public static String NewTaskWizard_Create_Task;
-
- public static String NewTaskWizard_Error_creating_new_task;
-
- public static String NewTaskWizard_Failed_to_create_new_task_;
-
- public static String NewWebTaskWizard_New_Task;
-
- public static String NewWebTaskWizard_This_connector_does_not_provide_a_rich_task_editor_for_creating_tasks;
-
- public static String RepositoryQueryWizard_Edit_Repository_Query;
-
- public static String TaskAttachmentPage_ATTACHE_CONTEXT;
-
- public static String TaskAttachmentPage_Attachment_Details;
-
- public static String TaskAttachmentPage_Comment;
-
- public static String TaskAttachmentPage_Content_Type;
-
- public static String TaskAttachmentPage_Description;
-
- public static String TaskAttachmentPage_Enter_a_description;
-
- public static String TaskAttachmentPage_Enter_a_file_name;
-
- public static String TaskAttachmentPage_File;
-
- public static String TaskAttachmentPage_Patch;
-
- public static String TaskAttachmentPage_Verify_the_content_type_of_the_attachment;
-
- public static String AbstractTaskRepositoryPage_Validation_failed;
-
- public static String LocalRepositorySettingsPage_Configure_the_local_repository;
-
- public static String LocalRepositorySettingsPage_Local_Repository_Settings;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/MultiRepositoryAwareWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/MultiRepositoryAwareWizard.java
deleted file mode 100644
index 5b04dd860..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/MultiRepositoryAwareWizard.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Brock Janiczak - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * @author Mik Kersten
- * @author Brock Janiczak
- */
-public class MultiRepositoryAwareWizard extends Wizard implements INewWizard {
-
- private final SelectRepositoryPage selectRepositoryPage;
-
- public MultiRepositoryAwareWizard(SelectRepositoryPage page, String title) {
- selectRepositoryPage = page;
- setForcePreviousAndNextButtons(true);
- setNeedsProgressMonitor(true);
- setWindowTitle(title);
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- // ignore
- }
-
- @Override
- public void addPages() {
- addPage(selectRepositoryPage);
- }
-
- @Override
- public boolean canFinish() {
- return selectRepositoryPage.canFinish();
- }
-
- @Override
- public boolean performFinish() {
- return selectRepositoryPage.performFinish();
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewAttachmentWizardDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewAttachmentWizardDialog.java
deleted file mode 100644
index a6ddbbfee..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewAttachmentWizardDialog.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author Jeff Pound
- */
-public class NewAttachmentWizardDialog extends WizardDialog {
-
- private static final String ATTACHMENT_WIZARD_SETTINGS_SECTION = "PatchWizard"; //$NON-NLS-1$
-
- public NewAttachmentWizardDialog(Shell parent, IWizard wizard, boolean modal) {
- super(parent, wizard);
-
- if (modal) {
- setShellStyle(getShellStyle() | SWT.RESIZE);
- } else {
- setShellStyle(SWT.MODELESS | SWT.CLOSE | SWT.TITLE | SWT.BORDER | SWT.RESIZE);
- }
- setMinimumPageSize(600, 300);
- setPageSize(600, 300);
- setBlockOnOpen(modal);
- }
-
- @Override
- protected IDialogSettings getDialogBoundsSettings() {
- IDialogSettings settings = TasksUiPlugin.getDefault().getDialogSettings();
- IDialogSettings section = settings.getSection(ATTACHMENT_WIZARD_SETTINGS_SECTION);
- if (section == null) {
- section = settings.addNewSection(ATTACHMENT_WIZARD_SETTINGS_SECTION);
- }
- return section;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalCategoryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalCategoryWizard.java
deleted file mode 100644
index 2e0289bc2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalCategoryWizard.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewCategoryAction;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * @author Mik Kersten
- */
-public class NewLocalCategoryWizard extends Wizard implements INewWizard {
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- setForcePreviousAndNextButtons(false);
- }
-
- @Override
- public boolean canFinish() {
- return true;
- }
-
- @Override
- public boolean performFinish() {
- new NewCategoryAction().run();
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java
deleted file mode 100644
index 39e54183c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * @author Rob Elves
- * @author Steffen Pingel
- */
-public class NewLocalTaskWizard extends Wizard implements INewWizard {
-
- private final ITaskMapping taskSelection;
-
- public NewLocalTaskWizard(ITaskMapping taskSelection) {
- this.taskSelection = taskSelection;
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- setNeedsProgressMonitor(true);
- }
-
- public NewLocalTaskWizard() {
- this(null);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- setForcePreviousAndNextButtons(false);
- }
-
- @Override
- public void addPages() {
- // ignore
- }
-
- @Override
- public boolean canFinish() {
- return true;
- }
-
- @Override
- public boolean performFinish() {
- LocalTask task = TasksUiInternal.createNewLocalTask(null);
- if (taskSelection != null) {
- if (taskSelection.getSummary() != null) {
- task.setSummary(taskSelection.getSummary());
- }
- if (taskSelection.getDescription() != null) {
- task.setNotes(taskSelection.getDescription());
- }
- }
- TasksUiUtil.openTask(task);
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewQueryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewQueryWizard.java
deleted file mode 100644
index 866abe6dc..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewQueryWizard.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-
-/**
- * @author Mik Kersten
- * @author Eugene Kuleshov
- */
-public class NewQueryWizard extends MultiRepositoryAwareWizard {
-
- public NewQueryWizard() {
- super(new SelectRepositoryPageForNewQuery(), Messages.NewQueryWizard_New_Repository_Query);
- }
-
- private static final class SelectRepositoryPageForNewQuery extends SelectRepositoryPage {
- public SelectRepositoryPageForNewQuery() {
- super(ITaskRepositoryFilter.CAN_QUERY);
- }
-
- @Override
- protected IWizard createWizard(TaskRepository taskRepository) {
- AbstractRepositoryConnectorUi repositoryUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
- return repositoryUi.getQueryWizard(taskRepository, null);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java
deleted file mode 100644
index e9ee9ea05..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Peter Stibrany - fix for bug 247077
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class NewRepositoryWizard extends Wizard implements INewWizard {
-
- private AbstractRepositoryConnector connector;
-
- /**
- * If not null, indicates that the wizard will initially jump to a specific connector page
- */
- private final String connectorKind;
-
- private TaskRepository taskRepository;
-
- private SelectRepositoryConnectorPage selectConnectorPage;
-
- private ITaskRepositoryPage settingsPage;
-
- private String lastConnectorKind;
-
- public NewRepositoryWizard() {
- this(null);
- }
-
- public NewRepositoryWizard(String connectorKind) {
- this.connectorKind = connectorKind;
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- setForcePreviousAndNextButtons(connectorKind == null);
- setNeedsProgressMonitor(true);
- setWindowTitle(AddRepositoryAction.TITLE);
- }
-
- @Override
- public void addPages() {
- if (connectorKind != null) {
- connector = TasksUi.getRepositoryManager().getRepositoryConnector(connectorKind);
- updateSettingsPage();
- addPage(settingsPage);
- } else {
- selectConnectorPage = new SelectRepositoryConnectorPage();
- addPage(selectConnectorPage);
- }
- }
-
- @Override
- public boolean canFinish() {
- return (selectConnectorPage == null || selectConnectorPage.isPageComplete())
- && !(getContainer().getCurrentPage() == selectConnectorPage) && settingsPage != null
- && settingsPage.isPageComplete();
- }
-
- @Override
- public IWizardPage getNextPage(IWizardPage page) {
- if (page == selectConnectorPage) {
- connector = selectConnectorPage.getConnector();
- updateSettingsPage();
- return settingsPage;
- }
- return super.getNextPage(page);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
-
- @Override
- public boolean performFinish() {
- if (canFinish()) {
- taskRepository = new TaskRepository(connector.getConnectorKind(), settingsPage.getRepositoryUrl());
- settingsPage.applyTo(taskRepository);
- TasksUi.getRepositoryManager().addRepository(taskRepository);
- return true;
- }
- return false;
- }
-
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
-
- private void updateSettingsPage() {
- assert connector != null;
- if (!connector.getConnectorKind().equals(lastConnectorKind)) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(connector.getConnectorKind());
- settingsPage = connectorUi.getSettingsPage(null);
- settingsPage.setWizard(this);
- lastConnectorKind = connector.getConnectorKind();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskPage.java
deleted file mode 100644
index 4e56a55ee..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskPage.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-
-/**
- * @author Mik Kersten
- * @author Eugene Kuleshov
- */
-public class NewTaskPage extends SelectRepositoryPage {
-
- private final ITaskMapping taskSelection;
-
- public NewTaskPage(ITaskRepositoryFilter taskRepositoryFilter, ITaskMapping taskSelection) {
- super(taskRepositoryFilter);
- this.taskSelection = taskSelection;
- }
-
- @Override
- protected IWizard createWizard(TaskRepository taskRepository) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
- return connectorUi.getNewTaskWizard(taskRepository, taskSelection);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskWizardInternal.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskWizardInternal.java
deleted file mode 100644
index c3f46c148..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewTaskWizardInternal.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.ui.INewWizard;
-
-/**
- * @author Mik Kersten
- * @author Eugene Kuleshov
- * @author Steffen Pingel
- */
-public class NewTaskWizardInternal extends MultiRepositoryAwareWizard implements INewWizard {
-
- public NewTaskWizardInternal(ITaskMapping taskSelection) {
- super(new NewTaskPage(ITaskRepositoryFilter.CAN_CREATE_NEW_TASK, taskSelection),
- Messages.NewTaskWizard_New_Task);
- setNeedsProgressMonitor(true);
- }
-
- /**
- * Constructs a new task wizard with an empty selection. This constructor is used by the
- * <code>org.eclipse.ui.newWizards</code> extension.
- */
- public NewTaskWizardInternal() {
- this(null);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewWebTaskPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewWebTaskPage.java
deleted file mode 100644
index def044a58..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewWebTaskPage.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Wizard page for creating new tickets through a web browser.
- *
- * @author Eugene Kuleshov
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class NewWebTaskPage extends WizardPage {
-
- public NewWebTaskPage(ITaskMapping taskSelection) {
- super(Messages.NewWebTaskPage_New_Task);
-
- setTitle(Messages.NewWebTaskPage_Create_via_Web_Browser);
- setDescription(Messages.NewWebTaskPage_This_will_open_a_web_browser_that_can_be_used_to_create_a_new_task);
-
- // TODO display selection
- }
-
- public void createControl(Composite parent) {
- Text text = new Text(parent, SWT.WRAP);
- text.setEditable(false);
- text.setText(Messages.NewWebTaskPage_Once_submitted_synchronize_queries_or_add_the_task_to_a_category);
- setControl(text);
- Dialog.applyDialogFont(text);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryConnectorPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryConnectorPage.java
deleted file mode 100644
index 581fefc22..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryConnectorPage.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * @author Mik Kersten
- * @author David Green
- */
-public class SelectRepositoryConnectorPage extends WizardPage {
-
- private TableViewer viewer;
-
- private AbstractRepositoryConnector connector;
-
- static class RepositoryContentProvider implements IStructuredContentProvider {
-
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- }
-
- public void dispose() {
- }
-
- public Object[] getElements(Object parent) {
- List<AbstractRepositoryConnector> userManagedRepositories = new ArrayList<AbstractRepositoryConnector>();
- for (AbstractRepositoryConnector connector : TasksUi.getRepositoryManager().getRepositoryConnectors()) {
- if (connector.isUserManaged()) {
- userManagedRepositories.add(connector);
- }
- }
-
- return userManagedRepositories.toArray();
- }
- }
-
- public SelectRepositoryConnectorPage() {
- super(Messages.SelectRepositoryConnectorPage_Select_a_task_repository_type);
- setTitle(Messages.SelectRepositoryConnectorPage_Select_a_task_repository_type);
- setDescription(Messages.SelectRepositoryConnectorPage_You_can_connect_to_an_existing_account_using_one_of_the_installed_connectors);
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return connector != null;
- }
-
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
- GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 3).applyTo(container);
-
- viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- viewer.setContentProvider(new RepositoryContentProvider());
- viewer.setSorter(new TaskRepositoriesSorter());
- viewer.setLabelProvider(new TaskRepositoryLabelProvider());
- viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- if (selection.getFirstElement() instanceof AbstractRepositoryConnector) {
- connector = (AbstractRepositoryConnector) selection.getFirstElement();
- setPageComplete(true);
- }
- }
-
- });
-
- viewer.addOpenListener(new IOpenListener() {
- public void open(OpenEvent event) {
- getContainer().showPage(getNextPage());
- }
- });
- GridDataFactory.fillDefaults().grab(true, true).applyTo(viewer.getControl());
-
- // add a hyperlink for connector discovery if it's available and enabled.
- ICommandService service = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
- IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
- if (service != null && handlerService != null) {
- // we integrate with discovery via a well-known command, which when invoked launches the discovery wizard
- final Command discoveryWizardCommand = service.getCommand("org.eclipse.mylyn.discovery.ui.discoveryWizardCommand"); //$NON-NLS-1$
- if (discoveryWizardCommand != null) {
- // update enabled state in case something has changed (ProxyHandler caches state)
- // XXX remove reflection when we no longer support 3.3
- try {
- Command.class.getDeclaredMethod("setEnabled", Object.class).invoke(discoveryWizardCommand, //$NON-NLS-1$
- createEvaluationContext(handlerService));
- } catch (InvocationTargetException e1) {
- Throwable cause = e1.getCause();
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "unexpected exception", cause)); //$NON-NLS-1$
- } catch (Exception e1) {
- // expected on Eclipse 3.3
- }
-
- if (discoveryWizardCommand.isEnabled()) {
- Button discoveryButton = new Button(container, SWT.PUSH);
- GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.CENTER).applyTo(discoveryButton);
-
- discoveryButton.setText(Messages.SelectRepositoryConnectorPage_activateDiscovery);
- discoveryButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- widgetDefaultSelected(event);
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent event) {
- IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(
- IHandlerService.class);
- try {
- discoveryWizardCommand.executeWithChecks(createExecutionEvent(discoveryWizardCommand,
- handlerService));
- } catch (Exception e) {
- IStatus status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- Messages.SelectRepositoryConnectorPage_discoveryProblemMessage,
- new Object[] { e.getMessage() }), e);
- TasksUiInternal.logAndDisplayStatus(
- Messages.SelectRepositoryConnectorPage_discoveryProblemTitle, status);
- }
- }
-
- });
- }
- }
- }
-
- Dialog.applyDialogFont(container);
- setControl(container);
- }
-
- private ExecutionEvent createExecutionEvent(Command command, IHandlerService handlerService) {
- return new ExecutionEvent(command, Collections.emptyMap(), null, createEvaluationContext(handlerService));
- }
-
- private EvaluationContext createEvaluationContext(IHandlerService handlerService) {
- EvaluationContext evaluationContext = new EvaluationContext(handlerService.getCurrentState(), Platform.class);
- // must specify this variable otherwise the PlatformPropertyTester won't work
- evaluationContext.addVariable("platform", Platform.class); //$NON-NLS-1$
- return evaluationContext;
- }
-
- public AbstractRepositoryConnector getConnector() {
- return connector;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java
deleted file mode 100644
index fe4ab7488..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Brock Janiczak - improvements
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.wizards;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardNode;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardSelectionPage;
-import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- * @author Brock Janiczak
- * @author Steffen Pingel
- * @author Eugene Kuleshov
- */
-public abstract class SelectRepositoryPage extends WizardSelectionPage {
-
- private TableViewer viewer;
-
- protected MultiRepositoryAwareWizard wizard;
-
- private List<TaskRepository> repositories = new ArrayList<TaskRepository>();
-
- private final ITaskRepositoryFilter taskRepositoryFilter;
-
- class RepositoryContentProvider implements IStructuredContentProvider {
-
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- }
-
- public void dispose() {
- }
-
- public Object[] getElements(Object parent) {
- return repositories.toArray();
- }
- }
-
- public SelectRepositoryPage(ITaskRepositoryFilter taskRepositoryFilter) {
- super(Messages.SelectRepositoryPage_Select_a_repository);
-
- setTitle(Messages.SelectRepositoryPage_Select_a_repository);
- setDescription(MessageFormat.format(Messages.SelectRepositoryPage_Add_new_repositories_using_the_X_view,
- org.eclipse.mylyn.internal.tasks.ui.Messages.TasksUiPlugin_Task_Repositories));
-
- this.taskRepositoryFilter = taskRepositoryFilter;
- this.repositories = getTaskRepositories();
- }
-
- public List<TaskRepository> getTaskRepositories() {
- List<TaskRepository> repositories = new ArrayList<TaskRepository>();
- TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
- for (AbstractRepositoryConnector connector : repositoryManager.getRepositoryConnectors()) {
- Set<TaskRepository> connectorRepositories = repositoryManager.getRepositories(connector.getConnectorKind());
- for (TaskRepository repository : connectorRepositories) {
- if (taskRepositoryFilter.accept(repository, connector)) {
- repositories.add(repository);
- }
- }
- }
- return repositories;
- }
-
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout(1, true);
- container.setLayout(layout);
-
- Table table = createTableViewer(container);
- viewer.setSorter(new TaskRepositoriesSorter());
-
- GridData gridData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL);
- table.setLayoutData(gridData);
-
- final AddRepositoryAction action = new AddRepositoryAction();
- action.setPromptToAddQuery(false);
-
- Button button = new Button(container, SWT.NONE);
- button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
- button.setText(AddRepositoryAction.TITLE);
- button.setEnabled(action.isEnabled());
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- TaskRepository taskRepository = action.showWizard();
- if (taskRepository != null) {
- SelectRepositoryPage.this.repositories = getTaskRepositories();
- viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());
- viewer.setSelection(new StructuredSelection(taskRepository));
- }
- }
- });
-
- Dialog.applyDialogFont(container);
- setControl(container);
- }
-
- protected Table createTableViewer(Composite container) {
- viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- viewer.setContentProvider(new RepositoryContentProvider());
- // viewer.setLabelProvider(new TaskRepositoryLabelProvider());
- viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
- PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
- viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors());
-
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- if (selection.getFirstElement() instanceof TaskRepository) {
- setSelectedNode(new CustomWizardNode((TaskRepository) selection.getFirstElement()));
- setPageComplete(true);
- } else {
- setPageComplete(false);
- }
- }
- });
-
- TaskRepository selectedRepository = TasksUiUtil.getSelectedRepository(null);
- if (selectedRepository != null) {
- viewer.setSelection(new StructuredSelection(selectedRepository));
- } else {
- TaskRepository localRepository = TasksUi.getRepositoryManager().getRepository(
- LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL);
- viewer.setSelection(new StructuredSelection(localRepository));
- }
-
- viewer.addOpenListener(new IOpenListener() {
-
- public void open(OpenEvent event) {
- if (canFlipToNextPage()) {
- getContainer().showPage(getNextPage());
- } else if (canFinish()) {
- if (getWizard().performFinish()) {
- ((WizardDialog) getContainer()).close();
- }
- }
- }
- });
-
- viewer.getTable().showSelection();
- viewer.getTable().setFocus();
- return viewer.getTable();
- }
-
- protected abstract IWizard createWizard(TaskRepository taskRepository);
-
- @Override
- public boolean canFlipToNextPage() {
- return getSelectedNode() != null && getNextPage() != null;
- }
-
- public boolean canFinish() {
- return getSelectedNode() != null && getNextPage() == null;
- }
-
- public boolean performFinish() {
- if (getSelectedNode() == null || getNextPage() != null) {
- // finish event will get forwarded to nested wizard
- // by container
- return false;
- }
-
- return getSelectedNode().getWizard().performFinish();
- }
-
- private class CustomWizardNode implements IWizardNode {
-
- private final TaskRepository repository;
-
- private IWizard wizard;
-
- public CustomWizardNode(TaskRepository repository) {
- this.repository = repository;
- }
-
- public void dispose() {
- if (wizard != null) {
- wizard.dispose();
- }
- }
-
- public Point getExtent() {
- return new Point(-1, -1);
- }
-
- public IWizard getWizard() {
- if (wizard == null) {
- wizard = SelectRepositoryPage.this.createWizard(repository);
- if (wizard != null) {
- wizard.setContainer(getContainer());
- }
- }
- return wizard;
- }
-
- public boolean isContentCreated() {
- return wizard != null;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof CustomWizardNode)) {
- return false;
- }
- CustomWizardNode that = (CustomWizardNode) obj;
- if (this == that) {
- return true;
- }
-
- return this.repository.getConnectorKind().equals(that.repository.getConnectorKind())
- && this.repository.getRepositoryUrl().equals(that.repository.getRepositoryUrl());
- }
-
- @Override
- public int hashCode() {
- return 31 * this.repository.getRepositoryUrl().hashCode() + this.repository.getConnectorKind().hashCode();
- }
-
- }
-
- /**
- * Public for testing.
- */
- public TableViewer getViewer() {
- return viewer;
- }
-
- /**
- * Public for testing.
- */
- public List<TaskRepository> getRepositories() {
- return repositories;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskAttachmentWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskAttachmentWizard.java
deleted file mode 100644
index 7344b8b09..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskAttachmentWizard.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-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.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.ScreenshotCreationPage;
-import org.eclipse.mylyn.internal.tasks.core.sync.SubmitTaskAttachmentJob;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJob;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJobEvent;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJobListener;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.ImageLoader;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A wizard to add a new attachment to a task report.
- *
- * @since 3.0
- * @author Steffen Pingel
- */
-public class TaskAttachmentWizard extends Wizard {
-
- static class ClipboardTaskAttachmentSource extends AbstractTaskAttachmentSource {
-
- private byte[] data;
-
- public static boolean isSupportedType(Display display) {
- Clipboard clipboard = new Clipboard(display);
- TransferData[] types = clipboard.getAvailableTypes();
- for (TransferData transferData : types) {
- List<Transfer> transfers = getTransfers();
- for (Transfer transfer : transfers) {
- if (transfer.isSupportedType(transferData)) {
- return true;
- }
- }
- }
- return false;
- }
-
- private static List<Transfer> transfers;
-
- private static List<Transfer> getTransfers() {
- if (transfers != null) {
- return transfers;
- }
-
- transfers = new ArrayList<Transfer>();
- try {
- Class<?> clazz = Class.forName("org.eclipse.swt.dnd.ImageTransfer"); //$NON-NLS-1$
- Method method = clazz.getMethod("getInstance"); //$NON-NLS-1$
- if (method != null) {
- transfers.add((Transfer) method.invoke(null));
- }
- } catch (Exception e) {
- // ignore
- } catch (LinkageError e) {
- // ignore
- }
- transfers.add(TextTransfer.getInstance());
- return transfers;
- }
-
- private Object contents;
-
- public ClipboardTaskAttachmentSource() {
- BusyIndicator.showWhile(PlatformUI.getWorkbench().getDisplay(), new Runnable() {
- public void run() {
- Clipboard clipboard = new Clipboard(PlatformUI.getWorkbench().getDisplay());
- List<Transfer> transfers = getTransfers();
- for (Transfer transfer : transfers) {
- contents = clipboard.getContents(transfer);
- if (contents != null) {
- break;
- }
- }
- clipboard.dispose();
- }
- });
- }
-
- @Override
- public InputStream createInputStream(IProgressMonitor monitor) throws CoreException {
- byte[] bytes = getData();
- if (bytes != null) {
- return new ByteArrayInputStream(data);
- }
- throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Invalid content type.")); //$NON-NLS-1$
- }
-
- @Override
- public String getContentType() {
- if (contents instanceof String) {
- return "text/plain"; //$NON-NLS-1$
- } else if (contents instanceof ImageData) {
- return "image/png"; //$NON-NLS-1$
- }
- return "application/octet-stream"; //$NON-NLS-1$
- }
-
- @Override
- public String getDescription() {
- return null;
- }
-
- @Override
- public long getLength() {
- byte[] bytes = getData();
- return (bytes != null) ? bytes.length : -1;
- }
-
- private byte[] getData() {
- if (data == null) {
- if (contents instanceof String) {
- data = ((String) contents).getBytes();
- } else if (contents instanceof ImageData) {
- ImageLoader loader = new ImageLoader();
- loader.data = new ImageData[] { (ImageData) contents };
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- loader.save(out, SWT.IMAGE_PNG);
- data = out.toByteArray();
- }
- }
- return data;
- }
-
- @Override
- public String getName() {
- if (contents instanceof String) {
- return "clipboard.txt"; //$NON-NLS-1$
- } else if (contents instanceof ImageData) {
- return "clipboard.png"; //$NON-NLS-1$
- }
- return ""; //$NON-NLS-1$
- }
-
- @Override
- public boolean isLocal() {
- return true;
- }
-
- };
-
- static class ImageSource extends AbstractTaskAttachmentSource {
-
- private File file;
-
- private final ScreenshotCreationPage page;
-
- public ImageSource(ScreenshotCreationPage page) {
- this.page = page;
- }
-
- @Override
- public InputStream createInputStream(IProgressMonitor monitor) throws CoreException {
- try {
- if (file == null || page.isImageDirty()) {
- Image image = page.createImage();
- page.setImageDirty(false);
- try {
- file = File.createTempFile("screenshot", ".png"); //$NON-NLS-1$ //$NON-NLS-2$
- file.deleteOnExit();
- ImageLoader loader = new ImageLoader();
- loader.data = new ImageData[] { image.getImageData() };
- // TODO create image in memory?
- FileOutputStream out = new FileOutputStream(file);
- try {
- loader.save(out, SWT.IMAGE_PNG);
- } finally {
- out.close();
- }
- } finally {
- image.dispose();
- }
- }
- return new FileInputStream(file);
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- }
-
- @Override
- public String getContentType() {
- return "image/png"; //$NON-NLS-1$
- }
-
- @Override
- public String getDescription() {
- return Messages.TaskAttachmentWizard_Screenshot;
- }
-
- @Override
- public long getLength() {
- return (file != null) ? file.length() : -1;
- }
-
- @Override
- public String getName() {
- return "screenshot.png"; //$NON-NLS-1$
- }
-
- @Override
- public boolean isLocal() {
- return true;
- }
-
- }
-
- public enum Mode {
- DEFAULT, SCREENSHOT
- }
-
- private static final String DIALOG_SETTINGS_KEY = "AttachmentWizard"; //$NON-NLS-1$
-
- private final AbstractRepositoryConnector connector;
-
- private IWizardPage editPage;
-
- private Mode mode = Mode.DEFAULT;
-
- private final TaskAttachmentModel model;
-
- private AttachmentPreviewPage previewPage;
-
- public TaskAttachmentWizard(TaskRepository taskRepository, ITask task, TaskAttribute taskAttachment) {
- Assert.isNotNull(taskRepository);
- Assert.isNotNull(taskAttachment);
- this.model = new TaskAttachmentModel(taskRepository, task, taskAttachment);
- this.connector = TasksUiPlugin.getRepositoryManager().getRepositoryConnector(taskRepository.getConnectorKind());
- setMode(Mode.DEFAULT);
- setNeedsProgressMonitor(true);
- setDialogSettings(TasksUiPlugin.getDefault().getDialogSettings().getSection(DIALOG_SETTINGS_KEY));
- }
-
- @Override
- public void addPages() {
- if (model.getSource() == null) {
- if (mode == Mode.SCREENSHOT) {
- ScreenshotCreationPage page = new ScreenshotCreationPage();
- ImageSource source = new ImageSource(page);
- model.setSource(source);
- model.setContentType(source.getContentType());
- addPage(page);
- } else {
- addPage(new AttachmentSourcePage(model));
- }
- }
-
- previewPage = new AttachmentPreviewPage(model);
- addPage(previewPage);
-
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(model.getTaskRepository()
- .getConnectorKind());
- editPage = connectorUi.getTaskAttachmentPage(model);
- addPage(editPage);
-
- }
-
- public Mode getMode() {
- return mode;
- }
-
- public TaskAttachmentModel getModel() {
- return model;
- }
-
- public AbstractTaskAttachmentSource getSource() {
- return model.getSource();
- }
-
- private void handleDone(SubmitJob job) {
- if (job.getStatus() != null) {
- TasksUiInternal.displayStatus(Messages.TaskAttachmentWizard_Attachment_Failed, job.getStatus());
- }
- }
-
- @Override
- public boolean canFinish() {
- // InputAttachmentSourcePage relies on getNextPage() being called, do not allow wizard to finish on first page
- if (getContainer() != null && getContainer().getCurrentPage() instanceof AttachmentSourcePage) {
- return false;
- }
- return super.canFinish();
- }
-
- @Override
- public boolean performFinish() {
- SubmitJob job = TasksUiInternal.getJobFactory()
- .createSubmitTaskAttachmentJob(connector, model.getTaskRepository(), model.getTask(),
- model.getSource(), model.getComment(), model.getAttribute());
- final boolean attachContext = model.getAttachContext();
- job.addSubmitJobListener(new SubmitJobListener() {
- @Override
- public void done(SubmitJobEvent event) {
- // ignore
- }
-
- @Override
- public void taskSubmitted(SubmitJobEvent event, IProgressMonitor monitor) throws CoreException {
- if (attachContext) {
- monitor.subTask(Messages.TaskAttachmentWizard_Attaching_context);
- AttachmentUtil.postContext(connector, model.getTaskRepository(), model.getTask(), null, null,
- monitor);
- }
- }
-
- @Override
- public void taskSynchronized(SubmitJobEvent event, IProgressMonitor monitor) throws CoreException {
- // ignore
- }
- });
- if (previewPage.runInBackground()) {
- runInBackground(job);
- return false;
- } else {
- return runInWizard(job);
- }
- }
-
- private void runInBackground(final SubmitJob job) {
- getContainer().getShell().setVisible(false);
- job.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (job.getStatus() != null) {
- getContainer().getShell().setVisible(true);
- }
- handleDone(job);
- if (job.getStatus() == null) {
- getContainer().getShell().close();
- }
- }
- });
- }
- });
- job.schedule();
- }
-
- private boolean runInWizard(final SubmitJob job) {
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- if (((SubmitTaskAttachmentJob) job).run(monitor) == Status.CANCEL_STATUS) {
- throw new InterruptedException();
- }
- }
- });
- handleDone(job);
- return job.getStatus() == null;
- } catch (InvocationTargetException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Unexpected error", e)); //$NON-NLS-1$
- return false;
- } catch (InterruptedException e) {
- // canceled
- return false;
- }
- }
-
- public void setMode(Mode mode) {
- this.mode = mode;
- if (mode == Mode.SCREENSHOT) {
- setWindowTitle(Messages.TaskAttachmentWizard_Attach_Screenshot);
- setDefaultPageImageDescriptor(CommonImages.BANNER_SCREENSHOT);
- } else {
- setWindowTitle(Messages.TaskAttachmentWizard_Add_Attachment);
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- }
- }
-
- public void setSource(AbstractTaskAttachmentSource source) {
- this.model.setSource(source);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java
deleted file mode 100644
index a0284d17a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.internal.tasks.ui.TaskListBackupManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDataExportOperation;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.ui.IExportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * Wizard for exporting tasklist data files to the file system. This wizard uses a single page: TaskDataExportWizardPage
- *
- * @author Wesley Coelho
- * @author Mik Kersten
- */
-public class TaskDataExportWizard extends Wizard implements IExportWizard {
-
- /**
- * The name of the dialog store's section associated with the task data export wizard
- */
- private final static String SETTINGS_SECTION = "org.eclipse.mylyn.tasklist.ui.exportWizard"; //$NON-NLS-1$
-
- private TaskDataExportWizardPage exportPage = null;
-
- public TaskDataExportWizard() {
- IDialogSettings masterSettings = TasksUiPlugin.getDefault().getDialogSettings();
- setDialogSettings(getSettingsSection(masterSettings));
- setNeedsProgressMonitor(true);
- setWindowTitle(Messages.TaskDataExportWizard_Export);
- }
-
- /**
- * Finds or creates a dialog settings section that is used to make the dialog control settings persistent
- */
- private IDialogSettings getSettingsSection(IDialogSettings master) {
- IDialogSettings settings = master.getSection(SETTINGS_SECTION);
- if (settings == null) {
- settings = master.addNewSection(SETTINGS_SECTION);
- }
- return settings;
- }
-
- @Override
- public void addPages() {
- exportPage = new TaskDataExportWizardPage();
- addPage(exportPage);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- // no initialization needed
- }
-
- /**
- * Called when the user clicks finish. Saves the task data. Waits until all overwrite decisions have been made
- * before starting to save files. If any overwrite is canceled, no files are saved and the user must adjust the
- * dialog.
- */
- @Override
- public boolean performFinish() {
- String destDir = exportPage.getDestinationDirectory();
-
- final File destZipFile = new File(destDir + File.separator + TaskListBackupManager.getBackupFileName());
-
- TaskDataExportOperation job = new TaskDataExportOperation(exportPage.getDestinationDirectory(),
- destZipFile.getName());
-
- try {
- if (getContainer() != null) {
- getContainer().run(true, true, job);
- } else {
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- service.run(true, true, job);
- }
- } catch (InvocationTargetException e) {
- Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e);
- TasksUiInternal.logAndDisplayStatus(Messages.TaskDataExportWizard_export_failed, status);
- } catch (InterruptedException e) {
- // user canceled
- }
-
- exportPage.saveSettings();
- return true;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizardPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizardPage.java
deleted file mode 100644
index 04cf7e4f8..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizardPage.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.tasks.ui.TaskListBackupManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Wizard Page for the Task Data Export Wizard
- *
- * @author Wesley Coelho
- * @author Mik Kersten
- * @author Rob Elves
- */
-public class TaskDataExportWizardPage extends WizardPage {
-
- private static final String PAGE_ID = "org.eclipse.mylyn.tasklist.exportPage"; //$NON-NLS-1$
-
- private Button browseButton = null;
-
- private Text destDirText = null;
-
- // Key values for the dialog settings object
- private final static String SETTINGS_SAVED = "Settings saved"; //$NON-NLS-1$
-
- private final static String DEST_DIR_SETTING = "Destination directory setting"; //$NON-NLS-1$
-
- public TaskDataExportWizardPage() {
- super(PAGE_ID);
- setPageComplete(false);
- setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(TasksUiPlugin.ID_PLUGIN,
- "icons/wizban/banner-export.gif")); //$NON-NLS-1$
- setTitle(Messages.TaskDataExportWizardPage_Export_Mylyn_Task_Data);
- }
-
- /**
- * Create the widgets on the page
- */
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(1, false);
- container.setLayout(layout);
- createExportDirectoryControl(container);
-
- initSettings();
-
- Dialog.applyDialogFont(container);
- setControl(container);
- setPageComplete(validate());
- }
-
- /**
- * Create widgets for specifying the destination directory
- */
- private void createExportDirectoryControl(Composite parent) {
- parent.setLayout(new GridLayout(3, false));
- parent.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- new Label(parent, SWT.NONE).setText(Messages.TaskDataExportWizardPage_File);
- Label l = new Label(parent, SWT.NONE);
- l.setText(TaskListBackupManager.getBackupFileName());
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan = 2;
- l.setLayoutData(gd);
- new Label(parent, SWT.NONE).setText(Messages.TaskDataExportWizardPage_Folder);
-
- destDirText = new Text(parent, SWT.BORDER);
- destDirText.setEditable(false);
- destDirText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- destDirText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- controlChanged();
- }
- });
-
- browseButton = new Button(parent, SWT.PUSH);
- browseButton.setText(Messages.TaskDataExportWizardPage_Browse_);
- browseButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- DirectoryDialog dialog = new DirectoryDialog(getShell());
- dialog.setText(Messages.TaskDataExportWizardPage_Folder_Selection);
- dialog.setMessage(Messages.TaskDataExportWizardPage_Specify_the_destination_folder_for_task_data);
- String dir = destDirText.getText();
- dialog.setFilterPath(dir);
- dir = dialog.open();
- if (dir == null || dir.equals("")) { //$NON-NLS-1$
- return;
- }
- destDirText.setText(dir);
- controlChanged();
- }
- });
- }
-
- /**
- * Initializes controls with values from the Dialog Settings object
- */
- protected void initSettings() {
- IDialogSettings settings = getDialogSettings();
-
- if (settings.get(SETTINGS_SAVED) == null) {
- destDirText.setText(""); //$NON-NLS-1$
- } else {
- String directory = settings.get(DEST_DIR_SETTING);
- if (directory != null) {
- destDirText.setText(settings.get(DEST_DIR_SETTING));
- }
- }
- }
-
- /**
- * Saves the control values in the dialog settings to be used as defaults the next time the page is opened
- */
- public void saveSettings() {
- IDialogSettings settings = getDialogSettings();
- settings.put(DEST_DIR_SETTING, destDirText.getText());
- settings.put(SETTINGS_SAVED, SETTINGS_SAVED);
- }
-
- /** Called to indicate that a control's value has changed */
- public void controlChanged() {
- setPageComplete(validate());
- }
-
- /** Returns true if the information entered by the user is valid */
- protected boolean validate() {
- setMessage(null);
-
- // Check that a destination dir has been specified
- if (destDirText.getText().equals("")) { //$NON-NLS-1$
- setMessage(Messages.TaskDataExportWizardPage_Please_choose_an_export_destination, IStatus.WARNING);
- return false;
- }
-
- return true;
- }
-
- /** Returns the directory where data files are to be saved */
- public String getDestinationDirectory() {
- return destDirText.getText();
- }
-
- /** For testing only. Sets controls to the specified values */
- public void setDestinationDirectory(String destinationDir) {
- destDirText.setText(destinationDir);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java
deleted file mode 100644
index 1809e58d9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import java.io.File;
-import java.io.IOException;
-import com.ibm.icu.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.commons.core.CoreUtil;
-import org.eclipse.mylyn.internal.commons.core.ZipFileUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.ICoreRunnable;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.externalization.AbstractExternalizationParticipant;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Rob Elves
- */
-@SuppressWarnings("restriction")
-public class TaskDataImportWizard extends Wizard implements IImportWizard {
-
- private TaskDataImportWizardPage importPage = null;
-
- public TaskDataImportWizard() {
- IDialogSettings masterSettings = TasksUiPlugin.getDefault().getDialogSettings();
- setDialogSettings(getSettingsSection(masterSettings));
- setNeedsProgressMonitor(true);
- setWindowTitle(Messages.TaskDataImportWizard_Import);
- }
-
- /**
- * Finds or creates a dialog settings section that is used to make the dialog control settings persistent
- */
- private IDialogSettings getSettingsSection(IDialogSettings master) {
- IDialogSettings settings = master.getSection("org.eclipse.mylyn.tasklist.ui.importWizard"); //$NON-NLS-1$
- if (settings == null) {
- settings = master.addNewSection("org.eclipse.mylyn.tasklist.ui.importWizard"); //$NON-NLS-1$
- }
- return settings;
- }
-
- @Override
- public void addPages() {
- importPage = new TaskDataImportWizardPage();
- importPage.setWizard(this);
- addPage(importPage);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- // no initialization needed
- }
-
- @Override
- public boolean canFinish() {
- return importPage.isPageComplete();
- }
-
- @Override
- public boolean performFinish() {
-
- TasksUi.getTaskActivityManager().deactivateTask(TasksUi.getTaskActivityManager().getActiveTask());
-
- String sourceZip = importPage.getSourceZipFile();
- final File sourceZipFile = new File(sourceZip);
-
- if (!sourceZipFile.exists()) {
- MessageDialog.openError(getShell(), Messages.TaskDataImportWizard_File_not_found, sourceZipFile.toString()
- + Messages.TaskDataImportWizard_could_not_be_found);
- return false;
- } else if (!CoreUtil.TEST_MODE
- && !MessageDialog.openConfirm(getShell(), Messages.TaskDataImportWizard_confirm_overwrite,
- Messages.TaskDataImportWizard_existing_task_data_about_to_be_erased_proceed)) {
- return false;
- }
-
- try {
- if (getContainer() != null) {
- CommonUiUtil.run(getContainer(), new FileCopyJob(sourceZipFile));
- } else {
- CommonUiUtil.busyCursorWhile(new FileCopyJob(sourceZipFile));
- }
-
- importPage.saveSettings();
- } catch (CoreException e) {
- Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Problems encountered importing task data: {0}", e.getMessage()), e); //$NON-NLS-1$
- TasksUiInternal.logAndDisplayStatus(Messages.TaskDataImportWizard_task_data_import_failed, status);
- } catch (OperationCanceledException e) {
- // canceled
- }
-
- return true;
- }
-
- /** Job that performs the file copying and zipping */
- class FileCopyJob implements ICoreRunnable {
-
- private static final String PREFIX_BACKUP = ".backup-"; //$NON-NLS-1$
-
- private final String JOB_LABEL = Messages.TaskDataImportWizard_Importing_Data;
-
- private File sourceZipFile = null;
-
- private int numEntries = 0;
-
- private boolean restoreM2Tasklist = false;
-
- public FileCopyJob(File sourceZipFile) {
- this.sourceZipFile = sourceZipFile;
- }
-
- public void run(final IProgressMonitor monitor) throws CoreException {
-
- try {
-
- checkZipFile();
-
- if (numEntries > 0) {
-
- monitor.beginTask(JOB_LABEL, numEntries);
- Job.getJobManager().beginRule(ITasksCoreConstants.ROOT_SCHEDULING_RULE, monitor);
-
- if (monitor.isCanceled()) {
- return;
- }
-
- ZipFileUtil.unzipFiles(sourceZipFile, TasksUiPlugin.getDefault().getDataDirectory(), monitor);
-
- if (restoreM2Tasklist) {
-
- SimpleDateFormat format = new SimpleDateFormat(ITasksCoreConstants.FILENAME_TIMESTAMP_FORMAT,
- Locale.ENGLISH);
- String date = format.format(new Date());
-
- File taskListFile = new File(TasksUiPlugin.getDefault().getDataDirectory(),
- ITasksCoreConstants.DEFAULT_TASK_LIST_FILE);
- if (taskListFile.exists()) {
- taskListFile.renameTo(new File(taskListFile.getParentFile(), taskListFile.getName()
- + PREFIX_BACKUP + date));
- }
-
- File taskListFileSnapshot = new File(TasksUiPlugin.getDefault().getDataDirectory(),
- AbstractExternalizationParticipant.SNAPSHOT_PREFIX
- + ITasksCoreConstants.DEFAULT_TASK_LIST_FILE);
- if (taskListFileSnapshot.exists()) {
- taskListFileSnapshot.renameTo(new File(taskListFile.getParentFile(),
- taskListFileSnapshot.getName() + PREFIX_BACKUP + date));
- }
-
- }
- readTaskListData();
- }
- } catch (IOException e) {
- Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e);
- throw new CoreException(status);
- } finally {
- Job.getJobManager().endRule(ITasksCoreConstants.ROOT_SCHEDULING_RULE);
- monitor.done();
- }
- }
-
- private void checkZipFile() throws IOException {
- Enumeration<? extends ZipEntry> entries;
- ZipFile zipFile = new ZipFile(sourceZipFile, ZipFile.OPEN_READ);
- try {
- entries = zipFile.entries();
- while (entries.hasMoreElements()) {
- ZipEntry entry = entries.nextElement();
- if (entry.getName().startsWith(ITasksCoreConstants.OLD_TASK_LIST_FILE)) {
- restoreM2Tasklist = true;
- }
- numEntries++;
- }
- } finally {
- zipFile.close();
- }
- }
-
- }
-
- private void readTaskListData() {
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
- public void run() {
- try {
- TasksUiPlugin.getDefault().reloadDataDirectory();
- } catch (CoreException e) {
- TasksUiInternal.displayStatus(Messages.TaskDataImportWizard_Import_Error, e.getStatus());
- }
- }
- });
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizardPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizardPage.java
deleted file mode 100644
index 02fe51e8b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizardPage.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.wizards;
-
-import java.io.File;
-import com.ibm.icu.text.DateFormat;
-import java.util.SortedMap;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Wizard Page for the Task Data Import Wizard
- *
- * @author Wesley Coelho
- * @author Mik Kersten
- * @author Rob Elves (Adaption to Import wizard)
- */
-public class TaskDataImportWizardPage extends WizardPage {
-
- private Button browseButtonZip = null;
-
- private Text sourceZipText = null;
-
- private Button importViaBackupButton;
-
- private Button importViaZipButton;
-
- private Table backupFilesTable;
-
- // Key values for the dialog settings object
- private final static String SETTINGS_SAVED = Messages.TaskDataImportWizardPage_Import_Settings_saved;
-
- private final static String SOURCE_ZIP_SETTING = Messages.TaskDataImportWizardPage_Import_Source_zip_file_setting;
-
- private final static String IMPORT_ZIPMETHOD_SETTING = Messages.TaskDataImportWizardPage_Import_method_zip;
-
- private final static String IMPORT_BACKUPMETHOD_SETTING = Messages.TaskDataImportWizardPage_Import_method_backup;
-
- public TaskDataImportWizardPage() {
- super("org.eclipse.mylyn.tasklist.importPage"); //$NON-NLS-1$
- setPageComplete(false);
- setMessage(Messages.TaskDataImportWizardPage_Importing_overwrites_current_tasks_and_repositories,
- IMessageProvider.WARNING);
- setImageDescriptor(CommonImages.BANNER_IMPORT);
- setTitle(Messages.TaskDataImportWizardPage_Restore_tasks_from_history);
- }
-
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(3, false);
- layout.verticalSpacing = 15;
- container.setLayout(layout);
- createImportFromZipControl(container);
- createImportFromBackupControl(container);
- addRadioListeners();
- initSettings();
- Dialog.applyDialogFont(container);
- setControl(container);
- setPageComplete(validate());
- }
-
- private void addRadioListeners() {
- SelectionListener radioListener = new SelectionListener() {
-
- public void widgetSelected(SelectionEvent e) {
- browseButtonZip.setEnabled(importViaZipButton.getSelection());
- backupFilesTable.setEnabled(importViaBackupButton.getSelection());
- sourceZipText.setEnabled(importViaZipButton.getSelection());
- controlChanged();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
-
- }
- };
-
- importViaZipButton.addSelectionListener(radioListener);
- importViaBackupButton.addSelectionListener(radioListener);
- }
-
- /**
- * Create widgets for specifying the source zip
- */
- private void createImportFromZipControl(Composite parent) {
-
- importViaZipButton = new Button(parent, SWT.RADIO);
- importViaZipButton.setText(Messages.TaskDataImportWizardPage_From_zip_file);
-
- sourceZipText = new Text(parent, SWT.BORDER);
- sourceZipText.setEditable(true);
- GridDataFactory.fillDefaults().grab(true, false).hint(250, SWT.DEFAULT).applyTo(sourceZipText);
- sourceZipText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- controlChanged();
- }
- });
-
- browseButtonZip = new Button(parent, SWT.PUSH);
- browseButtonZip.setText(Messages.TaskDataImportWizardPage_Browse_);
- browseButtonZip.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- FileDialog dialog = new FileDialog(getShell());
- dialog.setText(Messages.TaskDataImportWizardPage_Zip_File_Selection);
- String dir = sourceZipText.getText();
- dialog.setFilterPath(dir);
- dir = dialog.open();
- if (dir == null || dir.equals("")) { //$NON-NLS-1$
- return;
- }
- sourceZipText.setText(dir);
- }
- });
-
- }
-
- private void createImportFromBackupControl(Composite container) {
-
- importViaBackupButton = new Button(container, SWT.RADIO);
- importViaBackupButton.setText(Messages.TaskDataImportWizardPage_From_snapshot);
- addBackupFileView(container);
- }
-
- private void addBackupFileView(Composite composite) {
- backupFilesTable = new Table(composite, SWT.BORDER);
- GridDataFactory.fillDefaults().span(2, SWT.DEFAULT).grab(true, true).applyTo(backupFilesTable);
-
- TableColumn filenameColumn = new TableColumn(backupFilesTable, SWT.LEFT);
- filenameColumn.setWidth(200);
-
- SortedMap<Long, File> backupFilesMap = TasksUiPlugin.getBackupManager().getBackupFiles();
-
- for (Long time : backupFilesMap.keySet()) {
- File file = backupFilesMap.get(time);
- TableItem item = new TableItem(backupFilesTable, SWT.NONE);
- item.setData(file.getAbsolutePath());
- item.setText(DateFormat.getDateTimeInstance().format(time));
- }
-
- backupFilesTable.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- controlChanged();
- }
- });
- }
-
- /**
- * Initializes controls with values from the Dialog Settings object
- */
- protected void initSettings() {
- IDialogSettings settings = getDialogSettings();
-
- if (settings.get(SETTINGS_SAVED) == null) {
- importViaZipButton.setSelection(true);
- sourceZipText.setEnabled(true);
- backupFilesTable.setEnabled(false);
-
- } else {
- // Retrieve previous values from the dialog settings
- importViaZipButton.setSelection(settings.getBoolean(IMPORT_ZIPMETHOD_SETTING));
- importViaBackupButton.setSelection(settings.getBoolean(IMPORT_BACKUPMETHOD_SETTING));
- browseButtonZip.setEnabled(importViaZipButton.getSelection());
- sourceZipText.setEnabled(importViaZipButton.getSelection());
-
- backupFilesTable.setEnabled(importViaBackupButton.getSelection());
- String zipFile = settings.get(SOURCE_ZIP_SETTING);
- if (zipFile != null) {
- sourceZipText.setText(settings.get(SOURCE_ZIP_SETTING));
- }
- }
- }
-
- /**
- * Saves the control values in the dialog settings to be used as defaults the next time the page is opened
- */
- public void saveSettings() {
- IDialogSettings settings = getDialogSettings();
-
- settings.put(IMPORT_ZIPMETHOD_SETTING, importViaZipButton.getSelection());
- settings.put(IMPORT_BACKUPMETHOD_SETTING, importViaBackupButton.getSelection());
- settings.put(SETTINGS_SAVED, SETTINGS_SAVED);
- }
-
- /** Called to indicate that a control's value has changed */
- public void controlChanged() {
- setPageComplete(validate());
- }
-
- /** Returns true if the information entered by the user is valid */
- protected boolean validate() {
- if (importViaZipButton.getSelection() && sourceZipText.getText().equals("")) { //$NON-NLS-1$
- return false;
- }
- if (importViaBackupButton.getSelection() && backupFilesTable.getSelection().length == 0) {
- return false;
- }
- return true;
- }
-
- public String getSourceZipFile() {
- if (importViaZipButton.getSelection()) {
- return sourceZipText.getText();
- } else {
- if (backupFilesTable.getSelectionIndex() != -1) {
- return (String) (backupFilesTable.getSelection()[0].getData());
- }
- }
- return Messages.TaskDataImportWizardPage__unspecified_;
- }
-
- /** For testing only. Sets controls to the specified values */
- public void setSource(boolean zip, String sourceZip) {
- sourceZipText.setText(sourceZip);
- importViaZipButton.setSelection(zip);
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/messages.properties
deleted file mode 100644
index 5d832540d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/messages.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-EditRepositoryWizard_Failed_to_refactor_repository_urls=Failed to refactor repository urls
-EditRepositoryWizard_Properties_for_Task_Repository=Properties for Task Repository
-
-AttachmentSourcePage__Clipboard_=<Clipboard>
-AttachmentSourcePage__Screenshot_=<Screenshot>
-AttachmentSourcePage_Browse_=Browse...
-AttachmentSourcePage_Cannot_locate_attachment_file=Cannot locate attachment file
-AttachmentSourcePage_Clipboard=Clipboard
-AttachmentSourcePage_Clipboard_contains_an_unsupported_data=Clipboard contains an unsupported data
-AttachmentSourcePage_Clipboard_supports_text_and_image_attachments_only=Clipboard supports text and image attachments only.
-AttachmentSourcePage_File=File
-AttachmentSourcePage_No_file_name=No file name
-AttachmentSourcePage_Select_attachment_source=Select attachment source
-AttachmentSourcePage_Select_the_location_of_the_attachment=Select the location of the attachment
-AttachmentSourcePage_Workspace=Workspace
-
-NewQueryWizard_New_Repository_Query=New Repository Query
-
-NewTaskWizard_New_Task=New Task
-
-NewWebTaskPage_Create_via_Web_Browser=Create via Web Browser
-NewWebTaskPage_New_Task=New Task
-NewWebTaskPage_Once_submitted_synchronize_queries_or_add_the_task_to_a_category=Once submitted synchronize queries or add the task to a category.\n
-NewWebTaskPage_This_will_open_a_web_browser_that_can_be_used_to_create_a_new_task=This will open a web browser that can be used to create a new task.\n\
-NOTE: you may need to log in via the web UI.
-
-AttachmentPreviewPage_A_preview_the_type_X_is_currently_not_available=Attaching File {0}\n\
-A preview the type {1} is currently not available
-AttachmentPreviewPage_Attachment_Preview=Attachment Preview
-AttachmentPreviewPage_Could_not_create_preview=Could not create preview
-AttachmentPreviewPage_Preparing_preview=Preparing preview
-AttachmentPreviewPage_Review_the_attachment_before_submitting=Review the attachment before submitting
-AttachmentPreviewPage_Run_in_background=Run in background
-
-SelectRepositoryConnectorPage_discoveryProblemMessage=Problems occurred while launching connector discovery: {0}\nPlease see the error log for detials.
-SelectRepositoryConnectorPage_discoveryProblemTitle=An error occurred
-SelectRepositoryConnectorPage_activateDiscovery=Download More Connectors...
-SelectRepositoryConnectorPage_Select_a_task_repository_type=Select a task repository type
-SelectRepositoryConnectorPage_You_can_connect_to_an_existing_account_using_one_of_the_installed_connectors=You can connect to an existing account using one of the installed connectors.
-
-SelectRepositoryPage_Add_new_repositories_using_the_X_view=Add new repositories using the {0} view.\n\
-If a repository is missing it does not support the requested operation.
-SelectRepositoryPage_Select_a_repository=Select a repository
-
-TaskAttachmentWizard_Add_Attachment=Add Attachment
-TaskAttachmentWizard_Attach_Screenshot=Attach Screenshot
-TaskAttachmentWizard_Attaching_context=Attaching context
-TaskAttachmentWizard_Attachment_Failed=Attachment Failed
-TaskAttachmentWizard_Screenshot=Screenshot
-
-TaskDataExportWizard_Export=Export
-TaskDataExportWizard_export_failed=Export Failed
-TaskDataExportWizardPage_Browse_=Browse...
-TaskDataExportWizardPage_Export_Mylyn_Task_Data=Export Mylyn Task Data
-TaskDataExportWizardPage_File=File:
-TaskDataExportWizardPage_Folder=Folder:
-TaskDataExportWizardPage_Folder_Selection=Folder Selection
-TaskDataExportWizardPage_Please_choose_an_export_destination=Please choose an export destination
-TaskDataExportWizardPage_Specify_the_destination_folder_for_task_data=Specify the destination folder for task data
-
-TaskDataImportWizard_confirm_overwrite=Confirm Overwrite
-TaskDataImportWizard_could_not_be_found=\ could not be found.
-TaskDataImportWizard_existing_task_data_about_to_be_erased_proceed=Existing Task Data is about to be overwritten with data from selected source.\n\nProceed?
-TaskDataImportWizard_File_not_found=File not found
-TaskDataImportWizard_Import=Import
-TaskDataImportWizard_Import_Error=Import Error: Please retry importing or use alternate source
-TaskDataImportWizard_Importing_Data=Importing Data
-TaskDataImportWizard_task_data_import_failed=Task Data import failed
-
-TaskDataImportWizardPage_Browse_=Browse...
-TaskDataImportWizardPage_From_snapshot=From snapshot
-TaskDataImportWizardPage_From_zip_file=From zip file
-TaskDataImportWizardPage_Import_method_backup=Import method backup
-TaskDataImportWizardPage_Import_method_zip=Import method zip
-TaskDataImportWizardPage_Import_Settings_saved=Import Settings saved
-TaskDataImportWizardPage_Import_Source_zip_file_setting=Import Source zip file setting
-TaskDataImportWizardPage_Importing_overwrites_current_tasks_and_repositories=Importing overwrites current tasks and repositories. Consider exporting first.
-TaskDataImportWizardPage_Restore_tasks_from_history=Restore tasks from history
-TaskDataImportWizardPage__unspecified_=<unspecified>
-TaskDataImportWizardPage_Zip_File_Selection=Zip File Selection
-
-AbstractRepositoryQueryPage_A_category_with_this_name_already_exists=A category with this name already exists, please choose another name.
-AbstractRepositoryQueryPage_Enter_query_parameters=Enter query parameters
-AbstractRepositoryQueryPage_If_attributes_are_blank_or_stale_press_the_Update_button=If attributes are blank or stale press the Update button.
-AbstractRepositoryQueryPage_Please_specify_a_title_for_the_query=Please specify a title for the query.
-AbstractRepositoryQueryPage_A_query_with_this_name_already_exists=A query with this name already exists, please choose another name.
-AbstractRepositorySettingsPage_Additional_Settings=Additional Settings
-AbstractRepositorySettingsPage_Anonymous_Access=Anonymous
-AbstractRepositorySettingsPage_Authentication_credentials_are_valid=Authentication credentials are valid.
-AbstractRepositorySettingsPage_Change_account_settings=Change account settings
-AbstractRepositorySettingsPage_Change_Settings=Change Settings
-AbstractRepositorySettingsPage_Character_encoding=Character encoding\:
-AbstractRepositorySettingsPage_Create_new_account=Create new account
-AbstractRepositorySettingsPage_Default__=Default (
-AbstractRepositorySettingsPage_Disconnected=Disconnected
-AbstractRepositorySettingsPage_Enable_http_authentication=Enable Http Authentication
-AbstractRepositorySettingsPage_Enable_proxy_authentication=Enable Proxy Authentication
-AbstractRepositorySettingsPage_Enter_a_valid_server_url=Enter a valid server url
-AbstractRepositorySettingsPage_Http_Authentication=Http Authentication
-AbstractRepositorySettingsPage_Internal_error_validating_repository=Internal error validating repository
-AbstractRepositorySettingsPage_Label_=Label\:\
-AbstractRepositorySettingsPage_Other=Other\:
-AbstractRepositorySettingsPage_Password_=Password\:\
-AbstractRepositorySettingsPage_Problems_encountered_determining_available_charsets=Problems encountered determining available charsets
-AbstractRepositorySettingsPage_Proxy_host_address_=Proxy host address\:\
-AbstractRepositorySettingsPage_Proxy_host_port_=Proxy host port\:\
-AbstractRepositorySettingsPage_Proxy_Server_Configuration=Proxy Server Configuration
-AbstractRepositorySettingsPage_Repository_already_exists=Repository already exists.
-AbstractRepositorySettingsPage_Repository_is_valid=Repository is valid.
-AbstractRepositorySettingsPage_Repository_url_is_invalid=Repository url is invalid.
-AbstractRepositorySettingsPage_Repository_user_name_and_password_must_not_be_blank=Repository user name and password must not be blank
-AbstractRepositorySettingsPage_Save_Password=Save Password
-AbstractRepositorySettingsPage_Server_=Server\:\
-AbstractRepositorySettingsPage_Unable_to_authenticate_with_repository=Unable to authenticate with repository. Login credentials invalid.
-AbstractRepositorySettingsPage_Use_global_Network_Connections_preferences=Use global Network Connections preferences
-AbstractRepositorySettingsPage_User_ID_=User ID\:\
-AbstractRepositorySettingsPage_Validate_Settings=Validate Settings
-AbstractRepositorySettingsPage_Validating_server_settings=Validating server settings
-
-NewTaskWizard_Create_Task=Create Task
-NewTaskWizard_Error_creating_new_task=Error creating new task
-NewTaskWizard_Failed_to_create_new_task_=Failed to create new task:
-NewWebTaskWizard_New_Task=New Task
-NewWebTaskWizard_This_connector_does_not_provide_a_rich_task_editor_for_creating_tasks=This connector does not provide a rich task editor for creating tasks.\n\nThe error contents have been placed in the clipboard so that you can paste them into the entry form.
-RepositoryQueryWizard_Edit_Repository_Query=Edit Repository Query
-
-TaskAttachmentPage_ATTACHE_CONTEXT=Attach Context
-TaskAttachmentPage_Attachment_Details=Attachment Details
-TaskAttachmentPage_Comment=Comment
-TaskAttachmentPage_Content_Type=Content Type
-TaskAttachmentPage_Description=Description
-TaskAttachmentPage_Enter_a_description=Enter a description
-TaskAttachmentPage_Enter_a_file_name=Enter a file name
-TaskAttachmentPage_File=File
-TaskAttachmentPage_Patch=Patch
-TaskAttachmentPage_Verify_the_content_type_of_the_attachment=Verify the content type of the attachment
-
-AbstractTaskRepositoryPage_Validation_failed=Validation failed
-
-LocalRepositorySettingsPage_Configure_the_local_repository=Configure the local repository
-LocalRepositorySettingsPage_Local_Repository_Settings=Local Repository Settings
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/Messages.java
deleted file mode 100644
index 02b1ae0c0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/Messages.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.workingsets;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.ui.workingsets.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TaskWorkingSetPage_The_name_must_not_be_empty;
-
- public static String TaskWorkingSetPage_The_name_must_not_have_a_leading_or_trailing_whitespace;
-
- public static String TaskWorkingSetPage_No_categories_queries_selected;
-
- public static String TaskWorkingSetPage_Resources;
-
- public static String TaskWorkingSetPage_Select_Working_Set_Elements;
-
- public static String TaskWorkingSetPage_Tasks;
-
- public static String TaskWorkingSetPage_Page_Description;
-
- public static String TaskWorkingSetPage_A_working_set_with_the_same_name_already_exists;
-
- public static String TaskWorkingSetPage_Select_All;
-
- public static String TaskWorkingSetPage_Deselect_All;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetAdapterFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetAdapterFactory.java
deleted file mode 100644
index 322add9c7..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetAdapterFactory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.workingsets;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * Adapter factory used to adapt AbstractTaskContainer to IPersistableElement
- *
- * @author Eugene Kuleshov
- */
-public class TaskWorkingSetAdapterFactory implements IAdapterFactory {
-
- private static final String TASK_ELEMENT_FACTORY_ID = "org.eclipse.mylyn.tasks.ui.workingSets.elementFactory"; //$NON-NLS-1$
-
- @SuppressWarnings("unchecked")
- private static final Class[] ADAPTER_TYPES = new Class[] { IPersistableElement.class };
-
- @SuppressWarnings("unchecked")
- public Class[] getAdapterList() {
- return ADAPTER_TYPES;
- }
-
- public Object getAdapter(final Object adaptableObject, @SuppressWarnings("unchecked") Class adapterType) {
- if (adapterType == IPersistableElement.class && adaptableObject instanceof AbstractTaskContainer) {
- return new IPersistableElement() {
- public void saveState(IMemento memento) {
- IRepositoryElement container = (IRepositoryElement) adaptableObject;
- memento.putString(TaskWorkingSetElementFactory.HANDLE_TASK, container.getHandleIdentifier());
- }
-
- public String getFactoryId() {
- return TASK_ELEMENT_FACTORY_ID;
- }
- };
- } else if (adapterType == IPersistableElement.class && adaptableObject instanceof IProject) {
- return new IPersistableElement() {
- public void saveState(IMemento memento) {
- IProject project = (IProject) adaptableObject;
- memento.putString(TaskWorkingSetElementFactory.HANDLE_PROJECT, project.getName());
- }
-
- public String getFactoryId() {
- return TASK_ELEMENT_FACTORY_ID;
- }
- };
- }
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementAdapter.java
deleted file mode 100644
index ea0f3d395..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementAdapter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.workingsets;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetElementAdapter;
-
-/**
- * @author Eugene Kuleshov
- * @author Mik Kersten
- */
-public class TaskWorkingSetElementAdapter implements IWorkingSetElementAdapter {
-
- public IAdaptable[] adaptElements(IWorkingSet workingSet, IAdaptable[] elements) {
- for (IAdaptable adaptable : elements) {
- if (!(adaptable instanceof AbstractTaskContainer)) {
- return selectContainers(elements);
- }
- }
- return elements;
- }
-
- private IAdaptable[] selectContainers(IAdaptable[] elements) {
- List<IAdaptable> containers = new ArrayList<IAdaptable>(elements.length);
- for (IAdaptable adaptable : elements) {
- if (adaptable instanceof AbstractTaskContainer) {
- containers.add(adaptable);
- } else if (adaptable instanceof IProject) {
- containers.add(adaptable);
- }
- }
- return containers.toArray(new IAdaptable[containers.size()]);
- }
-
- public void dispose() {
- // ignore
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementFactory.java
deleted file mode 100644
index 49e664f75..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetElementFactory.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.workingsets;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-
-/**
- * Element factory used to restore task containers and projects for Task+Resource working sets.
- *
- * @author Eugene Kuleshov
- * @author Mik Kersten
- */
-public class TaskWorkingSetElementFactory implements IElementFactory {
-
- static final String HANDLE_TASK = "handle.task"; //$NON-NLS-1$
-
- static final String HANDLE_PROJECT = "handle.project"; //$NON-NLS-1$
-
- public IAdaptable createElement(IMemento memento) {
- String taskHandle = memento.getString(HANDLE_TASK);
- if (taskHandle != null) {
- // TOOD: this does not support projects and categories/queries have the same name
- TaskList taskList = TasksUiPlugin.getTaskList();
- for (AbstractTaskContainer element : taskList.getRootElements()) {
- if (element.getHandleIdentifier().equals(taskHandle)) {
- return element;
- }
- }
- }
- String projectHandle = memento.getString(HANDLE_PROJECT);
- if (projectHandle != null) {
- try {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectHandle);
- if (project != null) {
- return project;
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not not determine project for handle: " + projectHandle, t)); //$NON-NLS-1$
- }
- }
- // prior to mylyn 3.0.2 task handles and project handles were identical
- if (taskHandle != null) {
- try {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(taskHandle);
- if (project != null) {
- return project;
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not not determine project for handle: " + taskHandle, t)); //$NON-NLS-1$
- }
- }
- return null;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetPage.java
deleted file mode 100644
index 2123cc556..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetPage.java
+++ /dev/null
@@ -1,582 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.workingsets;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Adapted from org.eclipse.ui.internal.ide.dialogs.ResourceWorkingSetPage
- *
- * @author Eugene Kuleshov
- * @author Mik Kersten
- * @author David Green fix for bug 274390
- */
-public class TaskWorkingSetPage extends WizardPage implements IWorkingSetPage {
-
- private final static int SIZING_SELECTION_WIDGET_WIDTH = 50;
-
- private final static int SIZING_SELECTION_WIDGET_HEIGHT = 200;
-
- private Text text;
-
- private CheckboxTreeViewer treeViewer;
-
- private IWorkingSet workingSet;
-
- private final WorkingSetPageContentProvider workingSetPageContentProvider = new WorkingSetPageContentProvider();
-
- private boolean firstCheck = false;
-
- private final class WorkingSetPageContentProvider implements ITreeContentProvider {
-
- private ElementCategory tasksContainer;
-
- private ElementCategory resourcesContainer;
-
- private final Map<IRepositoryQuery, TaskRepository> queryMap = new HashMap<IRepositoryQuery, TaskRepository>();
-
- private final Map<IProject, TaskRepositoryProjectMapping> projectMap = new HashMap<IProject, TaskRepositoryProjectMapping>();
-
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof List<?>) {
- List<IAdaptable> taskRepositoriesContainers = new ArrayList<IAdaptable>();
- List<IAdaptable> resourcesRepositoriesContainers = new ArrayList<IAdaptable>();
-
- for (AbstractTaskContainer category : TasksUiInternal.getTaskList().getCategories()) {
- taskRepositoriesContainers.add(category);
- }
-
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- Set<IProject> unmappedProjects = new HashSet<IProject>();
- for (Object container : (List<?>) parentElement) {
- if (container instanceof TaskRepository) {
- // NOTE: looking down, high complexity
- if (hasChildren(container)) {
- taskRepositoriesContainers.add((TaskRepository) container);
- }
-
- // NOTE: O(n^2) complexity, could fix
- Set<IProject> mappedProjects = new HashSet<IProject>();
-
- for (IProject project : projects) {
- TaskRepository taskRepository = TasksUiPlugin.getDefault()
- .getRepositoryForResource(project);
- if (container.equals(taskRepository)) {
- mappedProjects.add(project);
- } else if (taskRepository == null) {
- unmappedProjects.add(project);
- }
- }
- if (!mappedProjects.isEmpty()) {
- TaskRepositoryProjectMapping projectMapping = new TaskRepositoryProjectMapping(
- (TaskRepository) container, mappedProjects);
- resourcesRepositoriesContainers.add(projectMapping);
- for (IProject mappedProject : mappedProjects) {
- projectMap.put(mappedProject, projectMapping);
- }
- }
- }
- }
- resourcesRepositoriesContainers.addAll(unmappedProjects);
- tasksContainer = new ElementCategory(Messages.TaskWorkingSetPage_Tasks, taskRepositoriesContainers);
- resourcesContainer = new ElementCategory(Messages.TaskWorkingSetPage_Resources,
- resourcesRepositoriesContainers);
- return new Object[] { tasksContainer, resourcesContainer };
- } else if (parentElement instanceof TaskRepository) {
- List<IAdaptable> taskContainers = new ArrayList<IAdaptable>();
- for (AbstractTaskContainer element : TasksUiPlugin.getTaskList().getRepositoryQueries(
- ((TaskRepository) parentElement).getRepositoryUrl())) {
- if (element instanceof IRepositoryQuery) {
- taskContainers.add(element);
- queryMap.put((IRepositoryQuery) element, (TaskRepository) parentElement);
- }
- }
-
- return taskContainers.toArray();
- } else if (parentElement instanceof TaskRepositoryProjectMapping) {
- return ((TaskRepositoryProjectMapping) parentElement).getProjects().toArray();
- } else if (parentElement instanceof ElementCategory) {
- return ((ElementCategory) parentElement).getChildren(parentElement);
- } else {
- return new Object[0];
- }
- }
-
- public boolean hasChildren(Object element) {
- return getChildren(element).length > 0;
- }
-
- public Object[] getElements(Object element) {
- return getChildren(element);
- }
-
- public Object getParent(Object element) {
- if (element instanceof AbstractTaskCategory || element instanceof TaskRepository) {
- return tasksContainer;
- } else if (element instanceof IRepositoryQuery) {
- return queryMap.get(element);
- } else if (element instanceof TaskRepositoryProjectMapping) {
- return resourcesContainer;
- } else if (element instanceof IProject) {
- Object repository = projectMap.get(element);
- if (repository != null) {
- return repository;
- } else {
- return resourcesContainer;
- }
- } else {
- return null;
- }
- }
-
- public void dispose() {
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- }
-
- private class TaskRepositoryProjectMapping extends PlatformObject {
-
- private final TaskRepository taskRepository;
-
- private final Set<IProject> projects;
-
- public TaskRepositoryProjectMapping(TaskRepository taskRepository, Set<IProject> mappedProjects) {
- this.taskRepository = taskRepository;
- this.projects = mappedProjects;
- }
-
- public Set<IProject> getProjects() {
- return projects;
- }
-
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
- }
-
- class ElementCategory extends PlatformObject implements IWorkbenchAdapter {
-
- private final String label;
-
- private final List<IAdaptable> children;
-
- public ElementCategory(String label, List<IAdaptable> children) {
- this.label = label;
- this.children = children;
- }
-
- public Object[] getChildren(Object o) {
- return children.toArray();
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_OBJ_WORKING_SETS);
- }
-
- public String getLabel(Object o) {
- return label;
- }
-
- public Object getParent(Object o) {
- return null;
- }
-
- }
-
- class AggregateLabelProvider implements ILabelProvider {
-
- private final TaskElementLabelProvider taskLabelProvider = new TaskElementLabelProvider(false);
-
- private final TaskRepositoryLabelProvider taskRepositoryLabelProvider = new TaskRepositoryLabelProvider();
-
- private final WorkbenchLabelProvider workbenchLabelProvider = new WorkbenchLabelProvider();
-
- public Image getImage(Object element) {
- if (element instanceof AbstractTaskContainer) {
- return taskLabelProvider.getImage(element);
- } else if (element instanceof TaskRepository) {
- return taskRepositoryLabelProvider.getImage(element);
- } else if (element instanceof TaskRepositoryProjectMapping) {
- return getImage(((TaskRepositoryProjectMapping) element).getTaskRepository());
- } else {
- return workbenchLabelProvider.getImage(element);
- }
- }
-
- public String getText(Object element) {
- if (element instanceof AbstractTaskContainer) {
- return taskLabelProvider.getText(element);
- } else if (element instanceof TaskRepository) {
- return taskRepositoryLabelProvider.getText(element);
- } else if (element instanceof TaskRepositoryProjectMapping) {
- return getText(((TaskRepositoryProjectMapping) element).getTaskRepository());
- } else {
- return workbenchLabelProvider.getText(element);
- }
- }
-
- public void addListener(ILabelProviderListener listener) {
- }
-
- public void dispose() {
- }
-
- public boolean isLabelProperty(Object element, String property) {
- return false;
- }
-
- public void removeListener(ILabelProviderListener listener) {
- }
- }
-
- class CustomSorter extends ViewerSorter {
-
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (e1 instanceof TaskRepository || e1 instanceof TaskRepositoryProjectMapping) {
- return -1;
- } else if (e2 instanceof TaskRepository || e2 instanceof TaskRepositoryProjectMapping) {
- return 1;
- } else if (e1 instanceof ElementCategory
- && ((ElementCategory) e1).getLabel(e1).equals(Messages.TaskWorkingSetPage_Tasks)) {
- return -1;
- } else if (e2 instanceof ElementCategory
- && ((ElementCategory) e1).getLabel(e1).equals(Messages.TaskWorkingSetPage_Tasks)) {
- return 1;
- } else {
- return super.compare(viewer, e1, e2);
- }
- }
- }
-
- public TaskWorkingSetPage() {
- super("taskWorkingSetPage", Messages.TaskWorkingSetPage_Select_Working_Set_Elements, null); //$NON-NLS-1$
- setDescription(Messages.TaskWorkingSetPage_Page_Description);
- setImageDescriptor(TasksUiImages.BANNER_WORKING_SET);
- }
-
- public void finish() {
- Object[] elements = treeViewer.getCheckedElements();
- Set<IAdaptable> validElements = new HashSet<IAdaptable>();
- for (Object element : elements) {
- if (element instanceof AbstractTaskContainer || element instanceof IProject) {
- validElements.add((IAdaptable) element);
- }
- }
-
- addSpecialContainers(validElements);
-
- if (workingSet == null) {
- IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();
- workingSet = workingSetManager.createWorkingSet(getWorkingSetName(),
- validElements.toArray(new IAdaptable[validElements.size()]));
- } else {
- if (!getWorkingSetName().equals(workingSet.getName())) {
- workingSet.setName(getWorkingSetName());
- }
- workingSet.setElements(validElements.toArray(new IAdaptable[validElements.size()]));
- }
- }
-
- private void addSpecialContainers(Set<IAdaptable> validElements) {
- HashSet<AbstractTaskContainer> specialContainers = new HashSet<AbstractTaskContainer>();
- for (IAdaptable element : validElements) {
- if (element instanceof IRepositoryQuery) {
- IRepositoryQuery query = (IRepositoryQuery) element;
- if (query.getRepositoryUrl() != null) {
- // Add Unmatched
- AbstractTaskContainer orphansContainer = TasksUiPlugin.getTaskList().getUnmatchedContainer(
- query.getRepositoryUrl());
- if (orphansContainer != null) {
- specialContainers.add(orphansContainer);
- }
-
- // Add Unsubmitted
- AbstractTaskContainer unsubmittedContainer = TasksUiPlugin.getTaskList().getUnsubmittedContainer(
- query.getRepositoryUrl());
- if (unsubmittedContainer != null) {
- specialContainers.add(unsubmittedContainer);
- }
- }
- }
- }
- validElements.addAll(specialContainers);
- }
-
- public IWorkingSet getSelection() {
- return workingSet;
- }
-
- public void setSelection(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- if (getShell() != null && text != null) {
- firstCheck = true;
- initializeCheckedState();
- text.setText(workingSet.getName());
- }
- }
-
- private String getWorkingSetName() {
- return text.getText();
- }
-
- public void createControl(Composite parent) {
- initializeDialogUnits(parent);
-
- Composite composite = new Composite(parent, SWT.NULL);
-
- GridLayout layout = new GridLayout();
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
- setControl(composite);
-
- // PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IIDEHelpContextIds.WORKING_SET_RESOURCE_PAGE);
- Label label = new Label(composite, SWT.WRAP);
- label.setText(""); //$NON-NLS-1$
- label.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL
- | GridData.VERTICAL_ALIGN_CENTER));
-
- text = new Text(composite, SWT.SINGLE | SWT.BORDER);
- text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- validateInput();
- }
- });
- text.setFocus();
- // text.setBackground(FieldAssistColors.getRequiredFieldBackgroundColor(text));
-
- label = new Label(composite, SWT.WRAP);
- label.setText(""); //$NON-NLS-1$
- label.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL
- | GridData.VERTICAL_ALIGN_CENTER));
-
- treeViewer = new CheckboxTreeViewer(composite);
- treeViewer.setUseHashlookup(true);
- treeViewer.setContentProvider(workingSetPageContentProvider);
-
- treeViewer.setLabelProvider(new DecoratingLabelProvider(new AggregateLabelProvider(), PlatformUI.getWorkbench()
- .getDecoratorManager()
- .getLabelDecorator()));
- treeViewer.setSorter(new CustomSorter());
-
- ArrayList<Object> containers = new ArrayList<Object>();
- for (TaskRepository repository : TasksUi.getRepositoryManager().getAllRepositories()) {
- containers.add(repository);
- }
-
- containers.addAll(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()));
-
- treeViewer.setInput(containers);
-
- // tree.setComparator(new ResourceComparator(ResourceComparator.NAME));
-
- GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
- data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
- data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
- treeViewer.getControl().setLayoutData(data);
-
- treeViewer.addCheckStateListener(new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- handleCheckStateChange(event);
- }
- });
-
- // Add select / deselect all buttons for bug 46669
- Composite buttonComposite = new Composite(composite, SWT.NONE);
- layout = new GridLayout(2, false);
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- buttonComposite.setLayout(layout);
- buttonComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- Button selectAllButton = new Button(buttonComposite, SWT.PUSH);
- selectAllButton.setText(Messages.TaskWorkingSetPage_Select_All);
- selectAllButton.setToolTipText(""); //$NON-NLS-1$
- selectAllButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent selectionEvent) {
- treeViewer.setCheckedElements(workingSetPageContentProvider.getElements(treeViewer.getInput()));
- validateInput();
- }
- });
- setButtonLayoutData(selectAllButton);
-
- Button deselectAllButton = new Button(buttonComposite, SWT.PUSH);
- deselectAllButton.setText(Messages.TaskWorkingSetPage_Deselect_All);
- deselectAllButton.setToolTipText(""); //$NON-NLS-1$
- deselectAllButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent selectionEvent) {
- treeViewer.setCheckedElements(new Object[0]);
- validateInput();
- }
- });
- setButtonLayoutData(deselectAllButton);
-
- if (workingSet != null) {
- for (Object object : workingSet.getElements()) {
- treeViewer.expandToLevel(object, 1);
- }
- } else {
- treeViewer.expandToLevel(2);
- }
- initializeCheckedState();
-
- if (workingSet != null) {
- text.setText(workingSet.getName());
- }
-
- setPageComplete(false);
- Dialog.applyDialogFont(composite);
- }
-
- private void initializeCheckedState() {
- BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
- public void run() {
- Object[] items = null;
- if (workingSet != null) {
- items = workingSet.getElements();
- if (items != null) {
- // see bug 191342
- treeViewer.setCheckedElements(new Object[] {});
- for (Object item : items) {
- if (item != null) {
- treeViewer.setChecked(item, true);
- }
- }
- }
- }
- }
- });
- }
-
- protected void handleCheckStateChange(final CheckStateChangedEvent event) {
- BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
- public void run() {
- IAdaptable element = (IAdaptable) event.getElement();
- handleCheckStateChangeHelper(event, element);
- validateInput();
- }
-
- private void handleCheckStateChangeHelper(final CheckStateChangedEvent event, IAdaptable element) {
- if (element instanceof AbstractTaskContainer || element instanceof IProject) {
- treeViewer.setGrayed(element, false);
- } else if (element instanceof ElementCategory) {
- for (Object child : ((ElementCategory) element).getChildren(null)) {
- treeViewer.setChecked(child, event.getChecked());
- if (child instanceof IAdaptable) {
- handleCheckStateChangeHelper(event, (IAdaptable) child);
- }
- }
- } else if (element instanceof TaskRepository || element instanceof TaskRepositoryProjectMapping) {
- for (Object child : workingSetPageContentProvider.getChildren(element)) {
- treeViewer.setChecked(child, event.getChecked());
- }
- }
- }
- });
- }
-
- protected void validateInput() {
- String errorMessage = null;
- String infoMessage = null;
- String newText = text.getText();
-
- if (!newText.equals(newText.trim())) {
- errorMessage = Messages.TaskWorkingSetPage_The_name_must_not_have_a_leading_or_trailing_whitespace;
- } else if (firstCheck) {
- firstCheck = false;
- return;
- }
- if ("".equals(newText)) { //$NON-NLS-1$
- errorMessage = Messages.TaskWorkingSetPage_The_name_must_not_be_empty;
- }
- if (errorMessage == null && (workingSet == null || !newText.equals(workingSet.getName()))) {
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (IWorkingSet workingSet2 : workingSets) {
- if (newText.equals(workingSet2.getName())) {
- errorMessage = Messages.TaskWorkingSetPage_A_working_set_with_the_same_name_already_exists;
- }
- }
- }
- if (treeViewer.getCheckedElements().length == 0) {
- infoMessage = Messages.TaskWorkingSetPage_No_categories_queries_selected;
- }
- setMessage(infoMessage, INFORMATION);
- setErrorMessage(errorMessage);
- setPageComplete(errorMessage == null);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java
deleted file mode 100644
index c89141d0a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.workingsets;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.monitor.ui.MonitorUi;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetUpdater;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Eugene Kuleshov
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class TaskWorkingSetUpdater implements IWorkingSetUpdater, ITaskListChangeListener, IResourceChangeListener {
-
- public static String ID_TASK_WORKING_SET = "org.eclipse.mylyn.tasks.ui.workingSet"; //$NON-NLS-1$
-
- private final List<IWorkingSet> workingSets = new CopyOnWriteArrayList<IWorkingSet>();
-
- private static class TaskWorkingSetDelta {
-
- private final IWorkingSet workingSet;
-
- private final List<Object> elements;
-
- private boolean changed;
-
- public TaskWorkingSetDelta(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- this.elements = new ArrayList<Object>(Arrays.asList(workingSet.getElements()));
- }
-
- public int indexOf(Object element) {
- return elements.indexOf(element);
- }
-
- public void set(int index, Object element) {
- elements.set(index, element);
- changed = true;
- }
-
- public void remove(int index) {
- if (elements.remove(index) != null) {
- changed = true;
- }
- }
-
- public void process() {
- if (changed) {
- workingSet.setElements(elements.toArray(new IAdaptable[elements.size()]));
- }
- }
- }
-
- public TaskWorkingSetUpdater() {
- TasksUiInternal.getTaskList().addChangeListener(this);
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
- }
-
- public void dispose() {
- TasksUiInternal.getTaskList().removeChangeListener(this);
- }
-
- public void add(IWorkingSet workingSet) {
- checkElementExistence(workingSet);
- synchronized (workingSets) {
- workingSets.add(workingSet);
- }
- }
-
- private void checkElementExistence(IWorkingSet workingSet) {
- ArrayList<IAdaptable> list = new ArrayList<IAdaptable>();
- for (IAdaptable adaptable : workingSet.getElements()) {
- if (adaptable instanceof AbstractTaskContainer) {
- String handle = ((AbstractTaskContainer) adaptable).getHandleIdentifier();
- for (IRepositoryElement element : TasksUiPlugin.getTaskList().getRootElements()) {
- if (element != null && element.getHandleIdentifier().equals(handle)) {
- list.add(adaptable);
- }
- }
- } else if (adaptable instanceof IProject) {
- IProject project = ResourcesPlugin.getWorkspace()
- .getRoot()
- .getProject(((IProject) adaptable).getName());
- if (project != null && project.exists()) {
- list.add(project);
- }
- }
- }
- workingSet.setElements(list.toArray(new IAdaptable[list.size()]));
- }
-
- public boolean contains(IWorkingSet workingSet) {
- synchronized (workingSets) {
- return workingSets.contains(workingSet);
- }
- }
-
- public boolean remove(IWorkingSet workingSet) {
- synchronized (workingSets) {
- return workingSets.remove(workingSet);
- }
- }
-
- public void containersChanged(Set<TaskContainerDelta> delta) {
- for (TaskContainerDelta taskContainerDelta : delta) {
- if (taskContainerDelta.getElement() instanceof TaskCategory
- || taskContainerDelta.getElement() instanceof IRepositoryQuery) {
- synchronized (workingSets) {
- switch (taskContainerDelta.getKind()) {
- case REMOVED:
- // Remove from all
- for (IWorkingSet workingSet : workingSets) {
- ArrayList<IAdaptable> elements = new ArrayList<IAdaptable>(
- Arrays.asList(workingSet.getElements()));
- elements.remove(taskContainerDelta.getElement());
- workingSet.setElements(elements.toArray(new IAdaptable[elements.size()]));
- }
- break;
- case ADDED:
- // Add to the active working set
- for (IWorkingSet workingSet : TaskWorkingSetUpdater.getEnabledSets()) {
- ArrayList<IAdaptable> elements = new ArrayList<IAdaptable>(
- Arrays.asList(workingSet.getElements()));
- elements.add(taskContainerDelta.getElement());
- workingSet.setElements(elements.toArray(new IAdaptable[elements.size()]));
- }
- break;
- }
- }
- }
- }
- }
-
- // TODO: consider putting back, but evaluate policy and note bug 197257
-// public void taskActivated(AbstractTask task) {
-// Set<AbstractTaskContainer> taskContainers = new HashSet<AbstractTaskContainer>(
-// TasksUiPlugin.getTaskList().getQueriesForHandle(task.getHandleIdentifier()));
-// taskContainers.addAll(task.getParentContainers());
-//
-// Set<AbstractTaskContainer> allActiveWorkingSetContainers = new HashSet<AbstractTaskContainer>();
-// for (IWorkingSet workingSet : PlatformUI.getWorkbench()
-// .getActiveWorkbenchWindow()
-// .getActivePage()
-// .getWorkingSets()) {
-// ArrayList<IAdaptable> elements = new ArrayList<IAdaptable>(Arrays.asList(workingSet.getElements()));
-// for (IAdaptable adaptable : elements) {
-// if (adaptable instanceof AbstractTaskContainer) {
-// allActiveWorkingSetContainers.add((AbstractTaskContainer) adaptable);
-// }
-// }
-// }
-// boolean isContained = false;
-// for (AbstractTaskContainer taskContainer : allActiveWorkingSetContainers) {
-// if (taskContainers.contains(taskContainer)) {
-// isContained = true;
-// break;
-// }
-// }
-//
-// ;
-// if (!isContained) {
-// IWorkingSet matchingWorkingSet = null;
-// for (IWorkingSet workingSet : PlatformUI.getWorkbench().getWorkingSetManager().getAllWorkingSets()) {
-// ArrayList<IAdaptable> elements = new ArrayList<IAdaptable>(Arrays.asList(workingSet.getElements()));
-// for (IAdaptable adaptable : elements) {
-// if (adaptable instanceof AbstractTaskContainer) {
-// if (((AbstractTaskContainer)adaptable).contains(task.getHandleIdentifier())) {
-// matchingWorkingSet = workingSet;
-// }
-// }
-// }
-// }
-//
-// if (matchingWorkingSet != null) {
-// new ToggleWorkingSetAction(matchingWorkingSet).run();
-// } else {
-// new ToggleAllWorkingSetsAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow()).run();
-// }
-// }
-// }
-
- public static IWorkingSet[] getEnabledSets() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page = window.getActivePage();
- if (page != null) {
- return page.getWorkingSets();
- }
- }
- return new IWorkingSet[0];
- }
-
- /**
- * TODO: move
- */
- public static boolean areNoTaskWorkingSetsEnabled() {
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (IWorkingSet workingSet : workingSets) {
- if (workingSet != null && workingSet.getId().equalsIgnoreCase(ID_TASK_WORKING_SET)) {
- if (isWorkingSetEnabled(workingSet)) {
- return false;
- }
- }
- }
- return true;
- }
-
- public static boolean isWorkingSetEnabled(IWorkingSet set) {
- IWorkingSet[] enabledSets = TaskWorkingSetUpdater.getEnabledSets();
- for (IWorkingSet enabledSet : enabledSets) {
- if (enabledSet.equals(set)) {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isOnlyTaskWorkingSetEnabled(IWorkingSet set) {
- if (!TaskWorkingSetUpdater.isWorkingSetEnabled(set)) {
- return false;
- }
-
- IWorkingSet[] enabledSets = TaskWorkingSetUpdater.getEnabledSets();
- for (int i = 0; i < enabledSets.length; i++) {
- if (!enabledSets[i].equals(set)
- && enabledSets[i].getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- return false;
- }
- }
- return true;
- }
-
- private void processResourceDelta(TaskWorkingSetDelta result, IResourceDelta delta) {
- IResource resource = delta.getResource();
- int type = resource.getType();
- int index = result.indexOf(resource);
- int kind = delta.getKind();
- int flags = delta.getFlags();
- if (kind == IResourceDelta.CHANGED && type == IResource.PROJECT && index != -1) {
- if ((flags & IResourceDelta.OPEN) != 0) {
- result.set(index, resource);
- }
- }
- if (index != -1 && kind == IResourceDelta.REMOVED) {
- if ((flags & IResourceDelta.MOVED_TO) != 0) {
- result.set(index, ResourcesPlugin.getWorkspace().getRoot().findMember(delta.getMovedToPath()));
- } else {
- result.remove(index);
- }
- }
-
- // Don't dive into closed or opened projects
- if (projectGotClosedOrOpened(resource, kind, flags)) {
- return;
- }
-
- IResourceDelta[] children = delta.getAffectedChildren();
- for (IResourceDelta element : children) {
- processResourceDelta(result, element);
- }
- }
-
- private boolean projectGotClosedOrOpened(IResource resource, int kind, int flags) {
- return resource.getType() == IResource.PROJECT && kind == IResourceDelta.CHANGED
- && (flags & IResourceDelta.OPEN) != 0;
- }
-
- public void resourceChanged(IResourceChangeEvent event) {
- for (IWorkingSet workingSet : workingSets) {
- TaskWorkingSetDelta workingSetDelta = new TaskWorkingSetDelta(workingSet);
- if (event.getDelta() != null) {
- processResourceDelta(workingSetDelta, event.getDelta());
- }
- workingSetDelta.process();
- }
- }
-
- /**
- * Must be called from the UI thread
- */
- public static void applyWorkingSetsToAllWindows(Collection<IWorkingSet> workingSets) {
- IWorkingSet[] workingSetArray = workingSets.toArray(new IWorkingSet[workingSets.size()]);
- for (IWorkbenchWindow window : MonitorUi.getMonitoredWindows()) {
- for (IWorkbenchPage page : window.getPages()) {
- page.setWorkingSets(workingSetArray);
- }
- }
- }
-
- public static Set<IWorkingSet> getActiveWorkingSets(IWorkbenchWindow window) {
- if (window != null) {
- Set<IWorkingSet> allSets = new HashSet<IWorkingSet>(Arrays.asList(window.getActivePage().getWorkingSets()));
- Set<IWorkingSet> tasksSets = new HashSet<IWorkingSet>(allSets);
- for (IWorkingSet workingSet : allSets) {
- if (workingSet.getId() == null
- || !workingSet.getId().equalsIgnoreCase(TaskWorkingSetUpdater.ID_TASK_WORKING_SET)) {
- tasksSets.remove(workingSet);
- }
- }
- return tasksSets;
- } else {
- return Collections.emptySet();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/WorkingSetLabelComparator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/WorkingSetLabelComparator.java
deleted file mode 100644
index 8fa17aee4..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/WorkingSetLabelComparator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Willian Mitsuda 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:
- * Willian Mitsuda - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.workingsets;
-
-import java.util.Comparator;
-
-import org.eclipse.ui.IWorkingSet;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * @author Willian Mitsuda
- */
-public class WorkingSetLabelComparator implements Comparator<IWorkingSet> {
-
- public int compare(IWorkingSet ws1, IWorkingSet ws2) {
- return Collator.getInstance().compare(ws1.getLabel(), ws2.getLabel());
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/messages.properties
deleted file mode 100644
index 3f82c779e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/messages.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-TaskWorkingSetPage_The_name_must_not_be_empty=The name must not be empty.
-TaskWorkingSetPage_The_name_must_not_have_a_leading_or_trailing_whitespace=The name must not have a leading or trailing whitespace.
-TaskWorkingSetPage_No_categories_queries_selected=No categories/queries selected.
-TaskWorkingSetPage_Resources=Resources
-TaskWorkingSetPage_Select_Working_Set_Elements=Select Working Set Elements
-TaskWorkingSetPage_Tasks=Tasks
-TaskWorkingSetPage_Page_Description=When this Working Set is selected views will be filtered just to show only these elements if the Window Working Set is enabled in the view.
-TaskWorkingSetPage_A_working_set_with_the_same_name_already_exists=A working set with the same name already exists.
-TaskWorkingSetPage_Select_All=Select All
-TaskWorkingSetPage_Deselect_All=Deselect All
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java
deleted file mode 100644
index bc0b45ed9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- * David Green - fix for bug 244442
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.mylyn.internal.tasks.ui.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskSearchPage;
-import org.eclipse.mylyn.tasks.ui.wizards.TaskAttachmentPage;
-
-/**
- * Extend to provide connector-specific UI extensions.
- *
- * TODO: consider refactoring into extension points
- *
- * @author Mik Kersten
- * @since 2.0
- */
-public abstract class AbstractRepositoryConnectorUi {
-
- private static final String LABEL_TASK_DEFAULT = Messages.AbstractRepositoryConnectorUi_Task;
-
- private final boolean customNotificationHandling = false;
-
- /**
- * @return the unique type of the repository, e.g. "bugzilla"
- */
- public abstract String getConnectorKind();
-
- /**
- * @since 3.0
- */
- public abstract ITaskRepositoryPage getSettingsPage(TaskRepository taskRepository);
-
- /**
- * @param repository
- * @param queryToEdit
- * can be null
- * @since 3.0
- */
- public abstract IWizard getQueryWizard(TaskRepository taskRepository, IRepositoryQuery queryToEdit);
-
- /**
- * @since 3.0
- */
- public abstract IWizard getNewTaskWizard(TaskRepository taskRepository, ITaskMapping selection);
-
- /**
- * Override to return a custom task editor ID. If overriding this method the connector becomes responsible for
- * showing the additional pages handled by the default task editor. As of Mylyn 2.0M2 these are the Planning and
- * Context pages.
- *
- * @since 3.0
- */
- public String getTaskEditorId(ITask repositoryTask) {
- return TaskEditor.ID_EDITOR;
- }
-
- public abstract boolean hasSearchPage();
-
- /**
- * Contributions to the UI legend.
- *
- * @deprecated use {@link #getLegendElements()} instead
- */
- @Deprecated
- public List<ITask> getLegendItems() {
- return Collections.emptyList();
- }
-
- /**
- * Contributions to the UI legend.
- *
- * @since 3.0
- */
- public List<LegendElement> getLegendElements() {
- return Collections.emptyList();
- }
-
- /**
- * @param repositoryTask
- * can be null
- * @since 3.0
- */
- public String getTaskKindLabel(ITask task) {
- return LABEL_TASK_DEFAULT;
- }
-
- /**
- * Connector-specific task icons. Not recommended to override unless providing custom icons and kind overlays.
- *
- * For connectors that have a decorator that they want to reuse, the connector can maintain a reference to the label
- * provider and get the descriptor from the images it returns.
- *
- * @since 3.0
- */
- public ImageDescriptor getImageDescriptor(IRepositoryElement element) {
- if (element instanceof IRepositoryQuery) {
- return TasksUiImages.QUERY;
- } else if (element instanceof ITask) {
- return TasksUiImages.TASK;
- } else {
- return null;
- }
- }
-
- /**
- * Task kind overlay, recommended to override with connector-specific overlay.
- *
- * @since 3.0
- */
- public ImageDescriptor getTaskKindOverlay(ITask task) {
- return null;
- }
-
- /**
- * Connector-specific priority icons. Not recommended to override since priority icons are used elsewhere in the
- * Task List UI (e.g. filter selection in view menu).
- *
- * @since 3.0
- */
- public ImageDescriptor getTaskPriorityOverlay(ITask task) {
- return TasksUiInternal.getPriorityImage(task);
- }
-
- /**
- * This method is not used anymore.
- *
- * @return returns null
- */
- @Deprecated
- public IWizard getAddExistingTaskWizard(TaskRepository repository) {
- return null;
- }
-
- /**
- * @since 3.0
- */
- public ITaskSearchPage getSearchPage(TaskRepository repository, IStructuredSelection selection) {
- return null;
- }
-
- /**
- * Override to return a URL that provides the user with an account creation page for the repository
- *
- * @param taskRepository
- * TODO
- */
- public String getAccountCreationUrl(TaskRepository taskRepository) {
- return null;
- }
-
- /**
- * Override to return a URL that provides the user with an account management page for the repository
- *
- * @param taskRepository
- * TODO
- */
- public String getAccountManagementUrl(TaskRepository taskRepository) {
- return null;
- }
-
- /**
- * Override to return a URL that provides the user with a history page for the task.
- *
- * @return a url of a page for the history of the task; null, if no history url is available
- * @since 3.0
- */
- public String getTaskHistoryUrl(TaskRepository taskRepository, ITask task) {
- return null;
- }
-
- /**
- * Override to return a textual reference to a comment, e.g. for Bugzilla this method returns <code>#12</code> for
- * comment 12. This reference is used when generating replies to comments
- *
- * @return a reference to <code>comment</code>; null, if no reference is available
- * @since 3.0
- */
- public String getReplyText(TaskRepository taskRepository, ITask task, ITaskComment taskComment, boolean includeTask) {
- return null;
- }
-
- /**
- * Returns an array of hyperlinks that link to tasks within <code>text</code>. If <code>index</code> is != -1
- * clients may limit the results to hyperlinks found at <code>index</code>. It is legal for clients to always return
- * all results.
- *
- * @param repository
- * the task repository, never <code>null</code>
- * @param text
- * the line of text
- * @param index
- * the index within <code>text</code>, if -1 return all hyperlinks found in text
- * @param textOffset
- * the offset of <code>text</code>
- * @return an array of hyperlinks, or null if no hyperlinks were found
- * @since 2.0
- */
- public IHyperlink[] findHyperlinks(TaskRepository repository, String text, int index, int textOffset) {
- return null;
- }
-
- /**
- * @since 3.0
- */
- public boolean hasCustomNotifications() {
- return customNotificationHandling;
- }
-
- /**
- * @since 3.0
- * @return true if connector doesn't support non-grouping (flattening) of subtasks
- */
- public boolean hasStrictSubtaskHierarchy() {
- return false;
- }
-
- /**
- * @since 3.0
- */
- public IWizardPage getTaskAttachmentPage(TaskAttachmentModel model) {
- return new TaskAttachmentPage(model);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskHyperlinkDetector.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskHyperlinkDetector.java
deleted file mode 100644
index 3a2f3e241..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskHyperlinkDetector.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eugene Kuleshov - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Base class for hyperlink detectors that provides methods for extracting text from an {@link ITextViewer}.
- *
- * @author Rob Elves
- * @author Steffen Pingel
- * @author Eugene Kuleshov
- * @author Terry Hon
- * @since 3.1
- */
-public abstract class AbstractTaskHyperlinkDetector extends AbstractHyperlinkDetector {
-
- /**
- * @since 3.1
- */
- public AbstractTaskHyperlinkDetector() {
- }
-
- /**
- * @since 3.1
- */
- public IHyperlink[] detectHyperlinks(ITextViewer textViewer, final IRegion region, boolean canShowMultipleHyperlinks) {
- IDocument document = textViewer.getDocument();
- if (document == null || document.getLength() == 0) {
- return null;
- }
-
- String content;
- int contentOffset;
- int index;
- try {
- if (region.getLength() == 0) {
- // expand the region to include the whole line
- IRegion lineInfo = document.getLineInformationOfOffset(region.getOffset());
- int lineLength = lineInfo.getLength();
- int lineOffset = lineInfo.getOffset();
- int lineEnd = lineOffset + lineLength;
- int regionEnd = region.getOffset() + region.getLength();
- if (lineOffset < region.getOffset()) {
- int regionLength = Math.max(regionEnd, lineEnd) - lineOffset;
- contentOffset = lineOffset;
- content = document.get(lineOffset, regionLength);
- index = region.getOffset() - lineOffset;
- } else {
- // the line starts after region, may never happen
- int regionLength = Math.max(regionEnd, lineEnd) - region.getOffset();
- contentOffset = region.getOffset();
- content = document.get(contentOffset, regionLength);
- index = 0;
- }
- } else {
- content = document.get(region.getOffset(), region.getLength());
- contentOffset = region.getOffset();
- index = -1;
- }
- } catch (BadLocationException ex) {
- return null;
- }
-
- List<IHyperlink> hyperlinks = detectHyperlinks(textViewer, content, index, contentOffset);
- if (hyperlinks == null) {
- return null;
- }
-
- // filter hyperlinks that do not match original region
- if (region.getLength() == 0) {
- for (Iterator<IHyperlink> it = hyperlinks.iterator(); it.hasNext();) {
- IHyperlink hyperlink = it.next();
- IRegion hyperlinkRegion = hyperlink.getHyperlinkRegion();
- if (!isInRegion(region, hyperlinkRegion)) {
- it.remove();
- }
- }
- }
- if (hyperlinks.isEmpty()) {
- return null;
- }
- return hyperlinks.toArray(new IHyperlink[hyperlinks.size()]);
- }
-
- /**
- * @since 3.1
- */
- protected abstract List<IHyperlink> detectHyperlinks(ITextViewer textViewer, String content, int index,
- int contentOffset);
-
- private boolean isInRegion(IRegion detectInRegion, IRegion hyperlinkRegion) {
- return detectInRegion.getOffset() >= hyperlinkRegion.getOffset()
- && detectInRegion.getOffset() <= hyperlinkRegion.getOffset() + hyperlinkRegion.getLength();
- }
-
- /**
- * @since 3.1
- */
- protected List<TaskRepository> getTaskRepositories(ITextViewer textViewer) {
- List<TaskRepository> repositories = new ArrayList<TaskRepository>();
- TaskRepository selectedRepository = getTaskRepository(textViewer);
- if (selectedRepository != null) {
- repositories.add(selectedRepository);
- } else {
- repositories.addAll(TasksUi.getRepositoryManager().getAllRepositories());
- }
- return repositories;
- }
-
- /**
- * @since 3.1
- */
- protected TaskRepository getTaskRepository(ITextViewer textViewer) {
- TaskRepository repository = (TaskRepository) getAdapter(TaskRepository.class);
- if (repository != null) {
- return repository;
- }
-
- IResource resource = (IResource) getAdapter(IResource.class);
- if (resource == null) {
- // use currently active editor (if any)
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage activePage = window.getActivePage();
- if (activePage != null) {
- IWorkbenchPart part = activePage.getActivePart();
- if (part instanceof IEditorPart) {
- IEditorInput input = ((IEditorPart) part).getEditorInput();
- if (input != null) {
- resource = (IResource) input.getAdapter(IResource.class);
- }
- }
- }
- }
- }
- if (resource != null) {
- return TasksUiPlugin.getDefault().getRepositoryForResource(resource);
- }
- return null;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskRepositoryLinkProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskRepositoryLinkProvider.java
deleted file mode 100644
index 3f773803b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractTaskRepositoryLinkProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.mylyn.tasks.core.IRepositoryManager;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * Extend to provide linking between repositories and tasks.
- *
- * @author Eugene Kuleshov
- * @since 2.0
- */
-public abstract class AbstractTaskRepositoryLinkProvider implements IExecutableExtension {
-
- private static final int DEFAULT_ORDER = 1000;
-
- private String id;
-
- private String name;
-
- private int order;
-
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data) {
- id = config.getAttribute("id"); //$NON-NLS-1$
- name = config.getAttribute("name"); //$NON-NLS-1$
- try {
- order = Integer.parseInt(config.getAttribute("order")); //$NON-NLS-1$
- } catch (NumberFormatException ex) {
- order = DEFAULT_ORDER;
- }
- }
-
- /**
- * This operation is invoked frequently by hyperlink detectors and needs to be fast (i.e. cannot do network access
- * or invoke long-running refreshes). Return null if the repository cannot be resolved without excessive file
- * I/O.@since 3.0
- *
- * @since 3.0
- */
- public abstract TaskRepository getTaskRepository(IResource resource, IRepositoryManager repositoryManager);
-
- public boolean canSetTaskRepository(IResource resource) {
- return false;
- }
-
- public boolean setTaskRepository(IResource resource, TaskRepository repository) {
- return false;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public int getOrder() {
- return order;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/IHighlightingHyperlink.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/IHighlightingHyperlink.java
deleted file mode 100644
index cd5cd34be..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/IHighlightingHyperlink.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import org.eclipse.jface.text.IRegion;
-
-/**
- * @author Steffen Pingel
- * @since 3.1
- */
-public interface IHighlightingHyperlink {
-
- public IRegion getHighlightingRegion();
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiConstants.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiConstants.java
deleted file mode 100644
index 720d19563..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiConstants.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-/**
- * @author Mik Kersten
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface ITasksUiConstants {
-
- /**
- * @since 3.0
- */
- public static final String ID_COMMAND_MARK_TASK_UNREAD = "org.eclipse.mylyn.tasks.ui.command.markTaskUnread"; //$NON-NLS-1$
-
- /**
- * @since 3.0
- */
- public static final String ID_COMMAND_MARK_TASK_READ = "org.eclipse.mylyn.tasks.ui.command.markTaskRead"; //$NON-NLS-1$
-
- /**
- * @since 3.0
- */
- public static final String ID_PAGE_PLANNING = "org.eclipse.mylyn.tasks.ui.pageFactory.Planning"; //$NON-NLS-1$
-
- /**
- * @since 3.0
- */
- public static final String ID_PERSPECTIVE_PLANNING = "org.eclipse.mylyn.tasks.ui.perspectives.planning"; //$NON-NLS-1$
-
- /**
- * @since 3.0
- */
- public static final String ID_PREFERENCES_COLORS_AND_FONTS = "org.eclipse.ui.preferencePages.ColorsAndFonts"; //$NON-NLS-1$
-
- /**
- * @since 3.2
- */
- public static final String ID_VIEW_TASKS = "org.eclipse.mylyn.tasks.ui.views.tasks"; //$NON-NLS-1$
-
- /**
- * @since 3.2
- */
- public static final String ID_VIEW_REPOSITORIES = "org.eclipse.mylyn.tasks.ui.views.repositories"; //$NON-NLS-1$
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiFactory.java
deleted file mode 100644
index 113b6134b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/ITasksUiFactory.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * A factory for creating instances of reusable UI components.
- *
- * @author Steffen Pingel
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- * @since 3.1
- */
-public interface ITasksUiFactory {
-
- /**
- * Returns a content assist processor for references to tasks.
- *
- * @since 3.1
- */
- public abstract IContentAssistProcessor createTaskContentAssistProcessor(TaskRepository repository);
-
- /**
- * Returns a content proposal provider for repository users.
- *
- * @since 3.1
- * @see #createPersonContentProposalLabelProvider(TaskRepository)
- */
- public abstract IContentProposalProvider createPersonContentProposalProvider(TaskRepository repository);
-
- /**
- * Returns a label provider for repository users content proposals.
- *
- * @since 3.1
- * @see #createPersonContentProposalProvider(TaskRepository)
- */
- public abstract ILabelProvider createPersonContentProposalLabelProvider(TaskRepository repository);
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/LegendElement.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/LegendElement.java
deleted file mode 100644
index 2b0d02d14..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/LegendElement.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class LegendElement {
-
- /**
- * @since 3.0
- */
- public static LegendElement createTask(String label, ImageDescriptor overlay) {
- return new LegendElement(label, CommonImages.getCompositeTaskImage(TasksUiImages.TASK, overlay, false));
- }
-
- private final Image image;
-
- private final String label;
-
- private LegendElement(String label, Image image) {
- this.label = label;
- this.image = image;
- }
-
- /**
- * @since 3.0
- */
- public void dispose() {
- }
-
- /**
- * @since 3.0
- */
- public Image getImage() {
- return image;
- }
-
- /**
- * @since 3.0
- */
- public String getLabel() {
- return label;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java
deleted file mode 100644
index 58ed39adb..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskElementLabelProvider.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFonts;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.DayDateRange;
-import org.eclipse.mylyn.internal.tasks.core.Person;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.TaskGroup;
-import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.WeekDateRange;
-import org.eclipse.mylyn.internal.tasks.ui.ITaskHighlighter;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.Messages;
-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.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskContainer;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @author Mik Kersten
- * @since 3.0
- */
-public class TaskElementLabelProvider extends LabelProvider implements IColorProvider, IFontProvider {
-
- private final IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
-
- private boolean wideImages = false;
-
- private class CompositeImageDescriptor {
-
- ImageDescriptor icon;
-
- ImageDescriptor overlayKind;
-
- };
-
- public TaskElementLabelProvider() {
- this(false);
- }
-
- public TaskElementLabelProvider(boolean wideImages) {
- super();
- this.wideImages = wideImages;
- }
-
- @Override
- public Image getImage(Object element) {
- CompositeImageDescriptor compositeDescriptor = getImageDescriptor(element);
- if (element instanceof ITask) {
- if (compositeDescriptor.overlayKind == null) {
- compositeDescriptor.overlayKind = CommonImages.OVERLAY_CLEAR;
- }
- return CommonImages.getCompositeTaskImage(compositeDescriptor.icon, compositeDescriptor.overlayKind,
- wideImages);
- } else if (element instanceof ITaskContainer) {
- return CommonImages.getCompositeTaskImage(compositeDescriptor.icon, CommonImages.OVERLAY_CLEAR, wideImages);
- } else {
- return CommonImages.getCompositeTaskImage(compositeDescriptor.icon, null, wideImages);
- }
- }
-
- private CompositeImageDescriptor getImageDescriptor(Object object) {
- CompositeImageDescriptor compositeDescriptor = new CompositeImageDescriptor();
- if (object instanceof UncategorizedTaskContainer) {
- compositeDescriptor.icon = TasksUiImages.CATEGORY_UNCATEGORIZED;
- return compositeDescriptor;
- } else if (object instanceof UnsubmittedTaskContainer) {
- compositeDescriptor.icon = TasksUiImages.CATEGORY_UNCATEGORIZED;
- return compositeDescriptor;
- } else if (object instanceof TaskCategory) {
- compositeDescriptor.icon = TasksUiImages.CATEGORY;
- } else if (object instanceof TaskGroup) {
- compositeDescriptor.icon = CommonImages.GROUPING;
- }
-
- if (object instanceof ITaskContainer) {
- IRepositoryElement element = (IRepositoryElement) object;
-
- AbstractRepositoryConnectorUi connectorUi = null;
- if (element instanceof ITask) {
- ITask repositoryTask = (ITask) element;
- connectorUi = TasksUiPlugin.getConnectorUi(((ITask) element).getConnectorKind());
- if (connectorUi != null) {
- compositeDescriptor.overlayKind = connectorUi.getTaskKindOverlay(repositoryTask);
- }
- } else if (element instanceof IRepositoryQuery) {
- connectorUi = TasksUiPlugin.getConnectorUi(((IRepositoryQuery) element).getConnectorKind());
- }
-
- if (connectorUi != null) {
- compositeDescriptor.icon = connectorUi.getImageDescriptor(element);
- return compositeDescriptor;
- } else {
- if (element instanceof UnmatchedTaskContainer) {
- compositeDescriptor.icon = TasksUiImages.QUERY_UNMATCHED;
- } else if (element instanceof IRepositoryQuery || object instanceof UnmatchedTaskContainer) {
- compositeDescriptor.icon = TasksUiImages.QUERY;
- } else if (element instanceof ITask) {
- compositeDescriptor.icon = TasksUiImages.TASK;
- } else if (element instanceof ScheduledTaskContainer) {
- ScheduledTaskContainer scheduledTaskContainer = (ScheduledTaskContainer) element;
- if (scheduledTaskContainer.getDateRange() instanceof DayDateRange) {
- compositeDescriptor.icon = CommonImages.SCHEDULE_DAY;
- } else if (scheduledTaskContainer.getDateRange() instanceof WeekDateRange) {
- compositeDescriptor.icon = CommonImages.SCHEDULE_WEEK;
- } else {
- compositeDescriptor.icon = TasksUiImages.QUERY_UNMATCHED;
- }
- } else if (element instanceof Person) {
- compositeDescriptor.icon = CommonImages.PERSON;
- Person person = (Person) element;
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(person.getConnectorKind(),
- person.getRepositoryUrl());
-
- if (repository != null
- && !repository.isAnonymous()
- && (repository.getUserName() != null && repository.getUserName().equalsIgnoreCase(
- element.getHandleIdentifier()))) {
- compositeDescriptor.icon = CommonImages.PERSON_ME;
- }
- }
- return compositeDescriptor;
- }
- }
- return compositeDescriptor;
- }
-
- @Override
- public String getText(Object object) {
- if (object instanceof ITask) {
- ITask task = (ITask) object;
- String summary = task.getSummary();
- if (summary == null) {
- summary = Messages.TaskElementLabelProvider__no_summary_available_;
- }
- String taskKey = task.getTaskKey();
- if (taskKey != null) {
- return taskKey + ": " + summary; //$NON-NLS-1$
- } else {
- return summary;
- }
- } else if (object instanceof IRepositoryElement) {
- IRepositoryElement element = (IRepositoryElement) object;
- return element.getSummary();
- } else {
- return super.getText(object);
- }
- }
-
- public Color getForeground(Object object) {
- if (object instanceof AbstractTask) {
- AbstractTask task = (AbstractTask) object;
- if (task != null) {
- if (TasksUiPlugin.getTaskActivityManager().isCompletedToday(task)) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_COMPLETED_TODAY);
- } else if (task.isCompleted()) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_COMPLETED);
- } else if (TasksUi.getTaskActivityManager().isActive(task)) {
- return CommonColors.CONTEXT_ACTIVE;
- } else if (TasksUiPlugin.getTaskActivityManager().isOverdue(task)) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_OVERDUE);
- } else if (TasksUiPlugin.getTaskActivityManager().isDueToday(task)) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_SCHEDULED_TODAY);
- } else if (task.getScheduledForDate() != null
- && TasksUiPlugin.getTaskActivityManager().isPastReminder(task)) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_SCHEDULED_PAST);
- } else if (TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_SCHEDULED_TODAY);
- } else if (TasksUiPlugin.getTaskActivityManager().isScheduledForThisWeek(task)) {
- return themeManager.getCurrentTheme()
- .getColorRegistry()
- .get(CommonThemes.COLOR_SCHEDULED_THIS_WEEK);
- }
- }
- } else if (object instanceof ITaskContainer) {
- for (ITask child : ((ITaskContainer) object).getChildren()) {
- if (child.isActive() || (child instanceof ITaskContainer && showHasActiveChild((ITaskContainer) child))) {
- return CommonColors.CONTEXT_ACTIVE;
- } else if (TasksUiPlugin.getTaskActivityManager().isOverdue(child)) {
-// } else if ((child.isPastReminder() && !child.isCompleted()) || showHasChildrenPastDue(child)) {
- return themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_OVERDUE);
- }
- }
- }
- return null;
- }
-
- public Color getBackground(Object element) {
- if (element instanceof ITask) {
- ITask task = (ITask) element;
- ITaskHighlighter highlighter = TasksUiPlugin.getDefault().getHighlighter();
- if (highlighter != null) {
- return highlighter.getHighlightColor(task);
- }
- }
- return null;
- }
-
- public Font getFont(Object element) {
- if (element instanceof AbstractTask) {
- if (((AbstractTask) element).isSynchronizing()) {
- if (((AbstractTask) element).isActive()) {
- return CommonFonts.BOLD_ITALIC;
- } else {
- return CommonFonts.ITALIC;
- }
- }
- }
-
- if (element instanceof IRepositoryQuery) {
- if (((RepositoryQuery) element).isSynchronizing()) {
- return CommonFonts.ITALIC;
- }
- }
-
- if (element instanceof ITaskContainer) {
- for (ITask child : ((ITaskContainer) element).getChildren()) {
- if (child.isActive() || (child instanceof ITaskContainer && showHasActiveChild((ITaskContainer) child))) {
- return CommonFonts.BOLD;
- }
- }
- }
-
- if (element instanceof AbstractTask) {
- if (((AbstractTask) element).isActive()) {
- return CommonFonts.BOLD;
- } else if (((AbstractTask) element).isCompleted()) {
- if (CommonFonts.HAS_STRIKETHROUGH
- && TasksUiPlugin.getDefault().getPluginPreferences().getBoolean(
- ITasksUiPreferenceConstants.USE_STRIKETHROUGH_FOR_COMPLETED)) {
- return CommonFonts.STRIKETHROUGH;
- } else {
- return null;
- }
- }
- for (ITask child : ((ITaskContainer) element).getChildren()) {
- if (child.isActive() || (child instanceof ITaskContainer && showHasActiveChild((ITaskContainer) child))) {
- return CommonFonts.BOLD;
- }
- }
- }
- return null;
- }
-
- private boolean showHasActiveChild(ITaskContainer container) {
- if (!TasksUiPlugin.getDefault().groupSubtasks(container)) {
- return false;
- }
-
- return showHasActiveChildHelper(container, new HashSet<IRepositoryElement>());
- }
-
- private boolean showHasActiveChildHelper(ITaskContainer container, Set<IRepositoryElement> visitedContainers) {
- for (IRepositoryElement child : container.getChildren()) {
- if (visitedContainers.contains(child)) {
- continue;
- }
- visitedContainers.add(child);
- if (child instanceof ITask && ((AbstractTask) child).isActive()) {
- return true;
- } else if (child instanceof ITaskContainer) {
- if (showHasActiveChildHelper((ITaskContainer) child, visitedContainers)) {
- return true;
- }
- }
- }
- return false;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlink.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlink.java
deleted file mode 100644
index d0294886b..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlink.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.tasks.ui.Messages;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * Immutable. Encapsulates information for linking to tasks from text.
- *
- * @author Eugene Kuleshov
- * @author Steffen Pingel
- * @noextend This class is not intended to be subclassed by clients.
- */
-public final class TaskHyperlink implements IHyperlink {
-
- private final IRegion region;
-
- private final TaskRepository repository;
-
- private final String taskId;
-
- public TaskHyperlink(IRegion region, TaskRepository repository, String taskId) {
- this.region = region;
- this.repository = repository;
- this.taskId = taskId;
- }
-
- public IRegion getHyperlinkRegion() {
- return region;
- }
-
- public String getTaskId() {
- return taskId;
- }
-
- public String getTypeLabel() {
- return null;
- }
-
- /**
- * @Since 2.1
- * @return
- */
- public TaskRepository getRepository() {
- return repository;
- }
-
- public String getHyperlinkText() {
- return MessageFormat.format(Messages.TaskHyperlink_Open_Task_X_in_X, taskId, repository.getRepositoryLabel());
- }
-
- public void open() {
- if (repository != null) {
- TasksUiUtil.openTask(repository, taskId);
- } else {
- MessageDialog.openError(null, "Mylyn", Messages.TaskHyperlink_Could_not_determine_repository_for_report); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlinkPresenter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlinkPresenter.java
deleted file mode 100644
index 6e0745ffe..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskHyperlinkPresenter.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui;
-
-import java.lang.reflect.Constructor;
-import java.util.Iterator;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.jface.text.hyperlink.DefaultHyperlinkPresenter;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkPresenter;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * A hyperlink presenter that displays a tooltip when hovering over a {@link TaskHyperlink}.
- *
- * @author Steffen Pingel
- * @author Frank Becker
- * @since 3.1
- */
-public final class TaskHyperlinkPresenter extends DefaultHyperlinkPresenter {
-
- private IRegion activeRegion;
-
- /**
- * Stores which task a tooltip is being displayed for. It is used to avoid having the same tooltip being set
- * multiple times while you move the mouse over a task hyperlink (bug#209409)
- */
- private ITask currentTaskHyperlink;
-
- private ITextViewer textViewer;
-
- private IHyperlinkPresenter multiplePresenter;
-
- /**
- * @see DefaultHyperlinkPresenter#DefaultHyperlinkPresenter(IPreferenceStore)
- */
- public TaskHyperlinkPresenter(IPreferenceStore store) {
- super(store);
- initMultipleHyperlinkSupport(IPreferenceStore.class, store);
- }
-
- /**
- * @see DefaultHyperlinkPresenter#DefaultHyperlinkPresenter(RGB)
- */
- public TaskHyperlinkPresenter(RGB color) {
- super(color);
- initMultipleHyperlinkSupport(RGB.class, color);
- }
-
- @Override
- public boolean canShowMultipleHyperlinks() {
- return multiplePresenter != null;
- }
-
- // TODO e3.4 remove reflection
- @SuppressWarnings("unchecked")
- private <T> void initMultipleHyperlinkSupport(Class<T> argClass, T arg) {
- try {
- Class<IHyperlinkPresenter> clazz = (Class<IHyperlinkPresenter>) Class.forName("org.eclipse.jface.text.hyperlink.MultipleHyperlinkPresenter"); //$NON-NLS-1$
- Constructor<IHyperlinkPresenter> constructor = clazz.getDeclaredConstructor(argClass);
- multiplePresenter = constructor.newInstance(arg);
- } catch (Throwable t) {
- // ignore
- }
- }
-
- @Override
- public void install(ITextViewer textViewer) {
- this.textViewer = textViewer;
- super.install(textViewer);
- if (multiplePresenter != null) {
- multiplePresenter.install(textViewer);
- }
- }
-
- @Override
- public void uninstall() {
- hideHyperlinks();
- this.textViewer = null;
- super.uninstall();
- if (multiplePresenter != null) {
- multiplePresenter.uninstall();
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void applyTextPresentation(TextPresentation textPresentation) {
- super.applyTextPresentation(textPresentation);
- // decorate hyperlink as strike-through if task is completed, this is now also handled by TaskHyperlinkTextPresentationManager
- if (activeRegion != null && currentTaskHyperlink != null && currentTaskHyperlink.isCompleted()) {
- Iterator<StyleRange> styleRangeIterator = textPresentation.getAllStyleRangeIterator();
- while (styleRangeIterator.hasNext()) {
- StyleRange styleRange = styleRangeIterator.next();
- if (activeRegion.getOffset() == styleRange.start && activeRegion.getLength() == styleRange.length) {
- styleRange.strikeout = true;
- break;
- }
- }
- }
- }
-
- @Override
- public void showHyperlinks(IHyperlink[] hyperlinks) {
- if (hyperlinks.length > 1 && multiplePresenter != null) {
- multiplePresenter.showHyperlinks(hyperlinks);
- } else {
- activeRegion = null;
- if (hyperlinks.length > 0 && hyperlinks[0] instanceof TaskHyperlink) {
- TaskHyperlink hyperlink = (TaskHyperlink) hyperlinks[0];
-
- TaskList taskList = TasksUiPlugin.getTaskList();
- String repositoryUrl = hyperlink.getRepository().getRepositoryUrl();
-
- ITask task = taskList.getTask(repositoryUrl, hyperlink.getTaskId());
- if (task == null) {
- task = taskList.getTaskByKey(repositoryUrl, hyperlink.getTaskId());
- }
-
- if (task != null && task != currentTaskHyperlink) {
- currentTaskHyperlink = task;
- activeRegion = hyperlink.getHyperlinkRegion();
- if (textViewer != null && textViewer.getTextWidget() != null
- && !textViewer.getTextWidget().isDisposed()) {
- if (task.getTaskKey() == null) {
- textViewer.getTextWidget().setToolTipText(task.getSummary());
- } else {
- textViewer.getTextWidget().setToolTipText(task.getTaskKey() + ": " + task.getSummary()); //$NON-NLS-1$
- }
- }
- }
- }
- super.showHyperlinks(hyperlinks);
- }
- }
-
- @Override
- public void hideHyperlinks() {
- if (currentTaskHyperlink != null) {
- if (textViewer != null && textViewer.getTextWidget() != null && !textViewer.getTextWidget().isDisposed()) {
- textViewer.getTextWidget().setToolTipText(null);
- }
- currentTaskHyperlink = null;
- }
- if (multiplePresenter != null) {
- multiplePresenter.hideHyperlinks();
- }
- super.hideHyperlinks();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskRepositoryLocationUiFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskRepositoryLocationUiFactory.java
deleted file mode 100644
index e9ad53058..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskRepositoryLocationUiFactory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.internal.tasks.ui.TaskRepositoryLocationUi;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
-
-/**
- * @since 2.2
- * @author Steffen Pingel
- */
-public class TaskRepositoryLocationUiFactory extends TaskRepositoryLocationFactory {
-
- /**
- * @since 3.0
- */
- @Override
- public AbstractWebLocation createWebLocation(TaskRepository taskRepository) {
- return new TaskRepositoryLocationUi(taskRepository);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUi.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUi.java
deleted file mode 100644
index ec4bcb4b2..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUi.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryManager;
-import org.eclipse.mylyn.tasks.core.IRepositoryModel;
-import org.eclipse.mylyn.tasks.core.ITaskActivityManager;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataManager;
-
-/**
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @author Steffen Pingel
- * @author Mik Kersten
- * @since 3.0
- */
-public class TasksUi {
-
- /**
- * @since 3.0
- */
- public static AbstractRepositoryConnector getRepositoryConnector(String kind) {
- return getRepositoryManager().getRepositoryConnector(kind);
- }
-
- /**
- * @since 3.0
- */
- public static AbstractRepositoryConnectorUi getRepositoryConnectorUi(String kind) {
- return TasksUiPlugin.getConnectorUi(kind);
- }
-
- /**
- * @since 3.0
- */
- public static IRepositoryManager getRepositoryManager() {
- return TasksUiPlugin.getRepositoryManager();
- }
-
- /**
- * @since 3.0
- */
- public static ITaskActivityManager getTaskActivityManager() {
- return TasksUiPlugin.getTaskActivityManager();
- }
-
- /**
- * @since 3.0
- */
- public static ITaskDataManager getTaskDataManager() {
- return TasksUiPlugin.getTaskDataManager();
- }
-
- /**
- * @since 3.0
- */
- public static IRepositoryModel getRepositoryModel() {
- return TasksUiPlugin.getRepositoryModel();
- }
-
- /**
- * @since 3.1
- */
- public static ITasksUiFactory getUiFactory() {
- return TasksUiPlugin.getUiFactory();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiImages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiImages.java
deleted file mode 100644
index 0792d79b0..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiImages.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @author Mik Kersten
- * @since 3.0
- */
-public class TasksUiImages {
-
- private static final URL baseURL = TasksUiPlugin.getDefault().getBundle().getEntry("/icons/"); //$NON-NLS-1$
-
- private static final String VIEW = "eview16"; //$NON-NLS-1$
-
- private static final String TOOL = "etool16"; //$NON-NLS-1$
-
- private static final String TOOL_SMALL = "etool12"; //$NON-NLS-1$
-
- private static final String OBJ = "obj16"; //$NON-NLS-1$
-
- private static final String WIZBAN = "wizban"; //$NON-NLS-1$
-
- // Tasks and Task List elements
-
- public static final ImageDescriptor TASK = create(TOOL, "task.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_COMPLETE = create(TOOL, "task-complete.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_INCOMPLETE = create(TOOL, "task-incomplete.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_COMPLETED = create(TOOL, "task-completed.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_NOTES = create(TOOL, "task-notes.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_NEW = create(TOOL, "task-new.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_NEW_SUB = create(TOOL, "sub-task-new.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_REPOSITORY_HISTORY = create(TOOL, "task-repository-history.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_REMOTE = create(TOOL, "task-remote.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_WORKING_SET = create(TOOL, "open-task.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASKS_VIEW = create("eview16", "task-list.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor TASK_ATTACHMENT_PATCH = create(OBJ, "attachment-patch.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_RETRIEVE = create(TOOL, "task-retrieve.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_REPOSITORY = create(TOOL, "task-repository.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor TASK_REPOSITORY_NEW = create(TOOL, "task-repository-new.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CATEGORY = create(TOOL, "category.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CATEGORY_NEW = create(TOOL, "category-new.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CATEGORY_UNCATEGORIZED = create(TOOL, "category-archive.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor QUERY = create(TOOL, "query.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor QUERY_NEW = create(TOOL, "query-new.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor QUERY_UNMATCHED = create(TOOL, "query-unmatched.png"); //$NON-NLS-1$
-
- public static final ImageDescriptor REPOSITORY = create("eview16", "repository.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor REPOSITORY_OFFLINE = ImageDescriptor.createWithFlags(TasksUiImages.REPOSITORY,
- SWT.IMAGE_GRAY);
-
- public static final ImageDescriptor REPOSITORY_SYNCHRONIZE_SMALL = create(TOOL_SMALL,
- "repository-synchronize-small.png"); //$NON-NLS-1$
-
- public static final ImageDescriptor REPOSITORY_SYNCHRONIZE = create(TOOL, "repository-synchronize.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor REPOSITORY_SUBMIT = create(TOOL, "repository-submit.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor REPOSITORY_SMALL = create(OBJ, "repository-small.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor REPOSITORY_NEW = create("etool16", "repository-new.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- /**
- * @since 3.1
- */
- public static final ImageDescriptor REPOSITORY_VALIDATE = create("obj16", "resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static final ImageDescriptor REPOSITORIES_VIEW = create("eview16", "repositories.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-
- // Context and activation
-
- public static final ImageDescriptor CONTEXT_ACTIVE = create(TOOL, "task-active.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_ACTIVE_CENTERED = create(TOOL, "task-active-centered.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_INACTIVE_EMPTY = create(TOOL, "task-inactive.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_INACTIVE = create(TOOL, "task-context.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_FOCUS = create(VIEW, "focus.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_ATTACH = create(TOOL, "context-attach.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_RETRIEVE = create(TOOL, "context-retrieve.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_TRANSFER = create(TOOL, "context-transfer.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_CLEAR = create(TOOL, "context-clear.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_HISTORY_PREVIOUS = create(TOOL, "navigate-previous.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_HISTORY_PREVIOUS_PAUSE = create(TOOL, "navigate-previous-pause.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_HISTORY_PREVIOUS_ACTIVE = create(TOOL, "navigate-previous-active.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_HISTORY_NEXT = create(TOOL, "navigate-next.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_CAPTURE_PAUSE = create(TOOL, "capture-pause.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_ADD = create(TOOL, "context-add.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor CONTEXT_COPY = create(TOOL, "context-transfer.gif"); //$NON-NLS-1$
-
- // Comments and collaboration
-
- public static final ImageDescriptor COMMENT = create(TOOL, "comment.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor COMMENT_SORT_DOWN = create(TOOL, "sort-down.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor COMMENT_SORT_UP = create(TOOL, "sort-up.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor COMMENT_SORT_DOWN_GRAY = create(TOOL, "sort-down-gray.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor COMMENT_SORT_UP_GRAY = create(TOOL, "sort-up-gray.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor COMMENT_REPLY = create(TOOL, "reply.gif"); //$NON-NLS-1$
-
- /**
- * @since 3.1
- */
- public static final ImageDescriptor COMMENT_REPLY_SMALL = create(TOOL_SMALL, "reply.gif"); //$NON-NLS-1$
-
- // Wizard banners
-
- public static final ImageDescriptor BANNER_REPOSITORY = create(WIZBAN, "banner-repository.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor BANNER_REPOSITORY_SETTINGS = create(WIZBAN, "banner-repository-settings.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor BANNER_REPOSITORY_CONTEXT = create(WIZBAN, "banner-repository-context.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor BANNER_WORKING_SET = create(WIZBAN, "workset_wiz.png"); //$NON-NLS-1$
-
- public static Image getImageForPriority(PriorityLevel priorityLevel) {
- if (priorityLevel == null) {
- return null;
- } else {
- ImageDescriptor imageDescriptor = getImageDescriptorForPriority(priorityLevel);
- if (imageDescriptor != null) {
- return CommonImages.getImage(imageDescriptor);
- }
- }
- return null;
- }
-
- public static ImageDescriptor getImageDescriptorForPriority(PriorityLevel priorityLevel) {
- if (priorityLevel == null) {
- return null;
- }
- switch (priorityLevel) {
- case P1:
- return CommonImages.PRIORITY_1;
- case P2:
- return CommonImages.PRIORITY_2;
- case P3:
- return CommonImages.PRIORITY_3;
- case P4:
- return CommonImages.PRIORITY_4;
- case P5:
- return CommonImages.PRIORITY_5;
- default:
- return null;
- }
- }
-
- public static ImageDescriptor create(String prefix, String name) {
- try {
- return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
- } catch (MalformedURLException e) {
- return ImageDescriptor.getMissingImageDescriptor();
- }
- }
-
- private static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
- if (baseURL == null) {
- throw new MalformedURLException();
- }
-
- StringBuffer buffer = new StringBuffer(prefix);
- buffer.append('/');
- buffer.append(name);
- return new URL(baseURL, buffer.toString());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java
deleted file mode 100644
index 19cd03399..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesView;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.MultiRepositoryAwareWizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.mylyn.tasks.ui.wizards.TaskRepositoryWizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @since 2.0
- * @author Mik Kersten
- * @author Steffen Pingel
- * @author Shawn Minto
- */
-public class TasksUiUtil {
-
- /**
- * Flag that is passed along to the workbench browser support when a task is opened in a browser because no rich
- * editor was available.
- *
- * @see #openTask(String)
- */
- public static final int FLAG_NO_RICH_EDITOR = 1 << 17;
-
- /**
- * @since 3.0
- */
- public static ITask createOutgoingNewTask(String connectorKind, String repositoryUrl) {
- Assert.isNotNull(connectorKind);
- LocalTask task = TasksUiInternal.createNewLocalTask(null);
- task.setAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_CONNECTOR_KIND, connectorKind);
- task.setAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_REPOSITORY_URL, repositoryUrl);
- task.setSynchronizationState(SynchronizationState.OUTGOING_NEW);
- return task;
- }
-
- /**
- * @since 3.0
- */
- public static boolean isOutgoingNewTask(ITask task, String connectorKind) {
- Assert.isNotNull(task);
- Assert.isNotNull(connectorKind);
- return connectorKind.equals(task.getAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_CONNECTOR_KIND));
- }
-
- /**
- * @since 3.1
- */
- public static TaskRepository getOutgoingNewTaskRepository(ITask task) {
- Assert.isNotNull(task);
- String connectorKind = task.getAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_CONNECTOR_KIND);
- String repositoryUrl = task.getAttribute(ITasksCoreConstants.ATTRIBUTE_OUTGOING_NEW_REPOSITORY_URL);
- if (connectorKind != null && repositoryUrl != null) {
- return TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl);
- }
- return null;
- }
-
- public static TaskRepository getSelectedRepository() {
- return getSelectedRepository(null);
- }
-
- /**
- * Will use the workbench window's selection if viewer's selection is null
- */
- public static TaskRepository getSelectedRepository(StructuredViewer viewer) {
- IStructuredSelection selection = null;
- if (viewer != null) {
- selection = (IStructuredSelection) viewer.getSelection();
- }
- if (selection == null || selection.isEmpty()) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- ISelection windowSelection = window.getSelectionService().getSelection();
- if (windowSelection instanceof IStructuredSelection) {
- selection = (IStructuredSelection) windowSelection;
- }
- }
-
- if (selection == null) {
- return null;
- }
-
- Object element = selection.getFirstElement();
- if (element instanceof TaskRepository) {
- return (TaskRepository) selection.getFirstElement();
- } else if (element instanceof IRepositoryQuery) {
- IRepositoryQuery query = (IRepositoryQuery) element;
- return TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(), query.getRepositoryUrl());
- } else if (element instanceof ITask) {
- ITask task = (ITask) element;
- return TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(), task.getRepositoryUrl());
- } else if (element instanceof IResource) {
- IResource resource = (IResource) element;
- return TasksUiPlugin.getDefault().getRepositoryForResource(resource);
- } else if (element instanceof IAdaptable) {
- IAdaptable adaptable = (IAdaptable) element;
- IResource resource = (IResource) adaptable.getAdapter(IResource.class);
- if (resource != null) {
- return TasksUiPlugin.getDefault().getRepositoryForResource(resource);
- } else {
- ITask task = (ITask) adaptable.getAdapter(AbstractTask.class);
- if (task != null) {
- ITask rtask = task;
- return TasksUi.getRepositoryManager().getRepository(rtask.getConnectorKind(),
- rtask.getRepositoryUrl());
- }
- }
- }
-
- // TODO mapping between LogEntry.pliginId and repositories
- // TODO handle other selection types
- return null;
- }
-
- private static String getTaskEditorId(final ITask task) {
- String taskEditorId = TaskEditor.ID_EDITOR;
- if (task != null) {
- ITask repositoryTask = task;
- AbstractRepositoryConnectorUi repositoryUi = TasksUiPlugin.getConnectorUi(repositoryTask.getConnectorKind());
- String customTaskEditorId = repositoryUi.getTaskEditorId(repositoryTask);
- if (customTaskEditorId != null) {
- taskEditorId = customTaskEditorId;
- }
- }
- return taskEditorId;
- }
-
- public static IEditorPart openEditor(IEditorInput input, String editorId, IWorkbenchPage page) {
- if (page == null) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- page = window.getActivePage();
- }
- }
- if (page == null) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Unable to open editor for \"" + input //$NON-NLS-1$
- + "\": no active workbench window")); //$NON-NLS-1$
- return null;
- }
- try {
- return page.openEditor(input, editorId);
- } catch (PartInitException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Open for editor failed: " + input //$NON-NLS-1$
- + ", taskId: " + editorId, e)); //$NON-NLS-1$
- }
- return null;
- }
-
- public static int openEditRepositoryWizard(TaskRepository repository) {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- if (connector == null || !connector.isUserManaged()) {
- return Window.CANCEL;
- }
-
- try {
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (shell != null && !shell.isDisposed()) {
- WizardDialog dialog = new TaskRepositoryWizardDialog(shell, wizard);
- dialog.create();
- dialog.setBlockOnOpen(true);
- if (dialog.open() == Window.CANCEL) {
- dialog.close();
- return Window.CANCEL;
- }
- }
-
- if (TaskRepositoriesView.getFromActivePerspective() != null) {
- TaskRepositoriesView.getFromActivePerspective().getViewer().refresh();
- }
- } catch (Exception e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e));
- }
- return Window.OK;
- }
-
- /**
- * @since 3.0
- */
- public static boolean openNewLocalTaskEditor(Shell shell, ITaskMapping taskSelection) {
- return openNewTaskEditor(shell, new NewLocalTaskWizard(taskSelection), taskSelection);
- }
-
- private static boolean openNewTaskEditor(Shell shell, IWizard wizard, ITaskMapping taskSelection) {
- WizardDialog dialog = new WizardDialog(shell, wizard);
- dialog.setBlockOnOpen(true);
-
- // make sure the wizard has created its pages
- dialog.create();
- if (!(wizard instanceof MultiRepositoryAwareWizard) && wizard.canFinish()) {
- wizard.performFinish();
- return true;
- }
-
- int result = dialog.open();
- return result == Window.OK;
- }
-
- /**
- * @since 3.0
- */
- public static boolean openNewTaskEditor(Shell shell, ITaskMapping taskSelection, TaskRepository taskRepository) {
- final IWizard wizard;
- List<TaskRepository> repositories = TasksUi.getRepositoryManager().getAllRepositories();
- if (taskRepository == null && repositories.size() == 1) {
- // only the Local repository connector is available
- taskRepository = repositories.get(0);
- }
-
- if (taskRepository != null) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
- wizard = connectorUi.getNewTaskWizard(taskRepository, taskSelection);
- } else {
- wizard = TasksUiInternal.createNewTaskWizard(taskSelection);
- }
-
- return openNewTaskEditor(shell, wizard, taskSelection);
- }
-
- /**
- * Either pass in a repository and taskId, or fullUrl, or all of them
- *
- * @deprecated Use {@link #openTask(String,String,String)} instead
- */
- @Deprecated
- public static boolean openRepositoryTask(String repositoryUrl, String taskId, String fullUrl) {
- return openTask(repositoryUrl, taskId, fullUrl);
- }
-
- /**
- * @deprecated Use {@link #openTask(TaskRepository,String)} instead
- */
- @Deprecated
- public static boolean openRepositoryTask(TaskRepository repository, String taskId) {
- return openTask(repository, taskId);
- }
-
- /**
- * @since 3.0
- */
- public static boolean openTask(ITask task) {
- Assert.isNotNull(task);
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- boolean openWithBrowser = !TasksUiPlugin.getDefault().getPreferenceStore().getBoolean(
- ITasksUiPreferenceConstants.EDITOR_TASKS_RICH);
- if (openWithBrowser) {
- openUrl(task.getUrl());
- return true;
- } else {
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(),
- task.getRepositoryUrl());
- IEditorInput editorInput = new TaskEditorInput(taskRepository, task);
- boolean wasOpen = refreshEditorContentsIfOpen(task, editorInput);
- if (wasOpen) {
- synchronizeTask(taskRepository, task);
- return true;
- } else {
- IWorkbenchPage page = window.getActivePage();
- IEditorPart editor = openEditor(editorInput, getTaskEditorId(task), page);
- if (editor != null) {
- synchronizeTask(taskRepository, task);
- return true;
- }
- }
- }
- } else {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Unable to open editor for \"" //$NON-NLS-1$
- + task.getSummary() + "\": no active workbench window")); //$NON-NLS-1$
- }
- return false;
- }
-
- private static void synchronizeTask(TaskRepository taskRepository, ITask task) {
- if (task instanceof LocalTask) {
- return;
- }
-
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- task.getConnectorKind());
- if (connector.canSynchronizeTask(taskRepository, task)) {
- TasksUiInternal.synchronizeTask(connector, task, false, null);
- }
- }
-
- /**
- * Resolves a rich editor for the task if available.
- *
- * @since 3.0
- */
- public static void openTask(String url) {
- AbstractTask task = TasksUiInternal.getTaskByUrl(url);
- if (task != null && !(task instanceof LocalTask)) {
- openTask(task);
- } else {
- boolean opened = false;
- if (url != null) {
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager()
- .getConnectorForRepositoryTaskUrl(url);
- if (connector != null) {
- String repositoryUrl = connector.getRepositoryUrlFromTaskUrl(url);
- if (repositoryUrl != null) {
- String id = connector.getTaskIdFromTaskUrl(url);
- if (id != null) {
- TaskRepository repository = TasksUi.getRepositoryManager().getRepository(
- connector.getConnectorKind(), repositoryUrl);
- if (repository != null) {
- opened = openTask(repository, id);
- }
- }
- }
- }
- }
- if (!opened) {
- WorkbenchUtil.openUrl(url, 0);
- }
- }
- }
-
- /**
- * Either pass in a repository and taskId, or fullUrl, or all of them
- *
- * @since 3.0
- */
- public static boolean openTask(String repositoryUrl, String taskId, String fullUrl) {
- AbstractTask task = TasksUiInternal.getTask(repositoryUrl, taskId, fullUrl);
-
- if (task != null) {
- return TasksUiUtil.openTask(task);
- }
-
- boolean opened = false;
-
- AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager().getConnectorForRepositoryTaskUrl(
- fullUrl);
- if (connector != null) {
- if (repositoryUrl != null && taskId != null) {
- opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId);
- } else {
- repositoryUrl = connector.getRepositoryUrlFromTaskUrl(fullUrl);
- taskId = connector.getTaskIdFromTaskUrl(fullUrl);
- if (repositoryUrl != null && taskId != null) {
- opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId);
- }
- }
- }
-
- if (!opened) {
- TasksUiUtil.openUrl(fullUrl);
- }
-
- return true;
- }
-
- /**
- * @since 3.0
- */
- public static boolean openTask(TaskRepository repository, String taskId) {
- Assert.isNotNull(repository);
- Assert.isNotNull(taskId);
-
- AbstractTask task = (AbstractTask) TasksUiInternal.getTaskList().getTask(repository.getRepositoryUrl(), taskId);
- if (task == null) {
- task = TasksUiPlugin.getTaskList().getTaskByKey(repository.getRepositoryUrl(), taskId);
- }
- if (task != null) {
- return TasksUiUtil.openTask(task);
- } else {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind());
- if (connectorUi != null) {
- try {
- return TasksUiInternal.openRepositoryTask(connectorUi.getConnectorKind(),
- repository.getRepositoryUrl(), taskId);
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Internal error while opening repository task", e)); //$NON-NLS-1$
- }
- }
- }
- return false;
- }
-
- /**
- * @since 3.0
- */
- public static void openUrl(String location) {
- WorkbenchUtil.openUrl(location, FLAG_NO_RICH_EDITOR);
- }
-
- /**
- * If task is already open and has incoming, must force refresh in place
- */
- private static boolean refreshEditorContentsIfOpen(ITask task, IEditorInput editorInput) {
- if (task != null) {
- if (task.getSynchronizationState() == SynchronizationState.INCOMING
- || task.getSynchronizationState() == SynchronizationState.CONFLICT) {
- for (TaskEditor editor : TasksUiInternal.getActiveRepositoryTaskEditors()) {
- if (editor.getEditorInput().equals(editorInput)) {
- editor.refreshPages();
- editor.getEditorSite().getPage().activate(editor);
- return true;
- }
- }
- }
- }
- return false;
- }
-
- /**
- * @since 3.0
- */
- public static IViewPart openTasksViewInActivePerspective() {
- try {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(
- ITasksUiConstants.ID_VIEW_TASKS);
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not show Task List view", e)); //$NON-NLS-1$
- return null;
- }
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java
deleted file mode 100644
index b2b369c20..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- */
-public abstract class AbstractAttributeEditor {
-
- private Control control;
-
- private boolean decorationEnabled;
-
- private Label labelControl;
-
- private LayoutHint layoutHint;
-
- private final TaskDataModel manager;
-
- private final TaskAttribute taskAttribute;
-
- private boolean readOnly;
-
- /**
- * @since 3.0
- */
- public AbstractAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- Assert.isNotNull(manager);
- Assert.isNotNull(taskAttribute);
- this.manager = manager;
- this.taskAttribute = taskAttribute;
- setDecorationEnabled(true);
- setReadOnly(taskAttribute.getMetaData().isReadOnly());
- }
-
- /**
- * @since 3.0
- */
- protected void attributeChanged() {
- getModel().attributeChanged(getTaskAttribute());
- }
-
- /**
- * @since 3.0
- */
- public abstract void createControl(Composite parent, FormToolkit toolkit);
-
- /**
- * @since 3.0
- */
- public void createLabelControl(Composite composite, FormToolkit toolkit) {
- labelControl = toolkit.createLabel(composite, getLabel());
- labelControl.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- }
-
- /**
- * @since 3.0
- */
- public void dispose() {
- }
-
- /**
- * @since 3.0
- */
- public TaskDataModel getModel() {
- return manager;
- }
-
- /**
- * @since 3.0
- */
- protected TaskAttributeMapper getAttributeMapper() {
- return getModel().getTaskData().getAttributeMapper();
- }
-
- /**
- * @since 3.0
- */
- public Control getControl() {
- return control;
- }
-
- /**
- * @since 3.0
- */
- public String getLabel() {
- String label = getAttributeMapper().getLabel(getTaskAttribute());
- return TasksUiInternal.escapeLabelText(label);
- }
-
- /**
- * @since 3.0
- */
- public Label getLabelControl() {
- return labelControl;
- }
-
- /**
- * @since 3.0
- */
- public LayoutHint getLayoutHint() {
- return layoutHint;
- }
-
- /**
- * @since 3.0
- */
- public TaskAttribute getTaskAttribute() {
- return taskAttribute;
- }
-
- /**
- * @since 3.0
- */
- public boolean hasLabel() {
- // TODO EDITOR
- return true;
- }
-
- /**
- * @since 3.0
- */
- public boolean isDecorationEnabled() {
- return decorationEnabled;
- }
-
- /**
- * @since 3.0
- */
- protected void setControl(Control control) {
- this.control = control;
- }
-
- /**
- * @since 3.0
- */
- public void setDecorationEnabled(boolean decorationEnabled) {
- this.decorationEnabled = decorationEnabled;
- }
-
- /**
- * @since 3.1
- */
- public void setLayoutHint(LayoutHint layoutHint) {
- this.layoutHint = layoutHint;
- }
-
- /**
- * @since 3.0
- */
- public void decorate(Color color) {
- if (isDecorationEnabled()) {
- if (manager.hasBeenRead() && manager.hasIncomingChanges(getTaskAttribute())) {
- decorateIncoming(color);
- }
- if (manager.hasOutgoingChanges(getTaskAttribute())) {
- decorateOutgoing(color);
- }
- }
- }
-
- /**
- * @since 3.0
- */
- protected void decorateOutgoing(Color color) {
- if (labelControl != null) {
- labelControl.setText("*" + labelControl.getText()); //$NON-NLS-1$
- }
- }
-
- /**
- * @since 3.0
- */
- protected void decorateIncoming(Color color) {
- if (getControl() != null) {
- getControl().setBackground(color);
- }
- }
-
- /**
- * @since 3.0
- */
- public boolean isReadOnly() {
- return readOnly;
- }
-
- /**
- * @since 3.0
- */
- public void setReadOnly(boolean readOnly) {
- this.readOnly = readOnly;
- }
-
- /**
- * Refreshes the state of the widget from the data model. The default implementation throws
- * <code>UnsupportedOperationException</code>.
- *
- * <p>
- * Subclasses should overwrite this method.
- *
- * @since 3.1
- * @throws UnsupportedOperationException
- * if this method is not supported by the editor
- */
- public void refresh() {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRenderingEngine.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRenderingEngine.java
deleted file mode 100644
index ba5e2991e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRenderingEngine.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.editors;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * Extend to provide HTML preview for ticket description and comments
- *
- * @author Xiaoyang Guan
- * @since 2.1
- */
-// TODO 4.0 move to core?
-public abstract class AbstractRenderingEngine {
-
- /**
- * generate HTML preview page for <code>text</code>
- */
- public abstract String renderAsHtml(TaskRepository repository, String text, IProgressMonitor monitor)
- throws CoreException;
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorExtension.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorExtension.java
deleted file mode 100644
index 3858f8c3c..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorExtension.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.editors;
-
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.contexts.IContextService;
-
-/**
- * An extension that provides task editor capabilities beyond the default, oriented towards providing markup-aware
- * editing and viewing
- *
- * @author David Green
- * @since 3.1
- */
-public abstract class AbstractTaskEditorExtension {
-
- /**
- * The key to access the {@link TaskRepository} property that stores the URL of an associated wiki.
- */
- public static final String INTERNAL_WIKI_LINK_PATTERN = "wikiLinkPattern"; //$NON-NLS-1$
-
- /**
- * Creates a source viewer that can be used to view content in the task editor. The source viewer should be
- * configured with a source viewer configuration prior to returning.
- *
- * @param taskRepository
- * the task repository for which the viewer is created
- * @param parent
- * the control parent of the source viewer
- * @param style
- * the styles to use
- */
- public abstract SourceViewer createViewer(TaskRepository taskRepository, Composite parent, int style);
-
- /**
- * Creates a source viewer that can be used to edit content in the task editor. The source viewer should be
- * configured with a source viewer configuration prior to returning.
- *
- * @param taskRepository
- * the task repository for which the viewer is created
- * @param parent
- * the control parent of the source viewer
- * @param style
- * the styles to use
- */
- public abstract SourceViewer createEditor(TaskRepository taskRepository, Composite parent, int style);
-
- /**
- * Returns the editor context id, to be passed to the {@link IContextService} when the editor is in focus.
- */
- public abstract String getEditorContextId();
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java
deleted file mode 100644
index e7c11186f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java
+++ /dev/null
@@ -1,1488 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * David Green - fixes for bug 237503
- * Frank Becker - fixes for bug 252300
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.editors;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.GradientCanvas;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
-import org.eclipse.mylyn.internal.tasks.core.data.ITaskDataManagerListener;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManagerEvent;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ClearOutgoingAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteTaskEditorAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.NewSubTaskAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeEditorAction;
-import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil;
-import org.eclipse.mylyn.internal.tasks.ui.editors.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskAttachmentDropListener;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorActionContributor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorActionPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorAttachmentPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorAttributePart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorCommentPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorDescriptionPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorNewCommentPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorOutlineNode;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorOutlinePage;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorPeoplePart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorPlanningPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorRichTextPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorSummaryPart;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskMigrator;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
-import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModelEvent;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModelListener;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJob;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJobEvent;
-import org.eclipse.mylyn.tasks.core.sync.SubmitJobListener;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FilteredTree;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-/**
- * Extend to provide a task editor page.
- *
- * @author Mik Kersten
- * @author Rob Elves
- * @author Steffen Pingel
- * @since 3.0
- */
-public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISelectionProvider,
- ISelectionChangedListener {
-
- /**
- * Causes the form page to reflow on resize.
- */
- private final class ParentResizeHandler implements Listener {
- private int generation;
-
- public void handleEvent(Event event) {
- ++generation;
-
- Display.getCurrent().timerExec(300, new Runnable() {
- int scheduledGeneration = generation;
-
- public void run() {
- if (getManagedForm().getForm().isDisposed()) {
- return;
- }
-
- // only reflow if this is the latest generation to prevent
- // unnecessary reflows while the form is being resized
- if (scheduledGeneration == generation) {
- getManagedForm().reflow(true);
- }
- }
- });
- }
- }
-
- private class SubmitTaskJobListener extends SubmitJobListener {
-
- private final boolean attachContext;
-
- public SubmitTaskJobListener(boolean attachContext) {
- this.attachContext = attachContext;
- }
-
- @Override
- public void done(SubmitJobEvent event) {
- final SubmitJob job = event.getJob();
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-
- private void addTask(ITask newTask) {
- AbstractTaskContainer parent = null;
- AbstractTaskEditorPart actionPart = getPart(ID_PART_ACTIONS);
- if (actionPart instanceof TaskEditorActionPart) {
- parent = ((TaskEditorActionPart) actionPart).getCategory();
- }
- TasksUiInternal.getTaskList().addTask(newTask, parent);
- }
-
- public void run() {
- try {
- if (job.getStatus() == null) {
- TasksUiInternal.synchronizeRepository(getTaskRepository(), false);
- if (job.getTask().equals(getTask())) {
- refreshFormContent();
- } else {
- ITask oldTask = getTask();
- ITask newTask = job.getTask();
- addTask(newTask);
-
- TaskMigrator migrator = new TaskMigrator(oldTask);
- migrator.setDelete(true);
- migrator.setEditor(getTaskEditor());
- migrator.execute(newTask);
- }
- }
- handleTaskSubmitted(new SubmitJobEvent(job));
- } finally {
- showEditorBusy(false);
- }
- }
- });
- }
-
- @Override
- public void taskSubmitted(SubmitJobEvent event, IProgressMonitor monitor) throws CoreException {
- if (!getModel().getTaskData().isNew() && attachContext) {
- AttachmentUtil.postContext(connector, getModel().getTaskRepository(), task, "", null, monitor); //$NON-NLS-1$
- }
- }
-
- @Override
- public void taskSynchronized(SubmitJobEvent event, IProgressMonitor monitor) {
- }
-
- }
-
-// private class TaskListChangeListener extends TaskListChangeAdapter {
-// @Override
-// public void containersChanged(Set<TaskContainerDelta> containers) {
-// if (refreshDisabled) {
-// return;
-// }
-// ITask taskToRefresh = null;
-// for (TaskContainerDelta taskContainerDelta : containers) {
-// if (task.equals(taskContainerDelta.getElement())) {
-// if (taskContainerDelta.getKind().equals(TaskContainerDelta.Kind.CONTENT)
-// && !taskContainerDelta.isTransient()) {
-// taskToRefresh = (ITask) taskContainerDelta.getElement();
-// break;
-// }
-// }
-// }
-// if (taskToRefresh != null) {
-// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// if (!isDirty() && task.getSynchronizationState() == SynchronizationState.SYNCHRONIZED) {
-// // automatically refresh if the user has not made any changes and there is no chance of missing incomings
-// refreshFormContent();
-// } else {
-// getTaskEditor().setMessage("Task has incoming changes", IMessageProvider.WARNING,
-// new HyperlinkAdapter() {
-// @Override
-// public void linkActivated(HyperlinkEvent e) {
-// refreshFormContent();
-// }
-// });
-// setSubmitEnabled(false);
-// }
-// }
-// });
-// }
-// }
-// }
-
- private final ITaskDataManagerListener TASK_DATA_LISTENER = new ITaskDataManagerListener() {
-
- public void taskDataUpdated(final TaskDataManagerEvent event) {
- ITask task = event.getTask();
- if (task.equals(AbstractTaskEditorPage.this.getTask()) && event.getTaskDataUpdated()) {
- refresh(task);
- }
- }
-
- private void refresh(final ITask task) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (refreshDisabled) {
- return;
- }
-
- if (!isDirty() && task.getSynchronizationState() == SynchronizationState.SYNCHRONIZED) {
- // automatically refresh if the user has not made any changes and there is no chance of missing incomings
- refreshFormContent();
- } else {
- getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Task_has_incoming_changes,
- IMessageProvider.WARNING, new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- refreshFormContent();
- }
- });
- setSubmitEnabled(false);
- }
- }
- });
- }
-
- public void editsDiscarded(TaskDataManagerEvent event) {
- if (event.getTask().equals(AbstractTaskEditorPage.this.getTask())) {
- refresh(event.getTask());
- }
- }
- };
-
- private static final String ERROR_NOCONNECTIVITY = Messages.AbstractTaskEditorPage_Unable_to_submit_at_this_time;
-
- public static final String ID_PART_ACTIONS = "org.eclipse.mylyn.tasks.ui.editors.parts.actions"; //$NON-NLS-1$
-
- public static final String ID_PART_ATTACHMENTS = "org.eclipse.mylyn.tasks.ui.editors.parts.attachments"; //$NON-NLS-1$
-
- public static final String ID_PART_ATTRIBUTES = "org.eclipse.mylyn.tasks.ui.editors.parts.attributes"; //$NON-NLS-1$
-
- public static final String ID_PART_COMMENTS = "org.eclipse.mylyn.tasks.ui.editors.parts.comments"; //$NON-NLS-1$
-
- public static final String ID_PART_DESCRIPTION = "org.eclipse.mylyn.tasks.ui.editors.parts.descriptions"; //$NON-NLS-1$
-
- public static final String ID_PART_NEW_COMMENT = "org.eclipse.mylyn.tasks.ui.editors.parts.newComment"; //$NON-NLS-1$
-
- public static final String ID_PART_PEOPLE = "org.eclipse.mylyn.tasks.ui.editors.parts.people"; //$NON-NLS-1$
-
- public static final String ID_PART_PLANNING = "org.eclipse.mylyn.tasks.ui.editors.parts.planning"; //$NON-NLS-1$
-
- public static final String ID_PART_SUMMARY = "org.eclipse.mylyn.tasks.ui.editors.parts.summary"; //$NON-NLS-1$
-
- public static final String PATH_ACTIONS = "actions"; //$NON-NLS-1$
-
- public static final String PATH_ATTACHMENTS = "attachments"; //$NON-NLS-1$
-
- public static final String PATH_ATTRIBUTES = "attributes"; //$NON-NLS-1$
-
- public static final String PATH_COMMENTS = "comments"; //$NON-NLS-1$
-
- public static final String PATH_HEADER = "header"; //$NON-NLS-1$
-
- public static final String PATH_PEOPLE = "people"; //$NON-NLS-1$
-
- public static final String PATH_PLANNING = "planning"; //$NON-NLS-1$
-
-// private static final String ID_POPUP_MENU = "org.eclipse.mylyn.tasks.ui.editor.menu.page";
-
- private AttributeEditorFactory attributeEditorFactory;
-
- private AttributeEditorToolkit attributeEditorToolkit;
-
- private AbstractRepositoryConnector connector;
-
- private final String connectorKind;
-
- private StructuredSelection defaultSelection;
-
- private Composite editorComposite;
-
- private ScrolledForm form;
-
- private boolean formBusy;
-
- private Control lastFocusControl;
-
- private ISelection lastSelection;
-
- private TaskDataModel model;
-
- private boolean needsAddToCategory;
-
- private boolean reflow;
-
- private volatile boolean refreshDisabled;
-
- private final ListenerList selectionChangedListeners;
-
- private SynchronizeEditorAction synchronizeEditorAction;
-
- private ITask task;
-
- private TaskData taskData;
-
-// private ITaskListChangeListener taskListChangeListener;
-
- private FormToolkit toolkit;
-
- private TaskEditorOutlinePage outlinePage;
-
- private TaskAttachmentDropListener defaultDropListener;
-
- private CommonTextSupport textSupport;
-
- private Composite partControl;
-
- private GradientCanvas footerComposite;
-
- private boolean needsFooter;
-
- private Button submitButton;
-
- private boolean submitEnabled;
-
- /**
- * @since 3.1
- */
- public AbstractTaskEditorPage(TaskEditor editor, String id, String label, String connectorKind) {
- super(editor, id, label);
- Assert.isNotNull(connectorKind);
- this.connectorKind = connectorKind;
- this.reflow = true;
- this.selectionChangedListeners = new ListenerList();
- this.submitEnabled = true;
- }
-
- public AbstractTaskEditorPage(TaskEditor editor, String connectorKind) {
- this(editor, "id", "label", connectorKind); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * @since 3.1
- * @see FormPage#getEditor()
- */
- @Override
- public TaskEditor getEditor() {
- return (TaskEditor) super.getEditor();
- }
-
- private void addFocusListener(Composite composite, FocusListener listener) {
- Control[] children = composite.getChildren();
- for (Control control : children) {
- if ((control instanceof Text) || (control instanceof Button) || (control instanceof Combo)
- || (control instanceof CCombo) || (control instanceof Tree) || (control instanceof Table)
- || (control instanceof Spinner) || (control instanceof Link)
- || (control instanceof org.eclipse.swt.widgets.List) || (control instanceof TabFolder)
- || (control instanceof CTabFolder) || (control instanceof Hyperlink)
- || (control instanceof FilteredTree) || (control instanceof StyledText)) {
- control.addFocusListener(listener);
- }
- if (control instanceof Composite) {
- addFocusListener((Composite) control, listener);
- }
- }
- }
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- selectionChangedListeners.add(listener);
- }
-
- public void appendTextToNewComment(String text) {
- AbstractTaskEditorPart newCommentPart = getPart(ID_PART_NEW_COMMENT);
- if (newCommentPart instanceof TaskEditorRichTextPart) {
- ((TaskEditorRichTextPart) newCommentPart).appendText(text);
- newCommentPart.setFocus();
- }
- }
-
- public boolean canPerformAction(String actionId) {
- return CommonTextSupport.canPerformAction(actionId, EditorUtil.getFocusControl(this));
- }
-
- public void close() {
- if (Display.getCurrent() != null) {
- getSite().getPage().closeEditor(getTaskEditor(), false);
- } else {
- // TODO consider removing asyncExec()
- Display activeDisplay = getSite().getShell().getDisplay();
- activeDisplay.asyncExec(new Runnable() {
- public void run() {
- if (getSite() != null && getSite().getPage() != null && !getManagedForm().getForm().isDisposed()) {
- if (getTaskEditor() != null) {
- getSite().getPage().closeEditor(getTaskEditor(), false);
- } else {
- getSite().getPage().closeEditor(AbstractTaskEditorPage.this, false);
- }
- }
- }
- });
- }
- }
-
- protected AttributeEditorFactory createAttributeEditorFactory() {
- return new AttributeEditorFactory(getModel(), getTaskRepository(), getEditorSite());
- }
-
- AttributeEditorToolkit createAttributeEditorToolkit() {
- return new AttributeEditorToolkit(textSupport);
- }
-
- @Override
- public void createPartControl(Composite parent) {
- parent.addListener(SWT.Resize, new ParentResizeHandler());
-
- if (needsFooter()) {
- partControl = getEditor().getToolkit().createComposite(parent);
- GridLayout partControlLayout = new GridLayout(1, false);
- partControlLayout.marginWidth = 0;
- partControlLayout.marginHeight = 0;
- partControlLayout.verticalSpacing = 0;
- partControl.setLayout(partControlLayout);
-
- super.createPartControl(partControl);
- getManagedForm().getForm().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
- footerComposite = new GradientCanvas(partControl, SWT.NONE);
- footerComposite.setSeparatorVisible(true);
- footerComposite.setSeparatorAlignment(SWT.TOP);
- GridLayout headLayout = new GridLayout();
- headLayout.marginHeight = 0;
- headLayout.marginWidth = 0;
- headLayout.horizontalSpacing = 0;
- headLayout.verticalSpacing = 0;
- headLayout.numColumns = 1;
- footerComposite.setLayout(headLayout);
- footerComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
- FormColors colors = getEditor().getToolkit().getColors();
- Color top = colors.getColor(IFormColors.H_GRADIENT_END);
- Color bottom = colors.getColor(IFormColors.H_GRADIENT_START);
- footerComposite.setBackgroundGradient(new Color[] { bottom, top }, new int[] { 100 }, true);
-
- footerComposite.putColor(IFormColors.H_BOTTOM_KEYLINE1, colors.getColor(IFormColors.H_BOTTOM_KEYLINE1));
- footerComposite.putColor(IFormColors.H_BOTTOM_KEYLINE2, colors.getColor(IFormColors.H_BOTTOM_KEYLINE2));
- footerComposite.putColor(IFormColors.H_HOVER_LIGHT, colors.getColor(IFormColors.H_HOVER_LIGHT));
- footerComposite.putColor(IFormColors.H_HOVER_FULL, colors.getColor(IFormColors.H_HOVER_FULL));
- footerComposite.putColor(IFormColors.TB_TOGGLE, colors.getColor(IFormColors.TB_TOGGLE));
- footerComposite.putColor(IFormColors.TB_TOGGLE_HOVER, colors.getColor(IFormColors.TB_TOGGLE_HOVER));
- footerComposite.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, false));
-
- createFooterContent(footerComposite);
- } else {
- super.createPartControl(parent);
- }
- }
-
- @Override
- protected void createFormContent(final IManagedForm managedForm) {
- form = managedForm.getForm();
-
- toolkit = managedForm.getToolkit();
- registerDefaultDropListener(form);
- CommonFormUtil.disableScrollingOnFocus(form);
-
- try {
- setReflow(false);
-
- editorComposite = form.getBody();
- // TODO consider using TableWrapLayout, it makes resizing much faster
- GridLayout editorLayout = new GridLayout();
- editorComposite.setLayout(editorLayout);
- editorComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- //form.setData("focusScrolling", Boolean.FALSE);
-
-// menuManager = new MenuManager();
-// menuManager.setRemoveAllWhenShown(true);
-// getEditorSite().registerContextMenu(ID_POPUP_MENU, menuManager, this, true);
-// editorComposite.setMenu(menuManager.createContextMenu(editorComposite));
- editorComposite.setMenu(getTaskEditor().getMenu());
-
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(getConnectorKind());
- if (connectorUi == null) {
- getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Synchronize_to_update_editor_contents,
- IMessageProvider.INFORMATION, new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- refreshFormContent();
- }
- });
- }
-
- if (taskData != null) {
- createFormContentInternal();
- }
-
- updateHeaderMessage();
- } finally {
- setReflow(true);
-
- // if the editor is restored as part of workbench startup then we must reflow() asynchronously
- // otherwise the editor layout is incorrect
- boolean reflowRequired = calculateReflowRequired(form);
-
- if (reflowRequired) {
- Display.getCurrent().asyncExec(new Runnable() {
- public void run() {
- // this fixes a problem with layout that occurs when an editor
- // is restored before the workbench is fully initialized
- reflow();
- }
- });
- }
- }
- }
-
- private boolean calculateReflowRequired(ScrolledForm form) {
- Composite stopComposite = getEditor().getEditorParent().getParent().getParent();
- Composite composite = form.getParent();
- while (composite != null) {
- Rectangle clientArea = composite.getClientArea();
- if (clientArea.width > 1) {
- return false;
- }
- if (composite == stopComposite) {
- return true;
- }
- composite = composite.getParent();
- }
- return true;
- }
-
- private void createFormContentInternal() {
- // end life-cycle of previous editor controls
- if (attributeEditorToolkit != null) {
- attributeEditorToolkit.dispose();
- }
-
- // start life-cycle of previous editor controls
- if (attributeEditorFactory == null) {
- attributeEditorFactory = createAttributeEditorFactory();
- Assert.isNotNull(attributeEditorFactory);
- }
- attributeEditorToolkit = createAttributeEditorToolkit();
- Assert.isNotNull(attributeEditorToolkit);
- attributeEditorToolkit.setMenu(editorComposite.getMenu());
- attributeEditorFactory.setEditorToolkit(attributeEditorToolkit);
-
- createParts();
-
- FocusListener listener = new FocusAdapter() {
- @Override
- public void focusGained(FocusEvent e) {
- lastFocusControl = (Control) e.widget;
- }
- };
- addFocusListener(editorComposite, listener);
- AbstractTaskEditorPart summaryPart = getPart(ID_PART_SUMMARY);
- if (summaryPart != null) {
- lastFocusControl = summaryPart.getControl();
- }
- }
-
- protected TaskDataModel createModel(TaskEditorInput input) throws CoreException {
- ITaskDataWorkingCopy taskDataState;
- try {
- taskDataState = TasksUi.getTaskDataManager().getWorkingCopy(task);
- } catch (OperationCanceledException e) {
- // XXX retry once to work around bug 235479
- taskDataState = TasksUi.getTaskDataManager().getWorkingCopy(task);
- }
- TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(taskDataState.getConnectorKind(),
- taskDataState.getRepositoryUrl());
- return new TaskDataModel(taskRepository, input.getTask(), taskDataState);
- }
-
- /**
- * To suppress a section, just remove its descriptor from the list. To add your own section in a specific order on
- * the page, use the path value for where you want it to appear (your descriptor will appear after previously added
- * descriptors with the same path), and add it to the descriptors list in your override of this method.
- */
- protected Set<TaskEditorPartDescriptor> createPartDescriptors() {
- Set<TaskEditorPartDescriptor> descriptors = new LinkedHashSet<TaskEditorPartDescriptor>();
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_SUMMARY) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorSummaryPart();
- }
- }.setPath(PATH_HEADER));
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_ATTRIBUTES) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorAttributePart();
- }
- }.setPath(PATH_ATTRIBUTES));
- if (!taskData.isNew() && connector.getTaskAttachmentHandler() != null) {
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_ATTACHMENTS) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorAttachmentPart();
- }
- }.setPath(PATH_ATTACHMENTS));
- }
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_DESCRIPTION) {
- @Override
- public AbstractTaskEditorPart createPart() {
- TaskEditorDescriptionPart part = new TaskEditorDescriptionPart();
- if (getModel().getTaskData().isNew()) {
- part.setExpandVertically(true);
- part.setSectionStyle(ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED);
- }
- return part;
- }
- }.setPath(PATH_COMMENTS));
- if (!taskData.isNew()) {
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_COMMENTS) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorCommentPart();
- }
- }.setPath(PATH_COMMENTS));
- }
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_NEW_COMMENT) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorNewCommentPart();
- }
- }.setPath(PATH_COMMENTS));
- if (taskData.isNew()) {
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_PLANNING) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorPlanningPart();
- }
- }.setPath(PATH_PLANNING));
- }
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_ACTIONS) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorActionPart();
- }
- }.setPath(PATH_ACTIONS));
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_PEOPLE) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TaskEditorPeoplePart();
- }
- }.setPath(PATH_PEOPLE));
- return descriptors;
- }
-
- protected void createParts() {
- List<TaskEditorPartDescriptor> descriptors = new LinkedList<TaskEditorPartDescriptor>(createPartDescriptors());
- // single column
- createParts(PATH_HEADER, editorComposite, descriptors);
- createParts(PATH_ATTRIBUTES, editorComposite, descriptors);
- createParts(PATH_ATTACHMENTS, editorComposite, descriptors);
- createParts(PATH_COMMENTS, editorComposite, descriptors);
- createParts(PATH_PLANNING, editorComposite, descriptors);
- // two column
- Composite bottomComposite = toolkit.createComposite(editorComposite);
- bottomComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());
- GridDataFactory.fillDefaults().grab(true, false).applyTo(bottomComposite);
- createParts(PATH_ACTIONS, bottomComposite, descriptors);
- createParts(PATH_PEOPLE, bottomComposite, descriptors);
- bottomComposite.pack(true);
- }
-
- private void createParts(String path, final Composite parent, Collection<TaskEditorPartDescriptor> descriptors) {
- for (Iterator<TaskEditorPartDescriptor> it = descriptors.iterator(); it.hasNext();) {
- final TaskEditorPartDescriptor descriptor = it.next();
- if (path == null || path.equals(descriptor.getPath())) {
- SafeRunner.run(new ISafeRunnable() {
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Error creating task editor part: \"" + descriptor.getId() + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void run() throws Exception {
- AbstractTaskEditorPart part = descriptor.createPart();
- part.setPartId(descriptor.getId());
- initializePart(parent, part);
- }
- });
- it.remove();
- }
- }
- }
-
- @Override
- public void dispose() {
- if (textSupport != null) {
- textSupport.dispose();
- }
- if (attributeEditorToolkit != null) {
- attributeEditorToolkit.dispose();
- }
- TasksUiPlugin.getTaskDataManager().removeListener(TASK_DATA_LISTENER);
- super.dispose();
- }
-
- public void doAction(String actionId) {
- CommonTextSupport.doAction(actionId, EditorUtil.getFocusControl(this));
- }
-
- @Override
- public void doSave(IProgressMonitor monitor) {
- if (!isDirty()) {
- return;
- }
-
- getManagedForm().commit(true);
-
- try {
- model.save(monitor);
- } catch (final CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error saving task", e)); //$NON-NLS-1$
- getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Could_not_save_task, IMessageProvider.ERROR,
- new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent event) {
- TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Save_failed, e.getStatus());
- }
- });
- }
-
- // update the summary of unsubmitted repository tasks
- if (getTask().getSynchronizationState() == SynchronizationState.OUTGOING_NEW) {
- final String summary = connector.getTaskMapping(model.getTaskData()).getSummary();
- try {
- TasksUiPlugin.getTaskList().run(new ITaskListRunnable() {
- public void execute(IProgressMonitor monitor) throws CoreException {
- task.setSummary(summary);
- }
- });
- TasksUiPlugin.getTaskList().notifyElementChanged(task);
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Failed to set summary for task \"" + task + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- updateHeaderMessage();
- getManagedForm().dirtyStateChanged();
- getTaskEditor().updateHeaderToolBar();
- }
-
- @Override
- public void doSaveAs() {
- throw new UnsupportedOperationException();
- }
-
- public void doSubmit() {
- if (!submitEnabled) {
- return;
- }
-
- showEditorBusy(true);
-
- doSave(new NullProgressMonitor());
-
- SubmitJob submitJob = TasksUiInternal.getJobFactory().createSubmitTaskJob(connector,
- getModel().getTaskRepository(), task, getModel().getTaskData(), getModel().getChangedOldAttributes());
- submitJob.addSubmitJobListener(new SubmitTaskJobListener(getAttachContext()));
- submitJob.schedule();
- }
-
- /**
- * Override for customizing the tool bar.
- */
- @Override
- public void fillToolBar(IToolBarManager toolBarManager) {
- final TaskRepository taskRepository = (model != null) ? getModel().getTaskRepository() : null;
-
- if (taskData == null) {
- synchronizeEditorAction = new SynchronizeEditorAction();
- synchronizeEditorAction.selectionChanged(new StructuredSelection(getTaskEditor()));
- toolBarManager.add(synchronizeEditorAction);
- } else {
- if (taskData.isNew()) {
- DeleteTaskEditorAction deleteAction = new DeleteTaskEditorAction(getTask());
- toolBarManager.add(deleteAction);
- } else if (taskRepository != null) {
- ClearOutgoingAction clearOutgoingAction = new ClearOutgoingAction(
- Collections.singletonList((IRepositoryElement) task));
- (clearOutgoingAction).setTaskEditorPage(this);
- if (clearOutgoingAction.isEnabled()) {
- toolBarManager.add(clearOutgoingAction);
- }
-
- if (task.getSynchronizationState() != SynchronizationState.OUTGOING_NEW) {
- synchronizeEditorAction = new SynchronizeEditorAction();
- synchronizeEditorAction.selectionChanged(new StructuredSelection(getTaskEditor()));
- toolBarManager.add(synchronizeEditorAction);
- }
-
- NewSubTaskAction newSubTaskAction = new NewSubTaskAction();
- newSubTaskAction.selectionChanged(newSubTaskAction, new StructuredSelection(task));
- if (newSubTaskAction.isEnabled()) {
- toolBarManager.add(newSubTaskAction);
- }
-
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskData.getConnectorKind());
- if (connectorUi != null) {
- final String historyUrl = connectorUi.getTaskHistoryUrl(taskRepository, task);
- if (historyUrl != null) {
- Action historyAction = new Action() {
- @Override
- public void run() {
- TasksUiUtil.openUrl(historyUrl);
- }
- };
-
- historyAction.setImageDescriptor(TasksUiImages.TASK_REPOSITORY_HISTORY);
- historyAction.setToolTipText(Messages.AbstractTaskEditorPage_History);
- toolBarManager.add(historyAction);
- }
- }
- }
- }
- }
-
- protected void fireSelectionChanged(ISelection selection) {
- // create an event
- final SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
-
- // fire the event
- Object[] listeners = selectionChangedListeners.getListeners();
- for (int i = 0; i < listeners.length; ++i) {
- final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
- SafeRunner.run(new SafeRunnable() {
- public void run() {
- l.selectionChanged(event);
- }
- });
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Object getAdapter(Class adapter) {
- if (adapter == IContentOutlinePage.class) {
- updateOutlinePage();
- return outlinePage;
- }
- // TODO 3.2 replace by getTextSupport() method
- if (adapter == CommonTextSupport.class) {
- return textSupport;
- }
- return super.getAdapter(adapter);
- }
-
- private void updateOutlinePage() {
- if (outlinePage == null) {
- outlinePage = new TaskEditorOutlinePage();
- outlinePage.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof StructuredSelection) {
- Object select = ((StructuredSelection) selection).getFirstElement();
- if (select instanceof TaskEditorOutlineNode) {
- TaskEditorOutlineNode node = (TaskEditorOutlineNode) select;
- TaskAttribute attribute = node.getData();
- if (attribute != null) {
- if (TaskAttribute.TYPE_COMMENT.equals(attribute.getMetaData().getType())) {
- AbstractTaskEditorPart actionPart = getPart(ID_PART_COMMENTS);
- if (actionPart != null && actionPart.getControl() instanceof ExpandableComposite) {
- CommonFormUtil.setExpanded((ExpandableComposite) actionPart.getControl(), true);
- if (actionPart.getControl() instanceof Section) {
- Control client = ((Section) actionPart.getControl()).getClient();
- if (client instanceof Composite) {
- for (Control control : ((Composite) client).getChildren()) {
- // toggle subsections
- if (control instanceof Section) {
- CommonFormUtil.setExpanded((Section) control, true);
- }
- }
- }
- }
- }
- }
- EditorUtil.reveal(form, attribute.getId());
- } else {
- EditorUtil.reveal(form, node.getLabel());
- }
- getEditor().setActivePage(getId());
- }
- }
- }
- });
- }
- if (getModel() != null) {
- TaskEditorOutlineNode node = TaskEditorOutlineNode.parse(getModel().getTaskData());
- outlinePage.setInput(getTaskRepository(), node);
- } else {
- outlinePage.setInput(null, null);
- }
- }
-
- private boolean getAttachContext() {
- AbstractTaskEditorPart actionPart = getPart(ID_PART_ACTIONS);
- if (actionPart instanceof TaskEditorActionPart) {
- return ((TaskEditorActionPart) actionPart).getAttachContext();
- }
- return false;
- }
-
- public AttributeEditorFactory getAttributeEditorFactory() {
- return attributeEditorFactory;
- }
-
- public AttributeEditorToolkit getAttributeEditorToolkit() {
- return attributeEditorToolkit;
- }
-
- public AbstractRepositoryConnector getConnector() {
- return connector;
- }
-
- public String getConnectorKind() {
- return connectorKind;
- }
-
- /**
- * @return The composite for the whole editor.
- */
- public Composite getEditorComposite() {
- return editorComposite;
- }
-
- public TaskDataModel getModel() {
- return model;
- }
-
- public AbstractTaskEditorPart getPart(String partId) {
- Assert.isNotNull(partId);
- for (IFormPart part : getManagedForm().getParts()) {
- if (part instanceof AbstractTaskEditorPart) {
- AbstractTaskEditorPart taskEditorPart = (AbstractTaskEditorPart) part;
- if (partId.equals(taskEditorPart.getPartId())) {
- return taskEditorPart;
- }
- }
- }
- return null;
- }
-
- public ISelection getSelection() {
- return lastSelection;
- }
-
- public ITask getTask() {
- return task;
- }
-
- public TaskEditor getTaskEditor() {
- return getEditor();
- }
-
- public TaskRepository getTaskRepository() {
- // FIXME model can be null
- return getModel().getTaskRepository();
- }
-
- /**
- * Invoked after task submission has completed. This method is invoked on the UI thread in all cases whether
- * submission was successful, canceled or failed. The value returned by <code>event.getJob().getStatus()</code>
- * indicates the result of the submit job. Sub-classes may override but are encouraged to invoke the super method.
- *
- * @since 3.2
- * @see SubmitJob
- */
- protected void handleTaskSubmitted(SubmitJobEvent event) {
- if (event.getJob().getStatus() != null) {
- handleSubmitError(event.getJob());
- }
- }
-
- private void handleSubmitError(SubmitJob job) {
- if (form != null && !form.isDisposed()) {
- final IStatus status = job.getStatus();
- if (status.getCode() == RepositoryStatus.REPOSITORY_COMMENT_REQUIRED) {
- TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Comment_required, status);
- AbstractTaskEditorPart newCommentPart = getPart(ID_PART_NEW_COMMENT);
- if (newCommentPart != null) {
- newCommentPart.setFocus();
- }
- } else if (status.getCode() == RepositoryStatus.ERROR_REPOSITORY_LOGIN) {
- if (TasksUiUtil.openEditRepositoryWizard(getTaskRepository()) == Window.OK) {
- doSubmit();
- }
- } else {
- String message;
- if (status.getCode() == RepositoryStatus.ERROR_IO) {
- message = ERROR_NOCONNECTIVITY;
- } else if (status.getMessage().length() > 0) {
- message = Messages.AbstractTaskEditorPage_Submit_failed_ + status.getMessage();
- } else {
- message = Messages.AbstractTaskEditorPage_Submit_failed;
- }
- getTaskEditor().setMessage(message, IMessageProvider.ERROR, new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Submit_failed, status);
- }
- });
- }
- }
- }
-
- @Override
- public void init(IEditorSite site, IEditorInput input) {
- super.init(site, input);
-
- site.setSelectionProvider(this);
-
- TaskEditorInput taskEditorInput = (TaskEditorInput) input;
- this.task = taskEditorInput.getTask();
- this.defaultSelection = new StructuredSelection(task);
- this.lastSelection = defaultSelection;
- IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
- this.textSupport = new CommonTextSupport(handlerService);
- this.textSupport.setSelectionChangedListener(this);
-
- initModel(taskEditorInput);
-
- TasksUiPlugin.getTaskDataManager().addListener(TASK_DATA_LISTENER);
- }
-
- private void initModel(TaskEditorInput input) {
- Assert.isTrue(model == null);
- try {
- this.model = createModel(input);
- this.connector = TasksUi.getRepositoryManager().getRepositoryConnector(getConnectorKind());
- setTaskData(model.getTaskData());
- model.addModelListener(new TaskDataModelListener() {
- @Override
- public void attributeChanged(TaskDataModelEvent event) {
- getManagedForm().dirtyStateChanged();
- }
- });
- setNeedsAddToCategory(model.getTaskData().isNew());
- } catch (final CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error opening task", e)); //$NON-NLS-1$
- getTaskEditor().setStatus(Messages.AbstractTaskEditorPage_Error_opening_task,
- Messages.AbstractTaskEditorPage_Open_failed, e.getStatus());
- }
- }
-
- private void initializePart(Composite parent, AbstractTaskEditorPart part) {
- getManagedForm().addPart(part);
- part.initialize(this);
- part.createControl(parent, toolkit);
- if (part.getControl() != null) {
- if (ID_PART_ACTIONS.equals(part.getPartId())) {
- // do not expand horizontally
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(part.getControl());
- } else {
- if (part.getExpandVertically()) {
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.FILL)
- .grab(true, true)
- .applyTo(part.getControl());
- } else {
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.TOP)
- .grab(true, false)
- .applyTo(part.getControl());
- }
- }
- // for outline
- if (ID_PART_COMMENTS.equals(part.getPartId())) {
- EditorUtil.setMarker(part.getControl(), TaskEditorOutlineNode.LABEL_COMMENTS);
- }
- }
- }
-
- @Override
- public boolean isDirty() {
- return (getModel() != null && getModel().isDirty()) || (getManagedForm() != null && getManagedForm().isDirty());
- }
-
- @Override
- public boolean isSaveAsAllowed() {
- return false;
- }
-
- public boolean needsAddToCategory() {
- return needsAddToCategory;
- }
-
- /**
- * Force a re-layout of entire form.
- */
- public void reflow() {
- if (reflow) {
- try {
- form.setRedraw(false);
- // help the layout managers: ensure that the form width always matches
- // the parent client area width.
- Rectangle parentClientArea = form.getParent().getClientArea();
- Point formSize = form.getSize();
- if (formSize.x != parentClientArea.width) {
- ScrollBar verticalBar = form.getVerticalBar();
- int verticalBarWidth = verticalBar != null ? verticalBar.getSize().x : 15;
- form.setSize(parentClientArea.width - verticalBarWidth, formSize.y);
- }
-
- form.layout(true, false);
- form.reflow(true);
- } finally {
- form.setRedraw(true);
- }
- }
- }
-
- /**
- * Updates the editor contents in place.
- */
- public void refreshFormContent() {
- if (getManagedForm().getForm().isDisposed()) {
- // editor possibly closed as part of submit
- return;
- }
-
- try {
- showEditorBusy(true);
-
- if (model != null) {
- doSave(new NullProgressMonitor());
- refreshInput();
- } else {
- initModel(getTaskEditor().getTaskEditorInput());
- }
-
- if (taskData != null) {
- try {
- setReflow(false);
- // prevent menu from being disposed when disposing control on the form during refresh
- Menu menu = editorComposite.getMenu();
- CommonUiUtil.setMenu(editorComposite, null);
-
- // clear old controls and parts
- for (Control control : editorComposite.getChildren()) {
- control.dispose();
- }
- lastFocusControl = null;
- lastSelection = null;
- for (IFormPart part : getManagedForm().getParts()) {
- part.dispose();
- getManagedForm().removePart(part);
- }
-
- // restore menu
- editorComposite.setMenu(menu);
-
- createFormContentInternal();
-
- getTaskEditor().setMessage(null, 0);
- getTaskEditor().setActivePage(getId());
-
- setSubmitEnabled(true);
- } finally {
- setReflow(true);
- }
- }
-
- updateOutlinePage();
- updateHeaderMessage();
- getManagedForm().dirtyStateChanged();
- getTaskEditor().updateHeaderToolBar();
- } finally {
- showEditorBusy(false);
- }
- reflow();
- }
-
- private void refreshInput() {
- try {
- refreshDisabled = true;
- model.refresh(null);
- } catch (CoreException e) {
- getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Failed_to_read_task_data_ + e.getMessage(),
- IMessageProvider.ERROR);
- taskData = null;
- return;
- } finally {
- refreshDisabled = false;
- }
-
- setTaskData(model.getTaskData());
- }
-
- /**
- * Registers a drop listener for <code>control</code>. The default implementation registers a listener for attaching
- * files. Does nothing if the editor is showing a new task.
- * <p>
- * Clients may override.
- * </p>
- *
- * @param control
- * the control to register the listener for
- */
- public void registerDefaultDropListener(final Control control) {
- if (getModel() == null || getModel().getTaskData().isNew()) {
- return;
- }
-
- DropTarget target = new DropTarget(control, DND.DROP_COPY | DND.DROP_DEFAULT);
- final TextTransfer textTransfer = TextTransfer.getInstance();
- final FileTransfer fileTransfer = FileTransfer.getInstance();
- Transfer[] types = new Transfer[] { textTransfer, fileTransfer };
- target.setTransfer(types);
- if (defaultDropListener == null) {
- defaultDropListener = new TaskAttachmentDropListener(this);
- }
- target.addDropListener(defaultDropListener);
- }
-
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- selectionChangedListeners.remove(listener);
- }
-
- public void selectionChanged(Object element) {
- selectionChanged(new SelectionChangedEvent(this, new StructuredSelection(element)));
- }
-
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof TextSelection) {
- // only update global actions
- ((TaskEditorActionContributor) getEditorSite().getActionBarContributor()).updateSelectableActions(event.getSelection());
- return;
- }
- if (selection.isEmpty()) {
- // something was unselected, reset to default selection
- selection = defaultSelection;
- // XXX a styled text widget has lost focus, re-enable all edit actions
- ((TaskEditorActionContributor) getEditorSite().getActionBarContributor()).forceActionsEnabled();
- }
- if (!selection.equals(lastSelection)) {
- this.lastSelection = selection;
- fireSelectionChanged(lastSelection);
- }
- }
-
- @Override
- public void setFocus() {
- if (lastFocusControl != null && !lastFocusControl.isDisposed()) {
- lastFocusControl.setFocus();
- }
- }
-
- public void setNeedsAddToCategory(boolean needsAddToCategory) {
- this.needsAddToCategory = needsAddToCategory;
- }
-
- public void setReflow(boolean reflow) {
- this.reflow = reflow;
- form.setRedraw(reflow);
- }
-
- public void setSelection(ISelection selection) {
- IFormPart[] parts = getManagedForm().getParts();
- for (IFormPart formPart : parts) {
- if (formPart instanceof AbstractTaskEditorPart) {
- if (((AbstractTaskEditorPart) formPart).setSelection(selection)) {
- lastSelection = selection;
- return;
- }
- }
- }
- }
-
- // TODO EDITOR this needs to be tracked somewhere else
- private void setSubmitEnabled(boolean enabled) {
- AbstractTaskEditorPart actionPart = getPart(ID_PART_ACTIONS);
- if (actionPart instanceof TaskEditorActionPart) {
- ((TaskEditorActionPart) actionPart).setSubmitEnabled(enabled);
- }
- if (submitButton != null) {
- submitButton.setEnabled(enabled);
- }
- submitEnabled = enabled;
- }
-
- private void setTaskData(TaskData taskData) {
- this.taskData = taskData;
- }
-
- @Override
- public void showBusy(boolean busy) {
- if (!getManagedForm().getForm().isDisposed() && busy != formBusy) {
- // parentEditor.showBusy(busy);
-// if (synchronizeEditorAction != null) {
-// synchronizeEditorAction.setEnabled(!busy);
-// }
-//
-// if (openBrowserAction != null) {
-// openBrowserAction.setEnabled(!busy);
-// }
-//
-// if (historyAction != null) {
-// historyAction.setEnabled(!busy);
-// }
-//
-// if (actionPart != null) {
-// actionPart.setSubmitEnabled(!busy);
-// }
-//
-// if (newSubTaskAction != null) {
-// newSubTaskAction.setEnabled(!busy);
-// }
-//
-// if (clearOutgoingAction != null) {
-// clearOutgoingAction.setEnabled(!busy);
-// }
-
- CommonUiUtil.setEnabled(editorComposite, !busy);
-
- formBusy = busy;
- }
- }
-
- public void showEditorBusy(boolean busy) {
- getTaskEditor().showBusy(busy);
- refreshDisabled = busy;
- }
-
- private void updateHeaderMessage() {
- if (taskData == null) {
- getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Synchronize_to_retrieve_task_data,
- IMessageProvider.WARNING, new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- if (synchronizeEditorAction != null) {
- synchronizeEditorAction.run();
- }
- }
- });
- }
- if (getTaskEditor().getMessage() == null
- && TasksUiPlugin.getTaskList().getTask(task.getRepositoryUrl(), task.getTaskId()) == null) {
- getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Add_task_to_tasklist,
- IMessageProvider.INFORMATION, new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- if (TasksUiPlugin.getTaskList().getTask(task.getRepositoryUrl(), task.getTaskId()) == null) {
- TasksUiPlugin.getTaskList().addTask(task,
- TasksUiPlugin.getTaskList().getDefaultCategory());
- getTaskEditor().setMessage(null, IMessageProvider.NONE, null);
-// updateHeaderMessage();
- }
- }
- });
- }
- }
-
- @Override
- public Control getPartControl() {
- return partControl != null ? partControl : super.getPartControl();
- }
-
- /**
- * @since 3.2
- */
- public boolean needsFooter() {
- return needsFooter;
- }
-
- /**
- * @since 3.2
- */
- public void setNeedsFooter(boolean needsFooter) {
- this.needsFooter = needsFooter;
- }
-
- private void createFooterContent(Composite parent) {
- parent.setLayout(new GridLayout());
-
- submitButton = toolkit.createButton(parent, Messages.TaskEditorActionPart_Submit, SWT.NONE);
- GridData submitButtonData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- submitButtonData.widthHint = 100;
- submitButton.setBackground(null);
- submitButton.setImage(CommonImages.getImage(TasksUiImages.REPOSITORY_SUBMIT));
- submitButton.setLayoutData(submitButtonData);
- submitButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- doSubmit();
- }
- });
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPageFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPageFactory.java
deleted file mode 100644
index abf6226f1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPageFactory.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.forms.editor.IFormPage;
-
-/**
- * @since 3.0
- * @author Steffen Pingel
- */
-public abstract class AbstractTaskEditorPageFactory implements IPluginContribution {
-
- public static final int PRIORITY_ADDITIONS = 100;
-
- public static final int PRIORITY_CONTEXT = 20;
-
- public static final int PRIORITY_PLANNING = 10;
-
- public static final int PRIORITY_TASK = 30;
-
- private String id;
-
- private String pluginId;
-
- public abstract boolean canCreatePageFor(TaskEditorInput input);
-
- public abstract IFormPage createPage(TaskEditor parentEditor);
-
- public String[] getConflictingIds(TaskEditorInput input) {
- return null;
- }
-
- public String getId() {
- return id;
- }
-
- // TODO EDITOR life cycle of image?
- public abstract Image getPageImage();
-
- public abstract String getPageText();
-
- public int getPriority() {
- return PRIORITY_ADDITIONS;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- /**
- * {@inheritDoc}
- *
- * @since 3.2
- */
- public final String getLocalId() {
- return getId();
- }
-
- /**
- * {@inheritDoc}
- *
- * @since 3.2
- * @see #setPluginId(String)
- */
- public final String getPluginId() {
- return pluginId;
- }
-
- /**
- * @since 3.2
- * @see #getPluginId()
- */
- public final void setPluginId(String pluginId) {
- this.pluginId = pluginId;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java
deleted file mode 100644
index fb2a8e762..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RichTextAttributeEditor;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- */
-public abstract class AbstractTaskEditorPart extends AbstractFormPart {
-
- // the default font of some controls, e.g. radio buttons, is too big; set this font explicitly on the control
- protected static final Font TEXT_FONT = JFaceResources.getDefaultFont();
-
- private Control control;
-
- private String partName;
-
- private String partId;
-
- private AbstractTaskEditorPage taskEditorPage;
-
- private boolean expandVertically;
-
- public AbstractTaskEditorPart() {
- }
-
- protected AbstractAttributeEditor createAttributeEditor(TaskAttribute attribute) {
- if (attribute == null) {
- return null;
- }
-
- String type = attribute.getMetaData().getType();
- if (type != null) {
- AttributeEditorFactory attributeEditorFactory = getTaskEditorPage().getAttributeEditorFactory();
- AbstractAttributeEditor editor = attributeEditorFactory.createEditor(type, attribute);
- if (editor instanceof RichTextAttributeEditor) {
- boolean spellChecking = getTaskEditorPage().getAttributeEditorToolkit().hasSpellChecking(attribute);
- ((RichTextAttributeEditor) editor).setSpellCheckingEnabled(spellChecking);
- }
- return editor;
- }
- return null;
- }
-
- public abstract void createControl(Composite parent, FormToolkit toolkit);
-
- protected Section createSection(Composite parent, FormToolkit toolkit, int style) {
- Section section = toolkit.createSection(parent, style);
- section.setText(getPartName());
- return section;
- }
-
- protected Section createSection(Composite parent, FormToolkit toolkit, boolean expandedState) {
- int style = ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE;
- if (expandedState) {
- style |= ExpandableComposite.EXPANDED;
- }
- return createSection(parent, toolkit, style);
- }
-
- protected void fillToolBar(ToolBarManager toolBarManager) {
- }
-
- public Control getControl() {
- return control;
- }
-
- public TaskDataModel getModel() {
- return getTaskEditorPage().getModel();
- }
-
- public String getPartId() {
- return partId;
- }
-
- public String getPartName() {
- return partName;
- }
-
- public TaskData getTaskData() {
- return getTaskEditorPage().getModel().getTaskData();
- }
-
- public AbstractTaskEditorPage getTaskEditorPage() {
- return taskEditorPage;
- }
-
- public void initialize(AbstractTaskEditorPage taskEditorPage) {
- this.taskEditorPage = taskEditorPage;
- }
-
- public void setControl(Control control) {
- this.control = control;
- }
-
- void setPartId(String partId) {
- this.partId = partId;
- }
-
- protected void setPartName(String partName) {
- this.partName = partName;
- }
-
- protected void setSection(FormToolkit toolkit, Section section) {
- if (section.getTextClient() == null) {
- ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
- fillToolBar(toolBarManager);
-
- // TODO toolBarManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
- if (toolBarManager.getSize() > 0) {
- Composite toolbarComposite = toolkit.createComposite(section);
- toolbarComposite.setBackground(null);
- RowLayout rowLayout = new RowLayout();
- rowLayout.marginTop = 0;
- rowLayout.marginBottom = 0;
- toolbarComposite.setLayout(rowLayout);
-
- toolBarManager.createControl(toolbarComposite);
- section.setTextClient(toolbarComposite);
- }
- }
- setControl(section);
- }
-
- protected boolean setSelection(ISelection selection) {
- return false;
- }
-
- public boolean getExpandVertically() {
- return expandVertically;
- }
-
- public void setExpandVertically(boolean expandVertically) {
- this.expandVertically = expandVertically;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorFactory.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorFactory.java
deleted file mode 100644
index 13b548788..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorFactory.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.mylyn.internal.tasks.ui.editors.BooleanAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.DateAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.LongTextAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.MultiSelectionAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.PersonAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RichTextAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.SingleSelectionAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensions;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TextAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryTextViewerConfiguration.Mode;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * @since 3.0
- * @author Steffen Pingel
- */
-public class AttributeEditorFactory {
-
- private final TaskDataModel model;
-
- private final TaskRepository taskRepository;
-
- private final IServiceLocator serviceLocator;
-
- private AttributeEditorToolkit editorToolkit;
-
- public AttributeEditorFactory(TaskDataModel model, TaskRepository taskRepository) {
- this(model, taskRepository, null);
- }
-
- /**
- * @since 3.1
- */
- public AttributeEditorFactory(TaskDataModel model, TaskRepository taskRepository, IServiceLocator serviceLocator) {
- Assert.isNotNull(model);
- Assert.isNotNull(taskRepository);
- this.model = model;
- this.taskRepository = taskRepository;
- this.serviceLocator = serviceLocator;
- }
-
- /**
- * @since 3.1
- */
- public AttributeEditorToolkit getEditorToolkit() {
- return editorToolkit;
- }
-
- /**
- * @since 3.1
- */
- public void setEditorToolkit(AttributeEditorToolkit editorToolkit) {
- this.editorToolkit = editorToolkit;
- }
-
- public AbstractAttributeEditor createEditor(String type, TaskAttribute taskAttribute) {
- Assert.isNotNull(type);
-
- if (TaskAttribute.TYPE_BOOLEAN.equals(type)) {
- return new BooleanAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_DATE.equals(type)) {
- return new DateAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_DATETIME.equals(type)) {
- DateAttributeEditor editor = new DateAttributeEditor(model, taskAttribute);
- editor.setShowTime(true);
- return editor;
- } else if (TaskAttribute.TYPE_PERSON.equals(type)) {
- return new PersonAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_LONG_RICH_TEXT.equals(type)) {
- RichTextAttributeEditor editor = null;
- if (serviceLocator != null) {
- IContextService contextService = (IContextService) serviceLocator.getService(IContextService.class);
- if (contextService != null) {
- AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(model.getTaskRepository());
- if (extension != null) {
- editor = new RichTextAttributeEditor(model, taskRepository, taskAttribute, SWT.MULTI,
- contextService, extension);
- }
- }
- }
- if (editor == null) {
- editor = new RichTextAttributeEditor(model, taskRepository, taskAttribute);
- }
- if (editorToolkit != null) {
- editor.setRenderingEngine(editorToolkit.getRenderingEngine(taskAttribute));
- }
- return editor;
- } else if (TaskAttribute.TYPE_LONG_TEXT.equals(type)) {
- return new LongTextAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_MULTI_SELECT.equals(type)) {
- return new MultiSelectionAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_SHORT_RICH_TEXT.equals(type)) {
- return new RichTextAttributeEditor(model, taskRepository, taskAttribute, SWT.SINGLE);
- } else if (TaskAttribute.TYPE_SHORT_TEXT.equals(type)) {
- return new TextAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_SINGLE_SELECT.equals(type)) {
- return new SingleSelectionAttributeEditor(model, taskAttribute);
- } else if (TaskAttribute.TYPE_TASK_DEPENDENCY.equals(type)) {
- RichTextAttributeEditor editor = new RichTextAttributeEditor(model, taskRepository, taskAttribute,
- SWT.MULTI | TasksUiInternal.SWT_NO_SCROLL) {
- @Override
- public String getValue() {
- return getAttributeMapper().getValueLabel(getTaskAttribute());
- }
- };
- editor.setMode(Mode.TASK_RELATION);
- editor.setLayoutHint(new LayoutHint(RowSpan.SINGLE, ColumnSpan.SINGLE) {
- @Override
- public int getPriority() {
- return DEFAULT_PRIORITY + 1;
- }
- });
- return editor;
- } else if (TaskAttribute.TYPE_URL.equals(type)) {
- RichTextAttributeEditor editor = new RichTextAttributeEditor(model, taskRepository, taskAttribute,
- SWT.SINGLE);
- editor.setMode(Mode.URL);
- return editor;
- }
-
- throw new IllegalArgumentException("Unsupported editor type: \"" + type + "\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorToolkit.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorToolkit.java
deleted file mode 100644
index ec80c8c6a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AttributeEditorToolkit.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.jface.fieldassist.ComboContentAdapter;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.fieldassist.IControlContentAdapter;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.tasks.ui.PersonProposalLabelProvider;
-import org.eclipse.mylyn.internal.tasks.ui.PersonProposalProvider;
-import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil;
-import org.eclipse.mylyn.internal.tasks.ui.editors.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RichTextAttributeEditor;
-import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryTextViewerConfiguration.Mode;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- */
-// TODO EDITOR rename to AttributeUiToolkit?
-public class AttributeEditorToolkit {
-
- private final Color colorIncoming;
-
- private Menu menu;
-
- private AbstractRenderingEngine renderingEngine;
-
- private final CommonTextSupport textSupport;
-
- @Deprecated
- public IHandlerActivation contentAssistHandlerActivation;
-
- AttributeEditorToolkit(CommonTextSupport textSupport) {
- this.textSupport = textSupport;
- IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
- colorIncoming = themeManager.getCurrentTheme().getColorRegistry().get(CommonThemes.COLOR_INCOMING_BACKGROUND);
- }
-
- public void adapt(AbstractAttributeEditor editor) {
- if (editor.getControl() instanceof Text || editor.getControl() instanceof CCombo) {
- Control control = editor.getControl();
- if (!editor.isReadOnly() && hasContentAssist(editor.getTaskAttribute())) {
- IContentProposalProvider contentProposalProvider = createContentProposalProvider(editor.getTaskAttribute());
- ILabelProvider labelPropsalProvider = createLabelProposalProvider(editor.getTaskAttribute());
- if (contentProposalProvider != null && labelPropsalProvider != null) {
- ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(control,
- getContentAdapter(control), contentProposalProvider,
- ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, new char[0], true);
- adapter.setLabelProvider(labelPropsalProvider);
- adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
- }
- }
- } else if (editor instanceof RichTextAttributeEditor) {
- RichTextAttributeEditor richTextEditor = (RichTextAttributeEditor) editor;
- boolean spellCheck = hasSpellChecking(editor.getTaskAttribute());
- final SourceViewer viewer = richTextEditor.getViewer();
- textSupport.install(viewer, spellCheck);
- if (!editor.isReadOnly() && richTextEditor.getMode() == Mode.TASK_RELATION) {
- installContentAssistControlDecoration(viewer.getControl());
- }
- installMenu(viewer.getControl());
- } else {
- final TextViewer viewer = CommonTextSupport.getTextViewer(editor.getControl());
- if (viewer != null) {
- textSupport.install(viewer, false);
- installMenu(viewer.getControl());
- }
- }
-
- // for outline
- EditorUtil.setMarker(editor.getControl(), editor.getTaskAttribute().getId());
-
- editor.decorate(getColorIncoming());
- }
-
- private IControlContentAdapter getContentAdapter(Control control) {
- if (control instanceof Combo) {
- return new ComboContentAdapter();
- } else if (control instanceof Text) {
- return new TextContentAdapter();
- }
- return null;
- }
-
- private void installMenu(final Control control) {
- if (menu != null) {
- control.setMenu(menu);
- control.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- control.setMenu(null);
- }
- });
- }
- }
-
- /**
- * Adds content assist to the given text field.
- *
- * @param text
- * text field to decorate.
- * @param proposalProvider
- * instance providing content proposals
- * @return the ContentAssistCommandAdapter for the field.
- */
- private ControlDecoration installContentAssistControlDecoration(Control control) {
- ControlDecoration controlDecoration = new ControlDecoration(control, (SWT.TOP | SWT.LEFT));
- controlDecoration.setShowOnlyOnFocus(true);
- FieldDecoration contentProposalImage = FieldDecorationRegistry.getDefault().getFieldDecoration(
- FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
- controlDecoration.setImage(contentProposalImage.getImage());
- IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getService(IBindingService.class);
- controlDecoration.setDescriptionText(NLS.bind(Messages.AttributeEditorToolkit_Content_Assist_Available__X_,
- bindingService.getBestActiveBindingFormattedFor(ContentAssistCommandAdapter.CONTENT_PROPOSAL_COMMAND)));
- return controlDecoration;
- }
-
- /**
- * Creates an IContentProposalProvider to provide content assist proposals for the given attribute.
- *
- * @param attribute
- * attribute for which to provide content assist.
- * @return the IContentProposalProvider.
- */
- private IContentProposalProvider createContentProposalProvider(TaskAttribute attribute) {
- return new PersonProposalProvider(null, attribute.getTaskData());
- }
-
- private ILabelProvider createLabelProposalProvider(TaskAttribute attribute) {
- return new PersonProposalLabelProvider();
- }
-
- void dispose() {
- // FIXME textSupport.deactivateHandlers();
- }
-
- public Color getColorIncoming() {
- return colorIncoming;
- }
-
- Menu getMenu() {
- return menu;
- }
-
- /**
- * Subclasses that support HTML preview of ticket description and comments override this method to return an
- * instance of AbstractRenderingEngine
- *
- * @return <code>null</code> if HTML preview is not supported for the repository (default)
- * @since 2.1
- */
- public AbstractRenderingEngine getRenderingEngine(TaskAttribute attribute) {
- return renderingEngine;
- }
-
- /**
- * Called to check if there's content assist available for the given attribute.
- *
- * @param attribute
- * the attribute
- * @return true if content assist is available for the specified attribute.
- */
- private boolean hasContentAssist(TaskAttribute taskAttribute) {
- String type = taskAttribute.getMetaData().getType();
- if (TaskAttribute.TYPE_PERSON.equals(type)) {
- return true;
- } else if (TaskAttribute.TYPE_TASK_DEPENDENCY.equals(type)) {
- return true;
- }
- return false;
- }
-
- boolean hasSpellChecking(TaskAttribute taskAttribute) {
- String type = taskAttribute.getMetaData().getType();
- if (TaskAttribute.TYPE_LONG_RICH_TEXT.equals(type) || TaskAttribute.TYPE_SHORT_RICH_TEXT.equals(type)) {
- return true;
- }
- return false;
- }
-
- void setMenu(Menu menu) {
- this.menu = menu;
- }
-
- public void setRenderingEngine(AbstractRenderingEngine renderingEngine) {
- this.renderingEngine = renderingEngine;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/BrowserFormPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/BrowserFormPage.java
deleted file mode 100644
index d4e686102..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/BrowserFormPage.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.internal.browser.BrowserViewer;
-import org.eclipse.ui.internal.browser.IBrowserViewerContainer;
-
-/**
- * A form page that contains a browser control.
- *
- * @since 3.0
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class BrowserFormPage extends FormPage {
-
- public static final String ID_EDITOR = "org.eclipse.mylyn.tasks.ui.editor.browser"; //$NON-NLS-1$
-
- private BrowserViewer browserViewer;
-
- public BrowserFormPage(FormEditor editor, String title) {
- super(editor, ID_EDITOR, title);
- }
-
- @Override
- protected void createFormContent(IManagedForm managedForm) {
- super.createFormContent(managedForm);
- try {
- ScrolledForm form = managedForm.getForm();
- form.getBody().setLayout(new FillLayout());
- browserViewer = new BrowserViewer(form.getBody(), SWT.NONE);
- browserViewer.setLayoutData(null);
- browserViewer.setContainer(new IBrowserViewerContainer() {
-
- public boolean close() {
- return false;
- }
-
- public IActionBars getActionBars() {
- return BrowserFormPage.this.getEditorSite().getActionBars();
- }
-
- public void openInExternalBrowser(String url) {
- // ignore
- }
-
- });
- managedForm.getForm().setContent(browserViewer);
- String url = getUrl();
- if (url != null) {
- browserViewer.setURL(url);
- }
- } catch (SWTError e) {
- // TODO review error handling
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not create browser page: " //$NON-NLS-1$
- + e.getMessage(), e));
- } catch (RuntimeException e) {
- // TODO review error handling
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not create browser page", e)); //$NON-NLS-1$
- }
- }
-
- /**
- * Returns a reference to the browser control.
- */
- public Browser getBrowser() {
- return browserViewer.getBrowser();
- }
-
- /**
- * Returns the initial URL that is displayed in the browser control. The default implementation tries to determine
- * the URL from the editor input.
- * <p>
- * Subclasses should override this method to display a specific URL.
- *
- * @return the URL to load when the page is created; null, if no URL should be loaded
- */
- protected String getUrl() {
- IEditorInput input = getEditorInput();
- if (input instanceof TaskEditorInput) {
- return ((TaskEditorInput) input).getTask().getUrl();
- }
- return null;
- }
-
- @Override
- public void init(IEditorSite site, IEditorInput input) {
- super.init(site, input);
- if (input instanceof TaskEditorInput) {
- TasksUiPlugin.getTaskDataManager().setTaskRead(((TaskEditorInput) input).getTask(), true);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/LayoutHint.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/LayoutHint.java
deleted file mode 100644
index 3a61e1f2e..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/LayoutHint.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-/**
- * A layout hint for attribute editors.
- *
- * @author Steffen Pingel
- * @since 3.0
- */
-public class LayoutHint {
-
- /**
- * @since 3.0
- */
- public final static int DEFAULT_PRIORITY = 10;
-
- /**
- * @since 3.0
- */
- public enum ColumnSpan {
- MULTIPLE, SINGLE
- };
-
- /**
- * @since 3.0
- */
- public enum RowSpan {
- MULTIPLE, SINGLE
- };
-
- /**
- * @since 3.0
- */
- public RowSpan rowSpan;
-
- /**
- * @since 3.0
- */
- public ColumnSpan columnSpan;
-
- /**
- * @since 3.0
- */
- public LayoutHint(RowSpan rowHint, ColumnSpan columnHint) {
- this.rowSpan = rowHint;
- this.columnSpan = columnHint;
- }
-
- /**
- * Clones <code>source</code>. Constructs a layout hint with a priority of {@link #DEFAULT_PRIORITY}, if
- * <code>source</code> is null.
- *
- * @param source
- * the layout hint to clone or <code>null</code>
- * @since 3.1
- */
- public LayoutHint(LayoutHint source) {
- if (source != null) {
- this.rowSpan = source.rowSpan;
- this.columnSpan = source.columnSpan;
- }
- }
-
- /**
- * Constructs a layout hint with a priority of {@link #DEFAULT_PRIORITY}.
- *
- * @since 3.1
- */
- public LayoutHint() {
- }
-
- /**
- * Returns a priority based on the size of the layout hint. The bigger the size the bigger the returned priority.
- * <p>
- * The priority is used to layout attribute editors.
- *
- * @since 3.0
- */
- public int getPriority() {
- if (columnSpan == null || columnSpan == ColumnSpan.SINGLE) {
- if (rowSpan == null || rowSpan == RowSpan.SINGLE) {
- return DEFAULT_PRIORITY;
- } else {
- return DEFAULT_PRIORITY * 2;
- }
- } else {
- if (rowSpan == null || rowSpan == RowSpan.SINGLE) {
- return DEFAULT_PRIORITY * 3;
- } else {
- return DEFAULT_PRIORITY * 4;
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java
deleted file mode 100644
index edb9d72f1..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java
+++ /dev/null
@@ -1,712 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eric Booth - initial prototype
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.editors;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ContributionManager;
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.SelectionProviderAdapter;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.editor.EditorBusyIndicator;
-import org.eclipse.mylyn.internal.provisional.commons.ui.editor.IBusyEditor;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskEditorScheduleAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.ToggleTaskActivationAction;
-import org.eclipse.mylyn.internal.tasks.ui.editors.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorActionContributor;
-import org.eclipse.mylyn.internal.tasks.ui.util.TaskDragSourceListener;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.IFormPage;
-import org.eclipse.ui.forms.editor.SharedHeaderFormEditor;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.part.WorkbenchPart;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-/**
- * @author Mik Kersten
- * @author Rob Elves
- * @author Steffen Pingel
- * @author Thomas Ehrnhoefer
- * @since 2.0
- */
-public class TaskEditor extends SharedHeaderFormEditor {
-
- /**
- * @since 2.0
- */
- public static final String ID_EDITOR = "org.eclipse.mylyn.tasks.ui.editors.task"; //$NON-NLS-1$
-
- /**
- * @since 3.2
- */
- public static final String ID_TOOLBAR_HEADER = "org.eclipse.mylyn.tasks.ui.editors.task.toolbar.header"; //$NON-NLS-1$
-
- private ToggleTaskActivationAction activateAction;
-
- @Deprecated
- private final IEditorPart contentOutlineProvider = null;
-
- private EditorBusyIndicator editorBusyIndicator;
-
- private MenuManager menuManager;
-
- private IHyperlinkListener messageHyperLinkListener;
-
- private ITask task;
-
- private TaskEditorInput taskEditorInput;
-
- private TaskDragSourceListener titleDragSourceListener;
-
- private Composite editorParent;
-
- private IMenuService menuService;
-
- private IToolBarManager toolBarManager;
-
- public TaskEditor() {
- }
-
- @Override
- protected Composite createPageContainer(Composite parent) {
- this.editorParent = parent;
- return super.createPageContainer(parent);
- }
-
- Composite getEditorParent() {
- return editorParent;
- }
-
- @Override
- protected void addPages() {
- initialize();
-
- // determine factories
- Set<String> conflictingIds = new HashSet<String>();
- ArrayList<AbstractTaskEditorPageFactory> pageFactories = new ArrayList<AbstractTaskEditorPageFactory>();
- for (AbstractTaskEditorPageFactory pageFactory : TasksUiPlugin.getDefault().getTaskEditorPageFactories()) {
- if (pageFactory.canCreatePageFor(getTaskEditorInput()) && WorkbenchUtil.allowUseOf(pageFactory)) {
- pageFactories.add(pageFactory);
- String[] ids = pageFactory.getConflictingIds(getTaskEditorInput());
- if (ids != null) {
- conflictingIds.addAll(Arrays.asList(ids));
- }
- }
- }
- for (Iterator<AbstractTaskEditorPageFactory> it = pageFactories.iterator(); it.hasNext();) {
- if (conflictingIds.contains(it.next().getId())) {
- it.remove();
- }
- }
-
- // sort by priority
- Collections.sort(pageFactories, new Comparator<AbstractTaskEditorPageFactory>() {
- public int compare(AbstractTaskEditorPageFactory o1, AbstractTaskEditorPageFactory o2) {
- return o1.getPriority() - o2.getPriority();
- }
- });
-
- // create pages
- for (AbstractTaskEditorPageFactory factory : pageFactories) {
- try {
- IFormPage page = factory.createPage(this);
- int index = addPage(page);
- setPageImage(index, factory.getPageImage());
- setPageText(index, factory.getPageText());
- if (factory.getPriority() == AbstractTaskEditorPageFactory.PRIORITY_TASK) {
- setActivePage(index);
- }
- if (page instanceof ISelectionProvider) {
- ((ISelectionProvider) page).addSelectionChangedListener(getActionBarContributor());
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Could not create editor via factory: " + factory, e)); //$NON-NLS-1$
- }
- }
-
- updateTitleImage();
- updateHeaderToolBar();
- }
-
- private void initialize() {
- editorBusyIndicator = new EditorBusyIndicator(new IBusyEditor() {
- public Image getTitleImage() {
- return TaskEditor.this.getTitleImage();
- }
-
- public void setTitleImage(Image image) {
- TaskEditor.this.setTitleImage(image);
- }
- });
-
- menuManager = new MenuManager();
- configureContextMenuManager(menuManager);
- Menu menu = menuManager.createContextMenu(getContainer());
- getContainer().setMenu(menu);
- getEditorSite().registerContextMenu(menuManager, getEditorSite().getSelectionProvider(), false);
-
- // install context menu on form heading and title
- getHeaderForm().getForm().setMenu(menu);
- Composite head = getHeaderForm().getForm().getForm().getHead();
- if (head != null) {
- CommonUiUtil.setMenu(head, menu);
- }
- }
-
- /**
- * @since 3.0
- */
- @Deprecated
- public void configureContextMenuManager(MenuManager manager) {
- if (manager == null) {
- return;
- }
- IMenuListener listener = new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- contextMenuAboutToShow(manager);
- }
- };
- manager.setRemoveAllWhenShown(true);
- manager.addMenuListener(listener);
- }
-
- @Deprecated
- protected void contextMenuAboutToShow(IMenuManager manager) {
- TaskEditorActionContributor contributor = getActionBarContributor();
- if (contributor != null) {
- contributor.contextMenuAboutToShow(manager);
- }
- }
-
- @Override
- protected FormToolkit createToolkit(Display display) {
- // create a toolkit that shares colors between editors.
- return new FormToolkit(TasksUiPlugin.getDefault().getFormColors(display));
- }
-
- @Override
- protected void createHeaderContents(IManagedForm headerForm) {
- getToolkit().decorateFormHeading(headerForm.getForm().getForm());
- updateHeader();
- installTitleDrag(getHeaderForm().getForm().getForm());
- }
-
- @Override
- public void dispose() {
- if (editorBusyIndicator != null) {
- editorBusyIndicator.stop();
- }
- if (activateAction != null) {
- activateAction.dispose();
- }
- if (menuService != null && toolBarManager instanceof ContributionManager) {
- menuService.releaseContributions((ContributionManager) toolBarManager);
- }
-
- super.dispose();
- }
-
- @Override
- public void doSave(IProgressMonitor monitor) {
- for (IFormPage page : getPages()) {
- if (page.isDirty()) {
- page.doSave(monitor);
- }
- }
-
- editorDirtyStateChanged();
- }
-
- @Override
- public void doSaveAs() {
- throw new UnsupportedOperationException();
- }
-
- private TaskEditorActionContributor getActionBarContributor() {
- return (TaskEditorActionContributor) getEditorSite().getActionBarContributor();
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Object getAdapter(Class adapter) {
- if (contentOutlineProvider != null) {
- return contentOutlineProvider.getAdapter(adapter);
- } else if (IContentOutlinePage.class.equals(adapter)) {
- IFormPage[] pages = getPages();
- for (IFormPage page : pages) {
- Object outlinePage = page.getAdapter(adapter);
- if (outlinePage != null) {
- return outlinePage;
- }
- }
- }
- return super.getAdapter(adapter);
- }
-
- /**
- * @since 3.0
- */
- public Menu getMenu() {
- return getContainer().getMenu();
- }
-
- @SuppressWarnings("unchecked")
- IFormPage[] getPages() {
- ArrayList formPages = new ArrayList();
- if (pages != null) {
- for (int i = 0; i < pages.size(); i++) {
- Object page = pages.get(i);
- if (page instanceof IFormPage) {
- formPages.add(page);
- }
- }
- }
- return (IFormPage[]) formPages.toArray(new IFormPage[formPages.size()]);
- }
-
- @Deprecated
- protected IWorkbenchSiteProgressService getProgressService() {
- Object siteService = getEditorSite().getAdapter(IWorkbenchSiteProgressService.class);
- if (siteService != null) {
- return (IWorkbenchSiteProgressService) siteService;
- }
- return null;
- }
-
- @Deprecated
- public ISelection getSelection() {
- if (getSite() != null && getSite().getSelectionProvider() != null) {
- return getSite().getSelectionProvider().getSelection();
- } else {
- return StructuredSelection.EMPTY;
- }
- }
-
- public TaskEditorInput getTaskEditorInput() {
- return taskEditorInput;
- }
-
- @Deprecated
- public Form getTopForm() {
- return this.getHeaderForm().getForm().getForm();
- }
-
- @Override
- public void init(IEditorSite site, IEditorInput input) throws PartInitException {
- if (!(input instanceof TaskEditorInput)) {
- throw new PartInitException("Invalid editor input \"" + input.getClass() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- super.init(site, input);
-
- this.taskEditorInput = (TaskEditorInput) input;
- this.task = taskEditorInput.getTask();
-
- setPartName(input.getName());
-
- // activate context
- IContextService contextSupport = (IContextService) site.getService(IContextService.class);
- if (contextSupport != null) {
- contextSupport.activateContext(ID_EDITOR);
- }
- }
-
- private void installTitleDrag(Form form) {
- if (titleDragSourceListener == null) {
- Transfer[] transferTypes;
- if (null == task) {
- transferTypes = new Transfer[] { TextTransfer.getInstance() };
- } else {
- transferTypes = new Transfer[] { LocalSelectionTransfer.getTransfer(), TextTransfer.getInstance(),
- FileTransfer.getInstance() };
- }
- titleDragSourceListener = new TaskDragSourceListener(new SelectionProviderAdapter() {
- @Override
- public ISelection getSelection() {
- return new StructuredSelection(task);
- }
- });
- form.addTitleDragSupport(DND.DROP_MOVE | DND.DROP_LINK, transferTypes, titleDragSourceListener);
- }
- }
-
- @Override
- public boolean isDirty() {
- for (IFormPage page : getPages()) {
- if (page.isDirty()) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public boolean isSaveAsAllowed() {
- return false;
- }
-
- @Deprecated
- public void markDirty() {
- firePropertyChange(PROP_DIRTY);
- }
-
- /**
- * Refresh editor with new contents (if any)
- *
- * @since 3.0
- */
- public void refreshPages() {
- for (IFormPage page : getPages()) {
- if (page instanceof AbstractTaskEditorPage) {
- ((AbstractTaskEditorPage) page).refreshFormContent();
- } else if (page instanceof BrowserFormPage) {
- // XXX 3.2 replace by invocation of refreshFromContent();
- ((BrowserFormPage) page).init(getEditorSite(), getEditorInput());
- }
- }
- }
-
- @Override
- public void setFocus() {
- IFormPage page = getActivePageInstance();
- if (page != null) {
- page.setFocus();
- } else {
- super.setFocus();
- }
- }
-
- @Deprecated
- public void setFocusOfActivePage() {
- if (this.getActivePage() > -1) {
- IFormPage page = this.getPages()[this.getActivePage()];
- if (page != null) {
- page.setFocus();
- }
- }
- }
-
- public void setMessage(String message, int type) {
- setMessage(message, type, null);
- }
-
- /**
- * @since 2.3
- */
- public void setMessage(String message, int type, IHyperlinkListener listener) {
- if (getHeaderForm() != null && getHeaderForm().getForm() != null) {
- if (!getHeaderForm().getForm().isDisposed()) {
- Form form = getHeaderForm().getForm().getForm();
- form.setMessage(message, type);
- if (messageHyperLinkListener != null) {
- form.removeMessageHyperlinkListener(messageHyperLinkListener);
- }
- if (listener != null) {
- form.addMessageHyperlinkListener(listener);
- }
- messageHyperLinkListener = listener;
- }
- }
- }
-
- /**
- * @since 3.1
- */
- public String getMessage() {
- if (getHeaderForm() != null && getHeaderForm().getForm() != null) {
- if (!getHeaderForm().getForm().isDisposed()) {
- Form form = getHeaderForm().getForm().getForm();
- return form.getMessage();
- }
- }
- return null;
- }
-
- /**
- * @since 3.0
- */
- public void setStatus(String message, final String title, final IStatus status) {
- setMessage(message, IMessageProvider.ERROR, new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent event) {
- TasksUiInternal.displayStatus(title, status);
- }
- });
- }
-
- @Override
- public void showBusy(boolean busy) {
- if (editorBusyIndicator != null) {
- if (busy) {
- if (TasksUiInternal.isAnimationsEnabled()) {
- editorBusyIndicator.start();
- }
- } else {
- editorBusyIndicator.stop();
- }
- }
-
- if (getHeaderForm() != null && getHeaderForm().getForm() != null && !getHeaderForm().getForm().isDisposed()) {
- Form form = getHeaderForm().getForm().getForm();
- if (form != null && !form.isDisposed()) {
- // TODO consider only disabling certain actions
- IToolBarManager toolBarManager = form.getToolBarManager();
- if (toolBarManager instanceof ToolBarManager) {
- ToolBar control = ((ToolBarManager) toolBarManager).getControl();
- if (control != null) {
- control.setEnabled(!busy);
- }
- }
-
- CommonUiUtil.setEnabled(form.getBody(), !busy);
- for (IFormPage page : getPages()) {
- if (page instanceof WorkbenchPart) {
- WorkbenchPart part = (WorkbenchPart) page;
- part.showBusy(busy);
- }
- }
- }
- }
- }
-
- private void updateHeader() {
- IEditorInput input = getEditorInput();
- if (input instanceof TaskEditorInput) {
- updateHeaderImage(task.getConnectorKind());
- updateHeaderLabel(task);
- }
- setTitleToolTip(input.getToolTipText());
- setPartName(input.getName());
- installTitleDrag(getHeaderForm().getForm().getForm());
- }
-
- /**
- * @since 3.0
- */
- public void updateHeaderToolBar() {
- final Form form = getHeaderForm().getForm().getForm();
- toolBarManager = form.getToolBarManager();
-
- toolBarManager.removeAll();
- toolBarManager.update(true);
-
- TaskRepository outgoingNewRepository = TasksUiUtil.getOutgoingNewTaskRepository(task);
- if (!LocalRepositoryConnector.CONNECTOR_KIND.equals(taskEditorInput.getTaskRepository().getConnectorKind())
- || outgoingNewRepository != null) {
- final TaskRepository taskRepository = (outgoingNewRepository != null) ? outgoingNewRepository
- : taskEditorInput.getTaskRepository();
- ControlContribution repositoryLabelControl = new ControlContribution(Messages.AbstractTaskEditorPage_Title) {
- @Override
- protected Control createControl(Composite parent) {
- FormToolkit toolkit = getHeaderForm().getToolkit();
- Composite composite = toolkit.createComposite(parent);
- composite.setLayout(new RowLayout());
- composite.setBackground(null);
- String label = taskRepository.getRepositoryLabel();
- if (label.indexOf("//") != -1) { //$NON-NLS-1$
- label = label.substring((taskRepository.getRepositoryUrl().indexOf("//") + 2)); //$NON-NLS-1$
- }
-
- Hyperlink link = new Hyperlink(composite, SWT.NONE);
- link.setText(label);
- link.setFont(JFaceResources.getBannerFont());
- link.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
- link.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TasksUiUtil.openEditRepositoryWizard(taskRepository);
- }
- });
-
- return composite;
- }
- };
- toolBarManager.add(repositoryLabelControl);
- }
-
- toolBarManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
- toolBarManager.add(new Separator("page")); //$NON-NLS-1$
- for (IFormPage page : getPages()) {
- if (page instanceof TaskFormPage) {
- TaskFormPage taskEditorPage = (TaskFormPage) page;
- taskEditorPage.fillToolBar(toolBarManager);
- }
- }
-
- final String taskUrl = task.getUrl();
- if (taskUrl != null && taskUrl.length() > 0) {
- Action openWithBrowserAction = new Action() {
- @Override
- public void run() {
- TasksUiUtil.openUrl(taskUrl);
- }
- };
- openWithBrowserAction.setImageDescriptor(CommonImages.BROWSER_OPEN_TASK);
- openWithBrowserAction.setToolTipText(Messages.AbstractTaskEditorPage_Open_with_Web_Browser);
- toolBarManager.add(openWithBrowserAction);
- }
-
- if (activateAction == null) {
- activateAction = new ToggleTaskActivationAction(task) {
- @Override
- public void run() {
- TaskList taskList = TasksUiPlugin.getTaskList();
- if (taskList.getTask(task.getRepositoryUrl(), task.getTaskId()) == null) {
- setMessage(Messages.TaskEditor_Task_added_to_the_Uncategorized_container,
- IMessageProvider.INFORMATION);
- }
- super.run();
- }
- };
- }
- toolBarManager.add(new Separator("planning")); //$NON-NLS-1$
- toolBarManager.add(new TaskEditorScheduleAction(task));
-
- toolBarManager.add(new Separator("activation")); //$NON-NLS-1$
- toolBarManager.add(activateAction);
-
- // add external contributions
- menuService = (IMenuService) getSite().getService(IMenuService.class);
- if (menuService != null && toolBarManager instanceof ContributionManager) {
- TaskRepository taskRepository = (outgoingNewRepository != null) ? outgoingNewRepository
- : taskEditorInput.getTaskRepository();
- menuService.populateContributionManager((ContributionManager) toolBarManager,
- "toolbar:" + ID_TOOLBAR_HEADER + "." + taskRepository.getConnectorKind()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- toolBarManager.update(true);
-
- // XXX move this call
- updateHeader();
- }
-
- private void updateHeaderImage(String connectorKind) {
- if (LocalRepositoryConnector.CONNECTOR_KIND.equals(connectorKind)) {
- getHeaderForm().getForm().setImage(CommonImages.getImage(TasksUiImages.TASK));
- } else {
- ImageDescriptor overlay = TasksUiPlugin.getDefault().getOverlayIcon(connectorKind);
- Image image = CommonImages.getImageWithOverlay(TasksUiImages.REPOSITORY, overlay, false, false);
- getHeaderForm().getForm().setImage(image);
- }
- }
-
- private void updateHeaderLabel(ITask task) {
- if (task instanceof LocalTask) {
- getHeaderForm().getForm().setText(Messages.TaskEditor_Task_ + task.getSummary());
- } else {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(task.getConnectorKind());
- String kindLabel = ""; //$NON-NLS-1$
- if (connectorUi != null) {
- kindLabel = connectorUi.getTaskKindLabel(task);
- }
-
- String idLabel = task.getTaskKey();
- if (idLabel != null) {
- getHeaderForm().getForm().setText(kindLabel + " " + idLabel); //$NON-NLS-1$
- } else {
- getHeaderForm().getForm().setText(kindLabel);
- }
- }
- }
-
- /**
- * Update the title of the editor.
- *
- * @deprecated use {@link #updateHeaderToolBar()} instead
- */
- @Deprecated
- public void updateTitle(String name) {
- updateHeader();
- }
-
- private void updateTitleImage() {
- if (task != null) {
- AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(task.getConnectorKind());
- if (connectorUi != null) {
- ImageDescriptor overlayDescriptor = connectorUi.getTaskKindOverlay(task);
- setTitleImage(CommonImages.getCompositeTaskImage(TasksUiImages.TASK, overlayDescriptor, false));
- } else {
- setTitleImage(CommonImages.getImage(TasksUiImages.TASK));
- }
-// } else if (getEditorInput() instanceof AbstractRepositoryTaskEditorInput) {
-// setTitleImage(CommonImages.getImage(TasksUiImages.TASK_REMOTE));
- } else {
- setTitleImage(CommonImages.getImage(TasksUiImages.TASK));
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java
deleted file mode 100644
index 169415f26..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Eric Booth - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.editors;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorInputFactory;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * Input for task editors.
- *
- * @author Eric Booth
- * @author Rob Elves
- * @author Mik Kersten
- * @author Steffen Pingel
- * @since 2.0
- */
-public class TaskEditorInput implements IEditorInput, IPersistableElement {
-
- private static final int MAX_LABEL_LENGTH = 60;
-
- private final ITask task;
-
- private final TaskRepository taskRepository;
-
- private Object data;
-
- /**
- * @since 3.0
- */
- @Deprecated
- public TaskEditorInput(ITask task, boolean newTask) {
- this(TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(), task.getRepositoryUrl()), task);
- }
-
- /**
- * @since 3.0
- */
- public TaskEditorInput(TaskRepository taskRepository, ITask task) {
- Assert.isNotNull(taskRepository);
- Assert.isNotNull(task);
- this.taskRepository = taskRepository;
- this.task = task;
- }
-
- /**
- * @since 2.0
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- TaskEditorInput other = (TaskEditorInput) obj;
- return task.equals(other.task);
- }
-
- /**
- * @since 2.0
- */
- public boolean exists() {
- return task != null;
- }
-
- /**
- * @since 2.0
- */
- @SuppressWarnings("unchecked")
- public Object getAdapter(Class adapter) {
- if (adapter == IEditorInput.class) {
- return this;
- }
- return null;
- }
-
- /**
- * @since 2.0
- */
- public String getFactoryId() {
- return TaskEditorInputFactory.ID_FACTORY;
- }
-
- /**
- * @since 2.0
- */
- public ImageDescriptor getImageDescriptor() {
- return null;
- }
-
- /**
- * @deprecated use {@link #getName()}
- * @since 2.0
- */
- @Deprecated
- public String getLabel() {
- return getName();
- }
-
- /**
- * @since 2.0
- */
- public String getName() {
- String toolTipText = getToolTipText();
- if (toolTipText == null) {
- return null;
- }
-
- if (task != null) {
- String taskKey = task.getTaskKey();
- if (taskKey != null) {
- return truncate(taskKey + ": " + toolTipText); //$NON-NLS-1$
- }
- }
- return truncate(toolTipText);
- }
-
- /**
- * @since 2.0
- */
- public IPersistableElement getPersistable() {
- if (task != null && TasksUiPlugin.getTaskList().getTask(task.getHandleIdentifier()) != null) {
- return this;
- }
- return null;
- }
-
- /**
- * Returns the task if the task is in the task list; returns <code>null</code> otherwise.
- *
- * @since 3.0
- */
- public ITask getTask() {
- return task;
- }
-
- /**
- * @since 3.0
- */
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
-
- /**
- * @since 2.0
- */
- public String getToolTipText() {
- return task.getSummary();
- }
-
- /**
- * @since 2.0
- */
- @Override
- public int hashCode() {
- return task.getTaskId().hashCode();
- }
-
- /**
- * @since 2.0
- */
- @Deprecated
- public boolean isNewTask() {
- return false;
- }
-
- /**
- * @since 2.0
- */
- public void saveState(IMemento memento) {
- TaskEditorInputFactory.saveState(memento, this);
- }
-
- private String truncate(String description) {
- if (description == null || description.length() <= MAX_LABEL_LENGTH) {
- return description;
- } else {
- return description.substring(0, MAX_LABEL_LENGTH) + "..."; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 3.0
- */
- public Object getData() {
- return data;
- }
-
- /**
- * @since 3.0
- */
- public void setData(Object data) {
- this.data = data;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorPartDescriptor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorPartDescriptor.java
deleted file mode 100644
index 3619f8418..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorPartDescriptor.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- */
-public abstract class TaskEditorPartDescriptor {
-
- private final String id;
-
- private String path;
-
-// public AbstractTaskEditorPart createPart() {
-// final AbstractTaskEditorPart[] result = new AbstractTaskEditorPart[1];
-// SafeRunnable.run(new ISafeRunnable() {
-//
-// public void handleException(Throwable exception) {
-// StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
-// "Unable to create instance of class \"" + getClassName() + "\" for task editor part \""
-// + getId() + "\""));
-// }
-//
-// public void run() throws Exception {
-// Class<?> clazz = Class.forName(getClassName());
-// result[0] = (AbstractTaskEditorPart) clazz.newInstance();
-// }
-//
-// });
-// return result[0];
-// }
-
- public TaskEditorPartDescriptor(String id) {
- Assert.isNotNull(id);
- this.id = id;
- setPath(AbstractTaskEditorPage.PATH_COMMENTS);
- }
-
- public abstract AbstractTaskEditorPart createPart();
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- TaskEditorPartDescriptor other = (TaskEditorPartDescriptor) obj;
- return id.equals(other.id);
- }
-
- public String getId() {
- return id;
- }
-
- public String getPath() {
- return path;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + id.hashCode();
- return result;
- }
-
- public TaskEditorPartDescriptor setPath(String path) {
- this.path = path;
- return this;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java
deleted file mode 100644
index 2c29d85d9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.editors;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-
-/**
- * @author Steffen Pingel
- * @since 3.1
- */
-public class TaskFormPage extends FormPage {
-
- public TaskFormPage(String id, String title) {
- super(id, title);
- }
-
- public TaskFormPage(FormEditor editor, String id, String title) {
- super(editor, id, title);
- }
-
- protected void fillToolBar(IToolBarManager toolBarManager) {
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositoryQueryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositoryQueryPage.java
deleted file mode 100644
index c4c041da9..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositoryQueryPage.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.wizards;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchHitCollector;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Extend to provide repository-specific query page to the Workbench search dialog.
- *
- * @author Rob Elves
- * @author Steffen Pingel
- * @since 3.0
- */
-public abstract class AbstractRepositoryQueryPage extends WizardPage implements ITaskSearchPage {
-
- private ITaskSearchPageContainer searchContainer;
-
- private final TaskRepository taskRepository;
-
- private final IRepositoryQuery query;
-
- public AbstractRepositoryQueryPage(String pageName, TaskRepository taskRepository, IRepositoryQuery query) {
- super(pageName);
- Assert.isNotNull(taskRepository);
- this.taskRepository = taskRepository;
- this.query = query;
- setTitle(Messages.AbstractRepositoryQueryPage_Enter_query_parameters);
- setDescription(Messages.AbstractRepositoryQueryPage_If_attributes_are_blank_or_stale_press_the_Update_button);
- setImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- setPageComplete(false);
- }
-
- public AbstractRepositoryQueryPage(String pageName, TaskRepository taskRepository) {
- this(pageName, taskRepository, null);
- }
-
- public IRepositoryQuery getQuery() {
- return query;
- }
-
- public abstract String getQueryTitle();
-
- @Override
- public boolean isPageComplete() {
- String queryTitle = getQueryTitle();
- if (queryTitle == null || queryTitle.equals("")) { //$NON-NLS-1$
- setErrorMessage(Messages.AbstractRepositoryQueryPage_Please_specify_a_title_for_the_query);
- return false;
- } else {
- Set<RepositoryQuery> queries = TasksUiInternal.getTaskList().getQueries();
- Set<AbstractTaskCategory> categories = TasksUiInternal.getTaskList().getCategories();
- String oldSummary = null;
- if (query != null) {
- oldSummary = query.getSummary();
- }
- if (oldSummary != null && queryTitle.equals(oldSummary)) {
- setErrorMessage(null);
- return true;
- }
-
- for (AbstractTaskCategory category : categories) {
- if (queryTitle.equals(category.getSummary())) {
- setErrorMessage(Messages.AbstractRepositoryQueryPage_A_category_with_this_name_already_exists);
- return false;
- }
- }
- for (RepositoryQuery repositoryQuery : queries) {
- if (query == null || !query.equals(repositoryQuery)) {
- if (queryTitle.equals(repositoryQuery.getSummary())) {
- setErrorMessage(Messages.AbstractRepositoryQueryPage_A_query_with_this_name_already_exists);
- return false;
- }
- }
- }
- }
- setErrorMessage(null);
- return true;
- }
-
- public IRepositoryQuery createQuery() {
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(getTaskRepository());
- applyTo(query);
- return query;
- }
-
- public abstract void applyTo(IRepositoryQuery query);
-
- public void saveState() {
- // empty
- }
-
- public void setContainer(ITaskSearchPageContainer container) {
- searchContainer = container;
- }
-
- public boolean inSearchContainer() {
- return searchContainer != null;
- }
-
- public boolean performSearch() {
- NewSearchUI.activateSearchResultView();
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- taskRepository.getConnectorKind());
- if (connector != null) {
- try {
- SearchHitCollector collector = new SearchHitCollector(TasksUiInternal.getTaskList(), taskRepository,
- createQuery());
- NewSearchUI.runQueryInBackground(collector);
- } catch (UnsupportedOperationException e) {
- SearchHitCollector collector = new SearchHitCollector(TasksUiInternal.getTaskList(), taskRepository,
- getQuery());
- NewSearchUI.runQueryInBackground(collector);
- }
- }
- return true;
- }
-
- /**
- * @since 2.1
- */
- public void setControlsEnabled(boolean enabled) {
- setControlsEnabled(getControl(), enabled);
- }
-
- // TODO: make reusable or find better API, task editor has similar functionality
- private void setControlsEnabled(Control control, boolean enabled) {
- if (control instanceof Composite) {
- for (Control childControl : ((Composite) control).getChildren()) {
- childControl.setEnabled(enabled);
- setControlsEnabled(childControl, enabled);
- }
- }
- setPageComplete(isPageComplete());
- }
-
- public ITaskSearchPageContainer getSearchContainer() {
- return searchContainer;
- }
-
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java
deleted file mode 100644
index b63550620..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java
+++ /dev/null
@@ -1,1687 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * Frank Becker - improvements
- * Helen Bershadskaya - improvements for bug 242445
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.nio.charset.Charset;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-
-/**
- * Extend to provide custom repository settings. This page is typically invoked by the user requesting properties via
- * the Task Repositories view.
- *
- * @author Mik Kersten
- * @author Rob Elves
- * @author Steffen Pingel
- * @author Frank Becker
- * @author David Green
- * @author Helen Bershadskaya
- * @since 2.0
- */
-public abstract class AbstractRepositorySettingsPage extends AbstractTaskRepositoryPage implements ITaskRepositoryPage {
-
- protected static final String PREFS_PAGE_ID_NET_PROXY = "org.eclipse.ui.net.NetPreferences"; //$NON-NLS-1$
-
- protected static final String LABEL_REPOSITORY_LABEL = Messages.AbstractRepositorySettingsPage_Label_;
-
- protected static final String LABEL_SERVER = Messages.AbstractRepositorySettingsPage_Server_;
-
- protected static final String LABEL_USER = Messages.AbstractRepositorySettingsPage_User_ID_;
-
- protected static final String LABEL_PASSWORD = Messages.AbstractRepositorySettingsPage_Password_;
-
- protected static final String URL_PREFIX_HTTPS = "https://"; //$NON-NLS-1$
-
- protected static final String URL_PREFIX_HTTP = "http://"; //$NON-NLS-1$
-
- protected static final String INVALID_REPOSITORY_URL = Messages.AbstractRepositorySettingsPage_Repository_url_is_invalid;
-
- protected static final String INVALID_LOGIN = Messages.AbstractRepositorySettingsPage_Unable_to_authenticate_with_repository;
-
- protected AbstractRepositoryConnector connector;
-
- protected StringFieldEditor repositoryLabelEditor;
-
- protected Combo serverUrlCombo;
-
- private String serverVersion = TaskRepository.NO_VERSION_SPECIFIED;
-
- protected StringFieldEditor repositoryUserNameEditor;
-
- protected StringFieldEditor repositoryPasswordEditor;
-
- protected StringFieldEditor httpAuthUserNameEditor;
-
- protected StringFieldEditor httpAuthPasswordEditor;
-
- protected StringFieldEditor proxyHostnameEditor;
-
- protected StringFieldEditor proxyPortEditor;
-
- protected StringFieldEditor proxyUserNameEditor;
-
- protected StringFieldEditor proxyPasswordEditor;
-
- // FIXME shadows declaration in super
- protected TaskRepository repository;
-
- private Combo otherEncodingCombo;
-
- private Button defaultEncoding;
-
- // private Combo timeZonesCombo;
-
- protected Button anonymousButton;
-
- private String oldUsername;
-
- private String oldPassword;
-
- private String oldHttpAuthUserId;
-
- private String oldHttpAuthPassword;
-
- private boolean needsAnonymousLogin;
-
- private boolean needsTimeZone;
-
- private boolean needsEncoding;
-
- private boolean needsHttpAuth;
-
- private boolean needsValidation;
-
- private boolean needsAdvanced;
-
- protected Composite compositeContainer;
-
- private Composite advancedComp;
-
- private Composite httpAuthComp;
-
- private Composite proxyAuthComp;
-
- private Set<String> repositoryUrls;
-
- private String originalUrl;
-
- private Button otherEncoding;
-
- private Button httpAuthButton;
-
- private boolean needsProxy;
-
- private Button systemProxyButton;
-
- private String oldProxyUsername = ""; //$NON-NLS-1$
-
- private String oldProxyPassword = ""; //$NON-NLS-1$
-
- // private Button proxyAuthButton;
-
- private String oldProxyHostname = ""; //$NON-NLS-1$
-
- private String oldProxyPort = ""; //$NON-NLS-1$
-
- private Button proxyAuthButton;
-
- private Hyperlink createAccountHyperlink;
-
- private Hyperlink manageAccountHyperlink;
-
- /**
- * @since 3.1
- */
- protected Button savePasswordButton;
-
- private Button saveHttpPasswordButton;
-
- private Button saveProxyPasswordButton;
-
- private Button disconnectedButton;
-
- /**
- * @since 3.0
- */
- public AbstractRepositorySettingsPage(String title, String description, TaskRepository taskRepository) {
- super(title, description, taskRepository);
- repository = taskRepository;
- this.connector = TasksUi.getRepositoryManager().getRepositoryConnector(getConnectorKind());
- setNeedsAnonymousLogin(false);
- setNeedsEncoding(true);
- setNeedsTimeZone(true);
- setNeedsProxy(true);
- setNeedsValidation(true);
- setNeedsAdvanced(true);
- }
-
- /**
- * @since 3.0
- */
- @Override
- public abstract String getConnectorKind();
-
- @Override
- public void dispose() {
- super.dispose();
- }
-
-// /**
-// * @since 2.0
-// */
-// @Override
-// protected Control createContents(Composite parent) {
-// compositeContainer = new Composite(parent, SWT.NONE);
-// GridLayout layout = new GridLayout(3, false);
-// compositeContainer.setLayout(layout);
-//
-// createSettingControls(parent);
-// }
-
- @Override
- public void createControl(Composite parent) {
- initializeDialogUnits(parent);
- toolkit = new FormToolkit(TasksUiPlugin.getDefault().getFormColors(parent.getDisplay()));
-
- Composite compositeContainer = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(3, false);
- compositeContainer.setLayout(layout);
-
- createSettingControls(compositeContainer);
-
- setControl(compositeContainer);
- }
-
- /**
- * @since 2.0
- */
- @Override
- protected void createSettingControls(Composite parent) {
- compositeContainer = parent;
-
- initializeOldValues();
-
- Label serverLabel = new Label(compositeContainer, SWT.NONE);
- serverLabel.setText(LABEL_SERVER);
- serverUrlCombo = new Combo(compositeContainer, SWT.DROP_DOWN);
- serverUrlCombo.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
- });
- serverUrlCombo.addFocusListener(new FocusAdapter() {
-
- @Override
- public void focusLost(FocusEvent e) {
- updateHyperlinks();
- }
- });
- serverUrlCombo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
- });
-
- GridDataFactory.fillDefaults().hint(300, SWT.DEFAULT).grab(true, false).span(2, SWT.DEFAULT).applyTo(
- serverUrlCombo);
-
- repositoryLabelEditor = new StringFieldEditor("", LABEL_REPOSITORY_LABEL, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- compositeContainer) {
-
- @Override
- protected boolean doCheckState() {
- return true;
- // return isValidUrl(getStringValue());
- }
-
- @Override
- protected void valueChanged() {
- super.valueChanged();
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- @Override
- public int getNumberOfControls() {
- return 2;
- }
- };
- disconnectedButton = new Button(compositeContainer, SWT.CHECK);
- disconnectedButton.setText(Messages.AbstractRepositorySettingsPage_Disconnected);
- disconnectedButton.setSelection(repository != null ? repository.isOffline() : false);
-
- repositoryUserNameEditor = new StringFieldEditor("", LABEL_USER, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- compositeContainer) {
-
- @Override
- protected boolean doCheckState() {
- return true;
- }
-
- @Override
- protected void valueChanged() {
- super.valueChanged();
- isPageComplete();
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- @Override
- public int getNumberOfControls() {
- // always 2 columns -- if no anonymous checkbox, just leave 3rd column empty
- return 2;
- }
- };
- if (needsAnonymousLogin()) {
- // need to increase column number here, because above string editor will use them if declared beforehand
- //((GridLayout) (compositeContainer.getLayout())).numColumns++;
- anonymousButton = new Button(compositeContainer, SWT.CHECK);
-
- anonymousButton.setText(Messages.AbstractRepositorySettingsPage_Anonymous_Access);
- anonymousButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- setAnonymous(anonymousButton.getSelection());
- isPageComplete();
- }
- });
- } else {
- Label dummyLabel = new Label(compositeContainer, SWT.NONE); // dummy control to fill 3rd column when no anonymous login
- GridDataFactory.fillDefaults().applyTo(dummyLabel); // not really necessary, but to be on the safe side
- }
-
- repositoryPasswordEditor = new RepositoryStringFieldEditor("", LABEL_PASSWORD, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- compositeContainer) {
-
- @Override
- protected boolean doCheckState() {
- return true;
- }
-
- @Override
- protected void valueChanged() {
- super.valueChanged();
- isPageComplete();
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- @Override
- public int getNumberOfControls() {
- return 2;
- }
- };
-
- savePasswordButton = new Button(compositeContainer, SWT.CHECK);
- savePasswordButton.setText(Messages.AbstractRepositorySettingsPage_Save_Password);
-
- if (repository != null) {
- try {
- String repositoryLabel = repository.getProperty(IRepositoryConstants.PROPERTY_LABEL);
- if (repositoryLabel != null && repositoryLabel.length() > 0) {
- // repositoryLabelCombo.add(repositoryLabel);
- // repositoryLabelCombo.select(0);
- repositoryLabelEditor.setStringValue(repositoryLabel);
- }
- serverUrlCombo.setText(repository.getRepositoryUrl());
- AuthenticationCredentials credentials = repository.getCredentials(AuthenticationType.REPOSITORY);
- if (credentials != null) {
- repositoryUserNameEditor.setStringValue(credentials.getUserName());
- repositoryPasswordEditor.setStringValue(credentials.getPassword());
- } else {
- repositoryUserNameEditor.setStringValue(""); //$NON-NLS-1$
- repositoryPasswordEditor.setStringValue(""); //$NON-NLS-1$
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not set field value", t)); //$NON-NLS-1$
- }
- }
-
- if (needsAnonymousLogin()) {
- if (repository != null) {
- setAnonymous(repository.getCredentials(AuthenticationType.REPOSITORY) == null);
- } else {
- setAnonymous(true);
- }
- }
-
- if (repository != null) {
- savePasswordButton.setSelection(repository.getSavePassword(AuthenticationType.REPOSITORY));
- } else {
- savePasswordButton.setSelection(false);
- }
-
- // TODO: put this back if we can't get the info from all connectors
- // if (needsTimeZone()) {
- // Label timeZoneLabel = new Label(container, SWT.NONE);
- // timeZoneLabel.setText("Repository time zone: ");
- // timeZonesCombo = new Combo(container, SWT.READ_ONLY);
- // String[] timeZoneIds = TimeZone.getAvailableIDs();
- // Arrays.sort(timeZoneIds);
- // for (String zone : timeZoneIds) {
- // timeZonesCombo.add(zone);
- // }
- // boolean setZone = false;
- // if (repository != null) {
- // if (timeZonesCombo.indexOf(repository.getTimeZoneId()) > -1) {
- // timeZonesCombo.select(timeZonesCombo.indexOf(repository.getTimeZoneId()));
- // setZone = true;
- // }
- // }
- // if (!setZone) {
- // timeZonesCombo.select(timeZonesCombo.indexOf(TimeZone.getDefault().getID()));
- // }
- // }
-
- if (needsAdvanced() || needsEncoding()) {
- createAdvancedSection();
- }
-
- if (needsHttpAuth()) {
- createHttpAuthSection();
- }
-
- if (needsProxy()) {
- createProxySection();
- }
-
- createContributionControls(parent);
-
- Composite managementComposite = new Composite(compositeContainer, SWT.NULL);
- GridLayout managementLayout = new GridLayout(4, false);
- managementLayout.marginHeight = 0;
- managementLayout.marginWidth = 0;
- managementLayout.horizontalSpacing = 10;
- managementComposite.setLayout(managementLayout);
- managementComposite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 2, 1));
-
- createAccountHyperlink = toolkit.createHyperlink(managementComposite,
- Messages.AbstractRepositorySettingsPage_Create_new_account, SWT.NONE);
- createAccountHyperlink.setBackground(managementComposite.getBackground());
- createAccountHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
-// TaskRepository repository = getRepository();
- TaskRepository repository = createTaskRepository();
-// if (repository == null && getServerUrl() != null && getServerUrl().length() > 0) {
-// repository = createTaskRepository();
-// }
- if (repository != null) {
- String accountCreationUrl = TasksUiPlugin.getConnectorUi(connector.getConnectorKind())
- .getAccountCreationUrl(repository);
- if (accountCreationUrl != null) {
- TasksUiUtil.openUrl(accountCreationUrl);
- }
- }
- }
- });
-
- manageAccountHyperlink = toolkit.createHyperlink(managementComposite,
- Messages.AbstractRepositorySettingsPage_Change_account_settings, SWT.NONE);
- manageAccountHyperlink.setBackground(managementComposite.getBackground());
- manageAccountHyperlink.addHyperlinkListener(new HyperlinkAdapter() {
- @Override
- public void linkActivated(HyperlinkEvent e) {
- TaskRepository repository = getRepository();
- if (repository == null && getRepositoryUrl() != null && getRepositoryUrl().length() > 0) {
- repository = createTaskRepository();
- }
- if (repository != null) {
- String accountManagementUrl = TasksUiPlugin.getConnectorUi(connector.getConnectorKind())
- .getAccountManagementUrl(repository);
- if (accountManagementUrl != null) {
- TasksUiUtil.openUrl(accountManagementUrl);
- }
- }
- }
- });
-
- // bug 131656: must set echo char after setting value on Mac
- ((RepositoryStringFieldEditor) repositoryPasswordEditor).getTextControl().setEchoChar('*');
-
- if (needsAnonymousLogin()) {
- // do this after username and password widgets have been intialized
- if (repository != null) {
- setAnonymous(isAnonymousAccess());
- }
- }
-
- updateHyperlinks();
-
- GridLayout layout = new GridLayout(3, false);
- compositeContainer.setLayout(layout);
-
- Dialog.applyDialogFont(compositeContainer);
- }
-
- private void createAdvancedSection() {
- ExpandableComposite section = createSection(compositeContainer,
- Messages.AbstractRepositorySettingsPage_Additional_Settings);
-
- advancedComp = toolkit.createComposite(section, SWT.NONE);
- GridLayout gridLayout2 = new GridLayout();
- gridLayout2.numColumns = 2;
- gridLayout2.verticalSpacing = 5;
- gridLayout2.marginWidth = 0;
- advancedComp.setLayout(gridLayout2);
- advancedComp.setBackground(compositeContainer.getBackground());
- section.setClient(advancedComp);
-
- createAdditionalControls(advancedComp);
-
- if (needsEncoding()) {
- Label encodingLabel = new Label(advancedComp, SWT.HORIZONTAL);
- encodingLabel.setText(Messages.AbstractRepositorySettingsPage_Character_encoding);
- GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(encodingLabel);
-
- Composite encodingContainer = new Composite(advancedComp, SWT.NONE);
- GridLayout gridLayout = new GridLayout(2, false);
- gridLayout.marginWidth = 0;
- gridLayout.marginHeight = 0;
- encodingContainer.setLayout(gridLayout);
-
- defaultEncoding = new Button(encodingContainer, SWT.RADIO);
- defaultEncoding.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
- defaultEncoding.setText(Messages.AbstractRepositorySettingsPage_Default__
- + TaskRepository.DEFAULT_CHARACTER_ENCODING + ")"); //$NON-NLS-1$
- defaultEncoding.setSelection(true);
-
- otherEncoding = new Button(encodingContainer, SWT.RADIO);
- otherEncoding.setText(Messages.AbstractRepositorySettingsPage_Other);
- otherEncodingCombo = new Combo(encodingContainer, SWT.READ_ONLY);
- try {
- for (String encoding : Charset.availableCharsets().keySet()) {
- if (!encoding.equals(TaskRepository.DEFAULT_CHARACTER_ENCODING)) {
- otherEncodingCombo.add(encoding);
- }
- }
- } catch (LinkageError e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.AbstractRepositorySettingsPage_Problems_encountered_determining_available_charsets, e));
- // bug 237972: 3rd party encodings can cause availableCharsets() to fail
- otherEncoding.setEnabled(false);
- otherEncodingCombo.setEnabled(false);
- }
-
- setDefaultEncoding();
-
- otherEncoding.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (otherEncoding.getSelection()) {
- defaultEncoding.setSelection(false);
- otherEncodingCombo.setEnabled(true);
- } else {
- defaultEncoding.setSelection(true);
- otherEncodingCombo.setEnabled(false);
- }
- }
- });
-
- if (repository != null) {
- try {
- String repositoryEncoding = repository.getCharacterEncoding();
- if (repositoryEncoding != null) {// &&
- // !repositoryEncoding.equals(defaultEncoding))
- // {
- if (otherEncodingCombo.getItemCount() > 0
- && otherEncodingCombo.indexOf(repositoryEncoding) > -1) {
- otherEncodingCombo.setEnabled(true);
- otherEncoding.setSelection(true);
- defaultEncoding.setSelection(false);
- otherEncodingCombo.select(otherEncodingCombo.indexOf(repositoryEncoding));
- } else {
- setDefaultEncoding();
- }
- }
- } catch (Throwable t) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not set field value", t)); //$NON-NLS-1$
- }
- }
- }
- }
-
- private void createHttpAuthSection() {
- ExpandableComposite section = createSection(compositeContainer,
- Messages.AbstractRepositorySettingsPage_Http_Authentication);
-
- httpAuthComp = toolkit.createComposite(section, SWT.NONE);
- httpAuthComp.setBackground(compositeContainer.getBackground());
- section.setClient(httpAuthComp);
-
- httpAuthButton = new Button(httpAuthComp, SWT.CHECK);
- GridDataFactory.fillDefaults().indent(0, 5).align(SWT.LEFT, SWT.TOP).span(3, SWT.DEFAULT).applyTo(
- httpAuthButton);
-
- httpAuthButton.setText(Messages.AbstractRepositorySettingsPage_Enable_http_authentication);
-
- httpAuthButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- setHttpAuth(httpAuthButton.getSelection());
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
- });
-
- httpAuthUserNameEditor = new StringFieldEditor(
- "", Messages.AbstractRepositorySettingsPage_User_ID_, StringFieldEditor.UNLIMITED, httpAuthComp) { //$NON-NLS-1$
-
- @Override
- protected boolean doCheckState() {
- return true;
- }
-
- @Override
- protected void valueChanged() {
- super.valueChanged();
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- @Override
- public int getNumberOfControls() {
- return 3;
- }
- };
-
- httpAuthPasswordEditor = new RepositoryStringFieldEditor(
- "", Messages.AbstractRepositorySettingsPage_Password_, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- httpAuthComp) {
- @Override
- public int getNumberOfControls() {
- return 2;
- }
- };
- ((RepositoryStringFieldEditor) httpAuthPasswordEditor).getTextControl().setEchoChar('*');
-
- saveHttpPasswordButton = new Button(httpAuthComp, SWT.CHECK);
- saveHttpPasswordButton.setText(Messages.AbstractRepositorySettingsPage_Save_Password);
-
- httpAuthUserNameEditor.setEnabled(httpAuthButton.getSelection(), httpAuthComp);
- httpAuthPasswordEditor.setEnabled(httpAuthButton.getSelection(), httpAuthComp);
- saveHttpPasswordButton.setEnabled(httpAuthButton.getSelection());
-
- if (repository != null) {
- saveHttpPasswordButton.setSelection(repository.getSavePassword(AuthenticationType.HTTP));
- } else {
- saveHttpPasswordButton.setSelection(false);
- }
- setHttpAuth(oldHttpAuthPassword != null || oldHttpAuthUserId != null);
- section.setExpanded(httpAuthButton.getSelection());
-
- GridLayout gridLayout2 = new GridLayout();
- gridLayout2.numColumns = 3;
- gridLayout2.marginWidth = 0;
- httpAuthComp.setLayout(gridLayout2);
- }
-
- private void initializeOldValues() {
- if (repository != null) {
- originalUrl = repository.getRepositoryUrl();
- AuthenticationCredentials oldCredentials = repository.getCredentials(AuthenticationType.REPOSITORY);
- if (oldCredentials != null) {
- oldUsername = oldCredentials.getUserName();
- oldPassword = oldCredentials.getPassword();
- } else {
- oldUsername = ""; //$NON-NLS-1$
- oldPassword = ""; //$NON-NLS-1$
- }
-
- AuthenticationCredentials oldHttpCredentials = repository.getCredentials(AuthenticationType.HTTP);
- if (oldHttpCredentials != null) {
- oldHttpAuthUserId = oldHttpCredentials.getUserName();
- oldHttpAuthPassword = oldHttpCredentials.getPassword();
- } else {
- oldHttpAuthPassword = null;
- oldHttpAuthUserId = null;
- }
-
- oldProxyHostname = repository.getProperty(TaskRepository.PROXY_HOSTNAME);
- oldProxyPort = repository.getProperty(TaskRepository.PROXY_PORT);
- if (oldProxyHostname == null) {
- oldProxyHostname = ""; //$NON-NLS-1$
- }
- if (oldProxyPort == null) {
- oldProxyPort = ""; //$NON-NLS-1$
- }
-
- AuthenticationCredentials oldProxyCredentials = repository.getCredentials(AuthenticationType.PROXY);
- if (oldProxyCredentials != null) {
- oldProxyUsername = oldProxyCredentials.getUserName();
- oldProxyPassword = oldProxyCredentials.getPassword();
- } else {
- oldProxyUsername = null;
- oldProxyPassword = null;
- }
-
- } else {
- oldUsername = ""; //$NON-NLS-1$
- oldPassword = ""; //$NON-NLS-1$
- oldHttpAuthPassword = null;
- oldHttpAuthUserId = null;
- }
- }
-
- private void createProxySection() {
- ExpandableComposite section = createSection(compositeContainer,
- Messages.AbstractRepositorySettingsPage_Proxy_Server_Configuration);
-
- proxyAuthComp = toolkit.createComposite(section, SWT.NONE);
- GridLayout gridLayout2 = new GridLayout();
- gridLayout2.verticalSpacing = 0;
- gridLayout2.numColumns = 3;
- proxyAuthComp.setLayout(gridLayout2);
- proxyAuthComp.setBackground(compositeContainer.getBackground());
- section.setClient(proxyAuthComp);
-
- Composite systemSettingsComposite = new Composite(proxyAuthComp, SWT.NULL);
- GridLayout gridLayout3 = new GridLayout();
- gridLayout3.verticalSpacing = 0;
- gridLayout3.numColumns = 2;
- gridLayout3.marginWidth = 0;
- systemSettingsComposite.setLayout(gridLayout3);
-
- systemProxyButton = new Button(systemSettingsComposite, SWT.CHECK);
- GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).span(3, SWT.DEFAULT).applyTo(systemSettingsComposite);
-
- systemProxyButton.setText(Messages.AbstractRepositorySettingsPage_Use_global_Network_Connections_preferences);
-
- systemProxyButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- setUseDefaultProxy(systemProxyButton.getSelection());
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
- });
-
- Hyperlink changeProxySettingsLink = toolkit.createHyperlink(systemSettingsComposite,
- Messages.AbstractRepositorySettingsPage_Change_Settings, SWT.NULL);
- changeProxySettingsLink.setBackground(compositeContainer.getBackground());
- changeProxySettingsLink.addHyperlinkListener(new IHyperlinkListener() {
-
- public void linkActivated(HyperlinkEvent e) {
- PreferenceDialog dlg = PreferencesUtil.createPreferenceDialogOn(getShell(), PREFS_PAGE_ID_NET_PROXY,
- new String[] { PREFS_PAGE_ID_NET_PROXY }, null);
- dlg.open();
- }
-
- public void linkEntered(HyperlinkEvent e) {
- // ignore
- }
-
- public void linkExited(HyperlinkEvent e) {
- // ignore
- }
- });
-
- proxyHostnameEditor = new StringFieldEditor(
- "", Messages.AbstractRepositorySettingsPage_Proxy_host_address_, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- proxyAuthComp) {
-
- @Override
- protected boolean doCheckState() {
- return true;
- }
-
- @Override
- protected void valueChanged() {
- super.valueChanged();
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- @Override
- public int getNumberOfControls() {
- return 3;
- }
- };
- proxyHostnameEditor.setStringValue(oldProxyHostname);
-
- proxyPortEditor = new RepositoryStringFieldEditor(
- "", Messages.AbstractRepositorySettingsPage_Proxy_host_port_, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- proxyAuthComp) {
-
- @Override
- public int getNumberOfControls() {
- return 3;
- }
- };
-
- proxyPortEditor.setStringValue(oldProxyPort);
-
- proxyHostnameEditor.setEnabled(systemProxyButton.getSelection(), proxyAuthComp);
- proxyPortEditor.setEnabled(systemProxyButton.getSelection(), proxyAuthComp);
-
- // ************* PROXY AUTHENTICATION **************
-
- proxyAuthButton = new Button(proxyAuthComp, SWT.CHECK);
- GridDataFactory.fillDefaults().span(3, SWT.DEFAULT).applyTo(proxyAuthButton);
- proxyAuthButton.setText(Messages.AbstractRepositorySettingsPage_Enable_proxy_authentication);
- proxyAuthButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- setProxyAuth(proxyAuthButton.getSelection());
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
- });
-
- proxyUserNameEditor = new StringFieldEditor(
- "", Messages.AbstractRepositorySettingsPage_User_ID_, StringFieldEditor.UNLIMITED, proxyAuthComp) { //$NON-NLS-1$
-
- @Override
- protected boolean doCheckState() {
- return true;
- }
-
- @Override
- protected void valueChanged() {
- super.valueChanged();
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- @Override
- public int getNumberOfControls() {
- return 3;
- }
- };
-
- proxyPasswordEditor = new RepositoryStringFieldEditor(
- "", Messages.AbstractRepositorySettingsPage_Password_, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
- proxyAuthComp) {
- @Override
- public int getNumberOfControls() {
- return 2;
- }
- };
- ((RepositoryStringFieldEditor) proxyPasswordEditor).getTextControl().setEchoChar('*');
-
- // proxyPasswordEditor.setEnabled(httpAuthButton.getSelection(),
- // advancedComp);
- // ((StringFieldEditor)
- // httpAuthPasswordEditor).setEnabled(httpAuthButton.getSelection(),
- // advancedComp);
-
- // need to increase column number here, because above string editor will use them if declared beforehand
- ((GridLayout) (proxyAuthComp.getLayout())).numColumns++;
- saveProxyPasswordButton = new Button(proxyAuthComp, SWT.CHECK);
- saveProxyPasswordButton.setText(Messages.AbstractRepositorySettingsPage_Save_Password);
- saveProxyPasswordButton.setEnabled(proxyAuthButton.getSelection());
-
- if (repository != null) {
- saveProxyPasswordButton.setSelection(repository.getSavePassword(AuthenticationType.PROXY));
- } else {
- saveProxyPasswordButton.setSelection(false);
- }
-
- setProxyAuth(oldProxyUsername != null || oldProxyPassword != null);
-
- setUseDefaultProxy(repository != null ? repository.isDefaultProxyEnabled() : true);
- section.setExpanded(!systemProxyButton.getSelection());
- }
-
-// private void addContributionSection() {
-// Composite composite = toolkit.createComposite(compositeContainer);
-// GridDataFactory.fillDefaults().grab(true, false).span(3, SWT.DEFAULT).applyTo(composite);
-//
-// GridLayout layout = new GridLayout(1, false);
-// layout.marginWidth = 0;
-// layout.marginTop = -5;
-// composite.setLayout(layout);
-//
-// composite.setBackground(compositeContainer.getBackground());
-//
-// createContributionControls(composite);
-// }
-
- protected void setEncoding(String encoding) {
- if (encoding.equals(TaskRepository.DEFAULT_CHARACTER_ENCODING)) {
- setDefaultEncoding();
- } else {
- if (otherEncodingCombo.indexOf(encoding) != -1) {
- defaultEncoding.setSelection(false);
- otherEncodingCombo.setEnabled(true);
- otherEncoding.setSelection(true);
- otherEncodingCombo.select(otherEncodingCombo.indexOf(encoding));
- } else {
- setDefaultEncoding();
- }
- }
- }
-
- private void setDefaultEncoding() {
- defaultEncoding.setSelection(true);
- otherEncoding.setSelection(false);
- otherEncodingCombo.setEnabled(false);
- if (otherEncodingCombo.getItemCount() > 0) {
- otherEncodingCombo.select(0);
- }
- }
-
- /**
- * @since 2.0
- */
- public void setAnonymous(boolean selected) {
- if (!needsAnonymousLogin) {
- return;
- }
-
- anonymousButton.setSelection(selected);
-
- if (selected) {
- oldUsername = repositoryUserNameEditor.getStringValue();
- oldPassword = (repositoryPasswordEditor).getStringValue();
- repositoryUserNameEditor.setStringValue(""); //$NON-NLS-1$
- repositoryPasswordEditor.setStringValue(""); //$NON-NLS-1$
- } else {
- repositoryUserNameEditor.setStringValue(oldUsername);
- repositoryPasswordEditor.setStringValue(oldPassword);
- }
-
- repositoryUserNameEditor.setEnabled(!selected, compositeContainer);
- repositoryPasswordEditor.setEnabled(!selected, compositeContainer);
- savePasswordButton.setEnabled(!selected);
- if (getWizard() != null) {
- getWizard().getContainer().updateButtons();
- }
- }
-
- /**
- * @since 2.0
- */
- public void setHttpAuth(boolean selected) {
- if (!needsHttpAuth) {
- return;
- }
- httpAuthButton.setSelection(selected);
- if (!selected) {
- oldHttpAuthUserId = httpAuthUserNameEditor.getStringValue();
- oldHttpAuthPassword = httpAuthPasswordEditor.getStringValue();
- httpAuthUserNameEditor.setStringValue(null);
- httpAuthPasswordEditor.setStringValue(null);
- } else {
- httpAuthUserNameEditor.setStringValue(oldHttpAuthUserId);
- httpAuthPasswordEditor.setStringValue(oldHttpAuthPassword);
- }
- httpAuthUserNameEditor.setEnabled(selected, httpAuthComp);
- httpAuthPasswordEditor.setEnabled(selected, httpAuthComp);
- saveHttpPasswordButton.setEnabled(selected);
- }
-
- /**
- * @since 2.2
- */
- public boolean getHttpAuth() {
- return httpAuthButton.getSelection();
- }
-
- /**
- * @since 2.0
- */
- public void setUseDefaultProxy(boolean selected) {
- if (!needsProxy) {
- return;
- }
-
- systemProxyButton.setSelection(selected);
-
- if (selected) {
- oldProxyHostname = proxyHostnameEditor.getStringValue();
- oldProxyPort = proxyPortEditor.getStringValue();
- // proxyHostnameEditor.setStringValue(null);
- // proxyPortEditor.setStringValue(null);
- } else {
- proxyHostnameEditor.setStringValue(oldProxyHostname);
- proxyPortEditor.setStringValue(oldProxyPort);
- }
- proxyHostnameEditor.setEnabled(!selected, proxyAuthComp);
- proxyPortEditor.setEnabled(!selected, proxyAuthComp);
- proxyAuthButton.setEnabled(!selected);
- setProxyAuth(proxyAuthButton.getSelection());
- }
-
- /**
- * @since 2.0
- */
- public void setProxyAuth(boolean selected) {
- proxyAuthButton.setSelection(selected);
- proxyAuthButton.setEnabled(!systemProxyButton.getSelection());
- if (!selected) {
- oldProxyUsername = proxyUserNameEditor.getStringValue();
- oldProxyPassword = proxyPasswordEditor.getStringValue();
- proxyUserNameEditor.setStringValue(null);
- proxyPasswordEditor.setStringValue(null);
- } else {
- proxyUserNameEditor.setStringValue(oldProxyUsername);
- proxyPasswordEditor.setStringValue(oldProxyPassword);
- }
-
- proxyUserNameEditor.setEnabled(selected && !systemProxyButton.getSelection(), proxyAuthComp);
- proxyPasswordEditor.setEnabled(selected && !systemProxyButton.getSelection(), proxyAuthComp);
- saveProxyPasswordButton.setEnabled(selected && !systemProxyButton.getSelection());
- }
-
- /**
- * @since 2.2
- */
- public boolean getProxyAuth() {
- return proxyAuthButton.getSelection();
- }
-
- /**
- * @since 3.0
- */
- protected void addRepositoryTemplatesToServerUrlCombo() {
- final RepositoryTemplateManager templateManager = TasksUiPlugin.getRepositoryTemplateManager();
- for (RepositoryTemplate template : templateManager.getTemplates(connector.getConnectorKind())) {
- serverUrlCombo.add(template.label);
- }
- serverUrlCombo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- String text = serverUrlCombo.getText();
- RepositoryTemplate template = templateManager.getTemplate(connector.getConnectorKind(), text);
- if (template != null) {
- repositoryTemplateSelected(template);
- return;
- }
- }
-
- });
- }
-
- /**
- * @since 3.0
- */
- protected void repositoryTemplateSelected(RepositoryTemplate template) {
- }
-
- /**
- * @since 2.0
- */
- protected abstract void createAdditionalControls(Composite parent);
-
- /**
- * @since 2.0
- */
- protected abstract boolean isValidUrl(String url);
-
- private void updateHyperlinks() {
- if (getRepositoryUrl() != null && getRepositoryUrl().length() > 0) {
- TaskRepository repository = new TaskRepository(connector.getConnectorKind(), getRepositoryUrl());
-
- String accountCreationUrl = TasksUiPlugin.getConnectorUi(connector.getConnectorKind())
- .getAccountCreationUrl(repository);
- createAccountHyperlink.setEnabled(accountCreationUrl != null);
- createAccountHyperlink.setVisible(accountCreationUrl != null);
-
- String accountManagementUrl = TasksUiPlugin.getConnectorUi(connector.getConnectorKind())
- .getAccountManagementUrl(repository);
- manageAccountHyperlink.setEnabled(accountManagementUrl != null);
- manageAccountHyperlink.setVisible(accountManagementUrl != null);
- } else {
- createAccountHyperlink.setEnabled(false);
- createAccountHyperlink.setVisible(false);
- manageAccountHyperlink.setEnabled(false);
- manageAccountHyperlink.setVisible(false);
- }
- }
-
- /**
- * @since 2.0
- */
- public String getRepositoryLabel() {
- return repositoryLabelEditor.getStringValue();
- }
-
- /**
- * @since 3.0
- */
- public String getRepositoryUrl() {
- return TaskRepositoryManager.stripSlashes(serverUrlCombo.getText());
- }
-
- /**
- * @since 2.0
- */
- public String getUserName() {
- return repositoryUserNameEditor.getStringValue();
- }
-
- /**
- * @since 2.0
- */
- public String getPassword() {
- return repositoryPasswordEditor.getStringValue();
- }
-
- /**
- * @since 2.0
- */
- public String getHttpAuthUserId() {
- if (needsHttpAuth()) {
- return httpAuthUserNameEditor.getStringValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 2.0
- */
- public String getHttpAuthPassword() {
- if (needsHttpAuth()) {
- return httpAuthPasswordEditor.getStringValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 2.0
- */
- public String getProxyHostname() {
- if (needsProxy()) {
- return proxyHostnameEditor.getStringValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 2.0
- */
- public String getProxyPort() {
- if (needsProxy()) {
- return proxyPortEditor.getStringValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 2.0
- */
- public Boolean getUseDefaultProxy() {
- if (needsProxy()) {
- return systemProxyButton.getSelection();
- } else {
- return true;
- }
- }
-
- /**
- * @since 2.0
- */
- public String getProxyUserName() {
- if (needsProxy()) {
- return proxyUserNameEditor.getStringValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 2.0
- */
- public String getProxyPassword() {
- if (needsProxy()) {
- return proxyPasswordEditor.getStringValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- /**
- * @since 2.0
- */
- public void init(IWorkbench workbench) {
- // ignore
- }
-
- /**
- * @since 2.0
- */
- public boolean isAnonymousAccess() {
- if (anonymousButton != null) {
- return anonymousButton.getSelection();
- } else {
- return false;
- }
- }
-
- /**
- * Exposes StringFieldEditor.refreshValidState()
- *
- * TODO: is there a better way?
- */
- private static class RepositoryStringFieldEditor extends StringFieldEditor {
- public RepositoryStringFieldEditor(String name, String labelText, int style, Composite parent) {
- super(name, labelText, style, parent);
- }
-
- @Override
- public void refreshValidState() {
- try {
- super.refreshValidState();
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Problem refreshing password field", e)); //$NON-NLS-1$
- }
- }
-
- @Override
- public Text getTextControl() {
- return super.getTextControl();
- }
-
- }
-
- @Override
- public boolean isPageComplete() {
- String errorMessage = null;
- String url = getRepositoryUrl();
- errorMessage = isUniqueUrl(url);
- if (errorMessage == null && !isValidUrl(url)) {
- errorMessage = Messages.AbstractRepositorySettingsPage_Enter_a_valid_server_url;
- }
- if (errorMessage == null) {
- errorMessage = credentialsComplete();
- }
-
- setErrorMessage(errorMessage);
- return errorMessage == null && super.isPageComplete();
- }
-
- private String credentialsComplete() {
- if ((!needsAnonymousLogin() || !anonymousButton.getSelection()) && isMissingCredentials()) {
- return Messages.AbstractRepositorySettingsPage_Repository_user_name_and_password_must_not_be_blank;
- }
- return null;
- }
-
- private boolean isMissingCredentials() {
- return repositoryUserNameEditor.getStringValue().trim().equals("") //$NON-NLS-1$
- || repositoryPasswordEditor.getStringValue().trim().equals(""); //$NON-NLS-1$
- }
-
- /**
- * @since 2.0
- */
- protected String isUniqueUrl(String urlString) {
- if (!urlString.equals(originalUrl)) {
- if (repositoryUrls == null) {
- List<TaskRepository> repositories = TasksUi.getRepositoryManager().getAllRepositories();
- repositoryUrls = new HashSet<String>(repositories.size());
- for (TaskRepository repository : repositories) {
- repositoryUrls.add(repository.getRepositoryUrl());
- }
- }
-
- if (repositoryUrls.contains(urlString)) {
- return Messages.AbstractRepositorySettingsPage_Repository_already_exists;
- }
- }
- return null;
- }
-
- /**
- * @since 2.0
- */
- @Deprecated
- public void setRepository(TaskRepository repository) {
- this.repository = repository;
- }
-
- /**
- * @since 2.0
- */
- public void setVersion(String previousVersion) {
- if (previousVersion == null) {
- serverVersion = TaskRepository.NO_VERSION_SPECIFIED;
- } else {
- serverVersion = previousVersion;
- }
- }
-
- /**
- * @since 2.0
- */
- public String getVersion() {
- return serverVersion;
- }
-
- /**
- * @since 2.0
- */
- public TaskRepository getRepository() {
- return repository;
- }
-
- /**
- * @since 2.0
- */
- public String getCharacterEncoding() {
- if (defaultEncoding == null) {
- return null;
- }
-
- if (defaultEncoding.getSelection()) {
- return TaskRepository.DEFAULT_CHARACTER_ENCODING;
- } else {
- if (otherEncodingCombo.getSelectionIndex() > -1) {
- return otherEncodingCombo.getItem(otherEncodingCombo.getSelectionIndex());
- } else {
- return TaskRepository.DEFAULT_CHARACTER_ENCODING;
- }
- }
- }
-
- /**
- * @since 2.0
- */
- public TaskRepository createTaskRepository() {
- TaskRepository repository = new TaskRepository(connector.getConnectorKind(), getRepositoryUrl());
- applyTo(repository);
- return repository;
- }
-
- /**
- * @since 2.2
- */
- @Override
- public void applyTo(TaskRepository repository) {
- repository.setVersion(getVersion());
- if (needsEncoding()) {
- repository.setCharacterEncoding(getCharacterEncoding());
- }
-
- if (isAnonymousAccess()) {
- repository.setCredentials(AuthenticationType.REPOSITORY, null, getSavePassword());
- } else {
- AuthenticationCredentials credentials = new AuthenticationCredentials(getUserName(), getPassword());
- repository.setCredentials(AuthenticationType.REPOSITORY, credentials, getSavePassword());
- }
- repository.setRepositoryLabel(getRepositoryLabel());
-
- if (needsHttpAuth()) {
- if (getHttpAuth()) {
- AuthenticationCredentials webCredentials = new AuthenticationCredentials(getHttpAuthUserId(),
- getHttpAuthPassword());
- repository.setCredentials(AuthenticationType.HTTP, webCredentials, getSaveHttpPassword());
- } else {
- repository.setCredentials(AuthenticationType.HTTP, null, getSaveHttpPassword());
- }
- }
-
- if (needsProxy()) {
- repository.setDefaultProxyEnabled(getUseDefaultProxy());
- repository.setProperty(TaskRepository.PROXY_HOSTNAME, getProxyHostname());
- repository.setProperty(TaskRepository.PROXY_PORT, getProxyPort());
- if (getProxyAuth()) {
- AuthenticationCredentials webCredentials = new AuthenticationCredentials(getProxyUserName(),
- getProxyPassword());
- repository.setCredentials(AuthenticationType.PROXY, webCredentials, getSaveProxyPassword());
- } else {
- repository.setCredentials(AuthenticationType.PROXY, null, getSaveProxyPassword());
- }
- }
-
- if (disconnectedButton != null) {
- repository.setOffline(disconnectedButton.getSelection());
- }
-
- super.applyTo(repository);
- }
-
- /**
- * @since 2.0
- */
- public AbstractRepositoryConnector getConnector() {
- return connector;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsEncoding() {
- return needsEncoding;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsTimeZone() {
- return needsTimeZone;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsAnonymousLogin() {
- return needsAnonymousLogin;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsAdvanced() {
- return needsAdvanced;
- }
-
- /**
- * @since 2.0
- */
- public void setNeedsEncoding(boolean needsEncoding) {
- this.needsEncoding = needsEncoding;
- }
-
- /**
- * @since 2.0
- */
- public void setNeedsTimeZone(boolean needsTimeZone) {
- this.needsTimeZone = needsTimeZone;
- }
-
- /**
- * @since 2.0
- */
- public void setNeedsAdvanced(boolean needsAdvanced) {
- this.needsAdvanced = needsAdvanced;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsHttpAuth() {
- return this.needsHttpAuth;
- }
-
- /**
- * @since 2.0
- */
- public void setNeedsHttpAuth(boolean needsHttpAuth) {
- this.needsHttpAuth = needsHttpAuth;
- }
-
- /**
- * @since 2.0
- */
- public void setNeedsProxy(boolean needsProxy) {
- this.needsProxy = needsProxy;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsProxy() {
- return this.needsProxy;
- }
-
- /**
- * @since 2.0
- */
- public void setNeedsAnonymousLogin(boolean needsAnonymousLogin) {
- this.needsAnonymousLogin = needsAnonymousLogin;
- }
-
- public void setNeedsValidation(boolean needsValidation) {
- this.needsValidation = needsValidation;
- }
-
- /**
- * @since 2.0
- */
- public boolean needsValidation() {
- return needsValidation;
- }
-
- /**
- * Public for testing.
- *
- * @since 2.0
- */
- public void setUrl(String url) {
- serverUrlCombo.setText(url);
- }
-
- /**
- * Public for testing.
- *
- * @since 2.0
- */
- public void setUserId(String id) {
- repositoryUserNameEditor.setStringValue(id);
- }
-
- /**
- * Public for testing.
- *
- * @since 2.0
- */
- public void setPassword(String pass) {
- repositoryPasswordEditor.setStringValue(pass);
- }
-
- /**
- * @since 2.2
- */
- public Boolean getSavePassword() {
- return savePasswordButton.getSelection();
- }
-
- /**
- * @since 2.2
- */
- public Boolean getSaveProxyPassword() {
- if (needsProxy()) {
- return saveProxyPasswordButton.getSelection();
- } else {
- return false;
- }
- }
-
- /**
- * @since 2.2
- */
- public Boolean getSaveHttpPassword() {
- if (needsHttpAuth()) {
- return saveHttpPasswordButton.getSelection();
- } else {
- return false;
- }
- }
-
- /**
- * Validate settings provided by the {@link #getValidator(TaskRepository) validator}, typically the server settings.
- *
- * @since 2.0
- */
- protected void validateSettings() {
- final Validator validator = getValidator(createTaskRepository());
- if (validator == null) {
- return;
- }
-
- try {
- getWizard().getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(Messages.AbstractRepositorySettingsPage_Validating_server_settings,
- IProgressMonitor.UNKNOWN);
- try {
- validator.run(monitor);
- if (validator.getStatus() == null) {
- validator.setStatus(Status.OK_STATUS);
- }
- } catch (CoreException e) {
- validator.setStatus(e.getStatus());
- } catch (OperationCanceledException e) {
- validator.setStatus(Status.CANCEL_STATUS);
- throw new InterruptedException();
- } catch (Exception e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InvocationTargetException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.AbstractRepositorySettingsPage_Internal_error_validating_repository, e.getCause()));
- return;
- } catch (InterruptedException e) {
- // canceled
- return;
- }
-
- applyValidatorResult(validator);
- getWizard().getContainer().updateButtons();
- }
-
- /**
- * @since 3.1
- */
- @Override
- protected IStatus validate() {
- return null;
- }
-
- /**
- * @since 2.0
- */
- protected void applyValidatorResult(Validator validator) {
- IStatus status = validator.getStatus();
- String message = status.getMessage();
- if (message == null || message.length() == 0) {
- message = null;
- }
- switch (status.getSeverity()) {
- case IStatus.OK:
- if (status == Status.OK_STATUS) {
- if (getUserName().length() > 0) {
- message = Messages.AbstractRepositorySettingsPage_Authentication_credentials_are_valid;
- } else {
- message = Messages.AbstractRepositorySettingsPage_Repository_is_valid;
- }
- }
- setMessage(message, IMessageProvider.INFORMATION);
- break;
- case IStatus.INFO:
- setMessage(message, IMessageProvider.INFORMATION);
- break;
- case IStatus.WARNING:
- setMessage(message, IMessageProvider.WARNING);
- break;
- default:
- setMessage(message, IMessageProvider.ERROR);
- break;
- }
- setErrorMessage(null);
- }
-
- /**
- * @since 2.0
- */
- protected abstract Validator getValidator(TaskRepository repository);
-
- /**
- * Public for testing.
- *
- * @since 2.0
- */
- public abstract class Validator {
-
- private IStatus status;
-
- public abstract void run(IProgressMonitor monitor) throws CoreException;
-
- public IStatus getStatus() {
- return status;
- }
-
- public void setStatus(IStatus status) {
- this.status = status;
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPage.java
deleted file mode 100644
index 650384f63..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPage.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- * Tasktop Technologies - improvements
- * Helen Bershadskaya - improvements for bug 242445
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.wizards;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * An abstract base class for repository settings page that supports the <code>taskRepositoryPageContribution</code>
- * extension point.
- *
- * {@link ITaskRepositoryPage} implementations are encouraged to extend {@link AbstractRepositorySettingsPage} if
- * possible as it provides a standard UI for managing server settings.
- *
- * @see AbstractRepositorySettingsPage
- * @author David Green
- * @author Steffen Pingel
- * @since 3.1
- */
-public abstract class AbstractTaskRepositoryPage extends WizardPage implements ITaskRepositoryPage {
-
- private static final String CLASS = "class"; //$NON-NLS-1$
-
- private static final String ID = "id"; //$NON-NLS-1$
-
- private static final String KIND = "connectorKind"; //$NON-NLS-1$
-
- private static final String TASK_REPOSITORY_PAGE_CONTRIBUTION = "taskRepositoryPageContribution"; //$NON-NLS-1$
-
- private static final String TASK_REPOSITORY_PAGE_CONTRIBUTION_EXTENSION = "org.eclipse.mylyn.tasks.ui.taskRepositoryPageContribution"; //$NON-NLS-1$
-
- private static final Comparator<AbstractTaskRepositoryPageContribution> CONTRIBUTION_COMPARATOR = new ContributionComparator();
-
- private final TaskRepository repository;
-
- private final List<AbstractTaskRepositoryPageContribution> contributions;
-
- FormToolkit toolkit;
-
- private final AbstractTaskRepositoryPageContribution.Listener contributionListener = new AbstractTaskRepositoryPageContribution.Listener() {
- public void validationRequired(AbstractTaskRepositoryPageContribution contribution) {
- validatePageSettings();
- }
- };
-
- /**
- * @since 3.1
- */
- public AbstractTaskRepositoryPage(String title, String description, TaskRepository repository) {
- super(title);
- if (repository != null && !repository.getConnectorKind().equals(getConnectorKind())) {
- throw new IllegalArgumentException(
- "connectorKind of repository does not match connectorKind of page, expected '" + getConnectorKind() + "', got '" + repository.getConnectorKind() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- this.repository = repository;
- this.contributions = new ArrayList<AbstractTaskRepositoryPageContribution>();
- setTitle(title);
- setDescription(description);
- }
-
- /**
- * Get the kind of connector supported by this page.
- *
- * @return the kind of connector, never null
- * @since 3.1
- */
- public abstract String getConnectorKind();
-
- @Override
- public void dispose() {
- if (toolkit != null) {
- toolkit.dispose();
- toolkit = null;
- }
- super.dispose();
- }
-
- /**
- * Creates the contents of the page. Subclasses may override this method to change where the contributions are
- * added.
- *
- * @since 2.0
- */
- public void createControl(Composite parent) {
- initializeDialogUnits(parent);
- toolkit = new FormToolkit(TasksUiPlugin.getDefault().getFormColors(parent.getDisplay()));
-
- Composite compositeContainer = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(3, false);
- compositeContainer.setLayout(layout);
-
-// Composite compositeContainer = new Composite(parent, SWT.NULL);
-// Layout layout = new FillLayout();
-// compositeContainer.setLayout(layout);
-
- createSettingControls(compositeContainer);
- createContributionControls(compositeContainer);
-
- setControl(compositeContainer);
- //getControl().getShell().pack();
- }
-
- /**
- * Creates the controls of this page.
- *
- * @since 3.1
- */
- protected abstract void createSettingControls(Composite parent);
-
- @Override
- public boolean isPageComplete() {
- return super.isPageComplete() && conributionsIsPageComplete();
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return super.canFlipToNextPage() && contributionsCanFlipToNextPage();
- }
-
- private boolean contributionsCanFlipToNextPage() {
- for (AbstractTaskRepositoryPageContribution contribution : contributions) {
- if (!contribution.canFlipToNextPage()) {
- return false;
- }
- }
- return true;
- }
-
- private boolean conributionsIsPageComplete() {
- for (AbstractTaskRepositoryPageContribution contribution : contributions) {
- if (!contribution.isPageComplete()) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Subclasses should only call this method if they override {@link #createContents(Composite)}.
- *
- * @param parentControl
- * the container into which the contributions will create their UI
- * @since 3.1
- */
- protected void createContributionControls(final Composite parentControl) {
- contributions.clear();
- contributions.addAll(findApplicableContributors());
-
- if (!contributions.isEmpty()) {
- final List<AbstractTaskRepositoryPageContribution> badContributions = new ArrayList<AbstractTaskRepositoryPageContribution>();
- for (final AbstractTaskRepositoryPageContribution contribution : contributions) {
- SafeRunnable.run(new SafeRunnable() {
- public void run() throws Exception {
- contribution.init(getConnectorKind(), repository);
- contribution.addListener(contributionListener);
- }
-
- @Override
- public void handleException(Throwable e) {
- badContributions.add(contribution);
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Problems occured when initializing contribution \"{0}\"", contribution.getId()), e)); //$NON-NLS-1$
- }
- });
- }
- contributions.removeAll(badContributions);
-
- Collections.sort(contributions, CONTRIBUTION_COMPARATOR);
-
- for (final AbstractTaskRepositoryPageContribution contribution : contributions) {
- final ExpandableComposite section = createSection(parentControl, contribution.getTitle());
- section.setToolTipText(contribution.getDescription());
-
- SafeRunnable.run(new SafeRunnable() {
- public void run() throws Exception {
- Control control = contribution.createControl(section);
- section.setClient(control);
- }
-
- @Override
- public void handleException(Throwable e) {
- section.dispose();
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Problems occured when creating control for contribution \"{0}\"", //$NON-NLS-1$
- contribution.getId()), e));
- }
- });
- }
- }
- }
-
- /**
- * @since 3.1
- */
- protected ExpandableComposite createSection(final Composite parentControl, String title) {
- final ExpandableComposite section = toolkit.createExpandableComposite(parentControl,
- ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT | ExpandableComposite.COMPACT);
- section.clientVerticalSpacing = 0;
- section.setBackground(parentControl.getBackground());
- section.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DIALOG_FONT));
- section.addExpansionListener(new ExpansionAdapter() {
- @Override
- public void expansionStateChanged(ExpansionEvent e) {
- parentControl.layout(true);
- getControl().getShell().pack();
- }
- });
- section.setText(title);
- GridDataFactory.fillDefaults().indent(0, 5).grab(true, false).span(3, SWT.DEFAULT).applyTo(section);
- return section;
- }
-
- /**
- * Validate the settings of this page, not including contributions. This method should not be called directly by
- * page implementations. Always run on a UI thread.
- *
- * @return the status, or null if there are no messages.
- * @see #validatePageSettings()
- * @since 3.1
- */
- protected abstract IStatus validate();
-
- /**
- * Overriding methods should call <code>super.applyTo(repository)</code>
- *
- * @since 3.1
- */
- public void applyTo(TaskRepository repository) {
- applyContributionSettingsTo(repository);
- }
-
- private void applyContributionSettingsTo(TaskRepository repository) {
- for (AbstractTaskRepositoryPageContribution contribution : contributions) {
- contribution.applyTo(repository);
- }
- }
-
- /**
- * Returns a status if there is a message to display, otherwise null.
- */
- private IStatus computeValidation() {
- final MultiStatus cumulativeResult = new MultiStatus(TasksUiPlugin.ID_PLUGIN, IStatus.OK,
- Messages.AbstractTaskRepositoryPage_Validation_failed, null);
-
- // validate the page
- IStatus result = validate();
- if (result != null) {
- cumulativeResult.add(result);
- }
-
- // validate contributions
- for (final AbstractTaskRepositoryPageContribution contribution : contributions) {
- SafeRunnable.run(new SafeRunnable() {
- public void run() throws Exception {
- IStatus result = contribution.validate();
- if (result != null) {
- cumulativeResult.add(result);
- }
- }
-
- @Override
- public void handleException(Throwable e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
- "Problems occured when validating contribution \"{0}\"", contribution.getId()), e)); //$NON-NLS-1$
- }
- });
- }
-
- return cumulativeResult;
- }
-
- /**
- * Validate all settings in the page including contributions. This method should be called whenever a setting is
- * changed on the page.
- *
- * The results of validation are applied and the buttons of the page are updated.
- *
- * @see #validate(IProgressMonitor)
- * @see #applyValidationResult(IStatus[])
- */
- private void validatePageSettings() {
- IStatus validationStatus = computeValidation();
- applyValidationResult(validationStatus);
- getWizard().getContainer().updateButtons();
- }
-
- /**
- * Apply the results of validation to the page. The implementation finds the most {@link IStatus#getSeverity()
- * severe} status and {@link #setMessage(String, int) applies the message} to the page.
- *
- * @param status
- * the status of the validation, or null
- */
- private void applyValidationResult(IStatus status) {
- if (status == null || status.isOK()) {
- setMessage(null, IMessageProvider.INFORMATION);
- setErrorMessage(null);
- } else {
- // find the most severe status
- int messageType;
- switch (status.getSeverity()) {
- case IStatus.OK:
- case IStatus.INFO:
- messageType = IMessageProvider.INFORMATION;
- break;
- case IStatus.WARNING:
- messageType = IMessageProvider.WARNING;
- break;
- case IStatus.ERROR:
- default:
- messageType = IMessageProvider.ERROR;
- break;
- }
- setErrorMessage(null);
- setMessage(status.getMessage(), messageType);
- }
- }
-
- private List<AbstractTaskRepositoryPageContribution> findApplicableContributors() {
- List<AbstractTaskRepositoryPageContribution> contributors = new ArrayList<AbstractTaskRepositoryPageContribution>();
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
-
- IExtensionPoint editorExtensionPoint = registry.getExtensionPoint(TASK_REPOSITORY_PAGE_CONTRIBUTION_EXTENSION);
- IExtension[] editorExtensions = editorExtensionPoint.getExtensions();
- for (IExtension extension : editorExtensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- for (IConfigurationElement element : elements) {
- if (element.getName().equals(TASK_REPOSITORY_PAGE_CONTRIBUTION)) {
- String kind = element.getAttribute(KIND);
- if (kind == null || kind.length() == 0 || kind.equals(getConnectorKind())) {
- String id = element.getAttribute(ID);
- try {
- if (id == null || id.length() == 0) {
- throw new IllegalStateException(TASK_REPOSITORY_PAGE_CONTRIBUTION + "/@" + ID //$NON-NLS-1$
- + " is required"); //$NON-NLS-1$
- }
- Object contributor = element.createExecutableExtension(CLASS);
- AbstractTaskRepositoryPageContribution pageContributor = (AbstractTaskRepositoryPageContribution) contributor;
- pageContributor.setId(id);
- if (pageContributor.isEnabled()) {
- contributors.add(pageContributor);
- }
- } catch (Exception e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Could not load " //$NON-NLS-1$
- + TASK_REPOSITORY_PAGE_CONTRIBUTION + " '" + id + "' from plug-in " //$NON-NLS-1$//$NON-NLS-2$
- + element.getContributor().getName(), e));
- }
- }
- }
- }
- }
-
- return contributors;
- }
-
- private static class ContributionComparator implements Comparator<AbstractTaskRepositoryPageContribution> {
-
- public int compare(AbstractTaskRepositoryPageContribution o1, AbstractTaskRepositoryPageContribution o2) {
- if (o1 == o2) {
- return 0;
- }
- String s1 = o1.getTitle();
- String s2 = o2.getTitle();
- int i = s1.compareTo(s2);
- if (i == 0) {
- i = o1.getId().compareTo(o2.getId());
- }
- return i;
- }
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPageContribution.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPageContribution.java
deleted file mode 100644
index a6a77430d..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractTaskRepositoryPageContribution.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.wizards;
-
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A contribution to a {@link ITaskRepositoryPage}, which enables plug-ins to contribute UI to the task repository
- * settings.
- *
- * subclasses must have a default public constructor.
- *
- * @author David Green
- * @since 3.1
- */
-public abstract class AbstractTaskRepositoryPageContribution {
-
- /**
- * A listener interface that should be implemented by classes wishing to be notified of changes that occur within
- * the contribution.
- *
- * @since 3.1
- */
- public interface Listener {
-
- /**
- * Called when the state of the contribution changes such that validation should be performed
- *
- * @param contribution
- * the contribution that changed
- *
- * @see ITaskRepositoryPageContribution#validate(IProgressMonitor)
- */
- public void validationRequired(AbstractTaskRepositoryPageContribution contribution);
-
- }
-
- private final List<Listener> listeners = new CopyOnWriteArrayList<Listener>();
-
- private final String title;
-
- private final String description;
-
- private TaskRepository repository;
-
- private String connectorKind;
-
- private String id;
-
- /**
- *
- * @param title
- * the title of the contribution, as displayed to the user, usually used as a section heading
- * @param description
- * the description of the contribution, as displayed to the user, typically as a tool-tip
- * @since 3.1
- */
- protected AbstractTaskRepositoryPageContribution(String title, String description) {
- this.title = title;
- this.description = description;
- this.id = ""; //$NON-NLS-1$
- }
-
- /**
- * Initialize the contribution
- *
- * @param connectorKind
- * the kind of connector for which this is a contribution
- * @param repository
- * the repository for which this contribution was created, or null if the repository is not yet available
- * @since 3.1
- */
- public void init(String connectorKind, TaskRepository repository) {
- this.connectorKind = connectorKind;
- this.repository = repository;
- }
-
- /**
- * Add a listener to this contribution. The contribution must notify the listener at the appropriate times, for
- * example when a setting has changed in the UI.
- *
- * @see #removeListener(Listener)
- * @since 3.1
- */
- public void addListener(Listener listener) {
- listeners.add(listener);
- }
-
- /**
- * Remove a listener from this contribution.
- *
- * @see #addListener(Listener)
- * @since 3.1
- */
- public void removeListener(Listener listener) {
- listeners.remove(listener);
- }
-
- /**
- * @see IDialogPage#createControl(Composite)
- * @since 3.1
- */
- public abstract Control createControl(Composite parent);
-
- /**
- * @see IDialogPage#getTitle()
- * @since 3.1
- */
- public String getTitle() {
- return title;
- }
-
- /**
- * @see IDialogPage#getDescription()
- * @since 3.1
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * @see IWizardPage#isPageComplete()
- * @since 3.1
- */
- public abstract boolean isPageComplete();
-
- /**
- * @see IWizardPage#canFlipToNextPage()
- * @since 3.1
- */
- public abstract boolean canFlipToNextPage();
-
- /**
- * Validate the settings of the contribution. Contributions should expect this method to be called often and should
- * thus return quickly. Always called on the UI thread.
- *
- * @return the status (errors) on the contribution, or null if there are none. A MultiStatus should be used to
- * return multiple error messages or warnings.
- * @since 3.1
- */
- public abstract IStatus validate();
-
- /**
- * Apply the settings in the contribution to the given repository.
- *
- * @param repository
- * the repository to which settings should be applied
- *
- * @see ITaskRepositoryPage#applyTo(TaskRepository)
- * @since 3.1
- */
- public abstract void applyTo(TaskRepository repository);
-
- /**
- * Requests a validation.
- *
- * @see #validate()
- * @since 3.1
- */
- protected void fireValidationRequired() {
- for (Listener l : listeners) {
- l.validationRequired(this);
- }
- }
-
- /**
- * Returns the repository for which this contribution was created, or null if it was created for a new repository.
- *
- * @since 3.1
- */
- protected final TaskRepository getRepository() {
- return repository;
- }
-
- /**
- * Returns the kind of connector for which this contribution was created.
- *
- * @since 3.1
- */
- protected final String getConnectorKind() {
- return connectorKind;
- }
-
- void setId(String id) {
- Assert.isNotNull(id);
- this.id = id;
- }
-
- /**
- * Returns the id as it is declared in the contribution extension point.
- */
- public final String getId() {
- return id;
- }
-
- /**
- * Indicate if this contribution is enabled. Subclasses may override to programatically disable the contribution
- * when needed. This method is called early in the contributor's lifecycle, before any controls are created.
- *
- * the default implementation returns true.
- */
- public boolean isEnabled() {
- return true;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java
deleted file mode 100644
index 252c47a8f..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskRepositoryPage.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.wizards;
-
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- * @author Steffen Pingel
- * @since 3.0
- */
-public interface ITaskRepositoryPage extends IWizardPage {
-
- public abstract void applyTo(TaskRepository repository);
-
- public abstract String getRepositoryUrl();
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPage.java
deleted file mode 100644
index c114f8efe..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPage.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.wizards;
-
-import org.eclipse.jface.dialogs.IDialogPage;
-
-/**
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- * @author Steffen Pingel
- * @since 3.0
- */
-public interface ITaskSearchPage extends IDialogPage {
-
- public abstract void setContainer(ITaskSearchPageContainer container);
-
- public abstract boolean performSearch();
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPageContainer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPageContainer.java
deleted file mode 100644
index dd6c4e961..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/ITaskSearchPageContainer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.wizards;
-
-import org.eclipse.jface.operation.IRunnableContext;
-
-/**
- * @author Steffen Pingel
- * @since 3.0
- */
-public interface ITaskSearchPageContainer {
-
- public abstract IRunnableContext getRunnableContext();
-
- public abstract void setPerformActionEnabled(boolean enabled);
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewTaskWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewTaskWizard.java
deleted file mode 100644
index 614c7b1ca..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewTaskWizard.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Extend for customizing how new tasks editors are created.
- *
- * @author Steffen Pingel
- * @since 2.0
- */
-public class NewTaskWizard extends Wizard implements INewWizard {
-
- private final TaskRepository taskRepository;
-
- private ITaskMapping taskSelection;
-
- /**
- * @since 3.0
- */
- public NewTaskWizard(TaskRepository taskRepository, ITaskMapping taskSelection) {
- Assert.isNotNull(taskRepository);
- this.taskRepository = taskRepository;
- this.taskSelection = taskSelection;
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- setNeedsProgressMonitor(true);
- }
-
- @Deprecated
- public NewTaskWizard(TaskRepository taskRepository) {
- this.taskRepository = taskRepository;
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
-
- @Override
- public void addPages() {
- }
-
- /**
- * @since 3.0
- */
- protected ITaskMapping getInitializationData() {
- return null;
- }
-
- /**
- * @since 3.0
- */
- public TaskRepository getTaskRepository() {
- return taskRepository;
- }
-
- /**
- * @since 3.0
- */
- public ITaskMapping getTaskSelection() {
- return taskSelection;
- }
-
- @Override
- public boolean performFinish() {
- final TaskData[] taskData = new TaskData[1];
- final ITaskMapping initializationData = getInitializationData();
- final ITaskMapping selectionData = getTaskSelection();
- try {
- IRunnableWithProgress runnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- taskData[0] = TasksUiInternal.createTaskData(taskRepository, initializationData, selectionData,
- monitor);
- } catch (OperationCanceledException e) {
- throw new InterruptedException();
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- }
- }
- };
- if (getContainer().getShell().isVisible()) {
- getContainer().run(true, true, runnable);
- } else {
- PlatformUI.getWorkbench().getProgressService().busyCursorWhile(runnable);
- }
- } catch (InvocationTargetException e) {
- if (e.getCause() instanceof CoreException) {
- TasksUiInternal.displayStatus(Messages.NewTaskWizard_Error_creating_new_task,
- ((CoreException) e.getCause()).getStatus());
- } else {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- Messages.NewTaskWizard_Error_creating_new_task, e.getCause()));
- }
- return false;
- } catch (InterruptedException e) {
- return false;
- }
-
- try {
- TasksUiInternal.createAndOpenNewTask(taskData[0]);
- return true;
- } catch (CoreException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Failed to open new task", e)); //$NON-NLS-1$
- TasksUiInternal.displayStatus(Messages.NewTaskWizard_Create_Task, new Status(IStatus.ERROR,
- TasksUiPlugin.ID_PLUGIN, Messages.NewTaskWizard_Failed_to_create_new_task_ + e.getMessage()));
- return false;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java
deleted file mode 100644
index e413e3fa5..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Eugene Kuleshov 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:
- * Eugene Kuleshov - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.wizards;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.NewWebTaskPage;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * Wizard for creating new tickets through a web browser.
- *
- * @author Eugene Kuleshov
- * @author Mik Kersten
- * @author Steffen Pingel
- * @since 2.0
- */
-public class NewWebTaskWizard extends Wizard implements INewWizard {
-
- protected TaskRepository taskRepository;
-
- protected String newTaskUrl;
-
- private final ITaskMapping taskSelection;
-
- /**
- * @since 3.0
- */
- public NewWebTaskWizard(TaskRepository taskRepository, String newTaskUrl, ITaskMapping taskSelection) {
- this.taskRepository = taskRepository;
- this.newTaskUrl = newTaskUrl;
- this.taskSelection = taskSelection;
-
- setWindowTitle(Messages.NewWebTaskWizard_New_Task);
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- }
-
- public void init(IWorkbench workbench, IStructuredSelection selection) {
- }
-
- @Override
- public void addPages() {
- addPage(new NewWebTaskPage(taskSelection));
- }
-
- @Override
- public boolean canFinish() {
- return true;
- }
-
- @Override
- public boolean performFinish() {
- handleSelection(taskSelection);
- TasksUiUtil.openUrl(newTaskUrl);
- return true;
- }
-
- private void handleSelection(final ITaskMapping taskSelection) {
- if (taskSelection == null) {
- return;
- }
-
- String summary = taskSelection.getSummary();
- String description = taskSelection.getDescription();
-
- Clipboard clipboard = new Clipboard(getShell().getDisplay());
- clipboard.setContents(new Object[] { summary + "\n" + description }, //$NON-NLS-1$
- new Transfer[] { TextTransfer.getInstance() });
-
- MessageDialog.openInformation(getShell(), Messages.NewWebTaskWizard_New_Task,
- Messages.NewWebTaskWizard_This_connector_does_not_provide_a_rich_task_editor_for_creating_tasks);
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/RepositoryQueryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/RepositoryQueryWizard.java
deleted file mode 100644
index a3e08b0ea..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/RepositoryQueryWizard.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.tasks.ui.wizards;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-
-/**
- * Extend to provide a custom edit query dialog, typically invoked by the user requesting properties on a query node in
- * the Task List.
- *
- * @author Mik Kersten
- * @author Steffen Pingel
- * @since 3.0
- */
-public class RepositoryQueryWizard extends Wizard {
-
- private final TaskRepository repository;
-
- /**
- * @since 3.0
- */
- public RepositoryQueryWizard(TaskRepository repository) {
- Assert.isNotNull(repository);
- this.repository = repository;
- setNeedsProgressMonitor(true);
- setWindowTitle(Messages.RepositoryQueryWizard_Edit_Repository_Query);
- setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY);
- }
-
- @Override
- public boolean canFinish() {
- IWizardPage currentPage = getContainer().getCurrentPage();
- if (currentPage instanceof AbstractRepositoryQueryPage) {
- return currentPage.isPageComplete();
- }
- return false;
- }
-
- @Override
- public boolean performFinish() {
- IWizardPage currentPage = getContainer().getCurrentPage();
- if (!(currentPage instanceof AbstractRepositoryQueryPage)) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN,
- "Current wizard page does not extends AbstractRepositoryQueryPage")); //$NON-NLS-1$
- return false;
- }
-
- AbstractRepositoryQueryPage page = (AbstractRepositoryQueryPage) currentPage;
- IRepositoryQuery query = page.getQuery();
- if (query != null) {
- page.applyTo(query);
- if (query instanceof RepositoryQuery) {
- TasksUiPlugin.getTaskList().notifyElementChanged((RepositoryQuery) query);
- }
- } else {
- query = page.createQuery();
- TasksUiInternal.getTaskList().addQuery((RepositoryQuery) query);
- }
- AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- getTaskRepository().getConnectorKind());
- TasksUiInternal.synchronizeQuery(connector, (RepositoryQuery) query, null, true);
- return true;
- }
-
- public TaskRepository getTaskRepository() {
- return repository;
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskAttachmentPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskAttachmentPage.java
deleted file mode 100644
index ee00f6129..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskAttachmentPage.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jeff Pound 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:
- * Jeff Pound - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.wizards;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentModel;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A wizard page to enter details of a new attachment.
- *
- * @author Jeff Pound
- * @author Mik Kersten
- * @author Steffen Pingel
- * @since 3.0
- */
-public class TaskAttachmentPage extends WizardPage {
-
- private static List<String> contentTypes;
-
- static {
- contentTypes = new LinkedList<String>();
- contentTypes.add("text/plain"); //$NON-NLS-1$
- contentTypes.add("text/html"); //$NON-NLS-1$
- contentTypes.add("application/xml"); //$NON-NLS-1$
- contentTypes.add("image/gif"); //$NON-NLS-1$
- contentTypes.add("image/jpeg"); //$NON-NLS-1$
- contentTypes.add("image/png"); //$NON-NLS-1$
- contentTypes.add(FileTaskAttachmentSource.APPLICATION_OCTET_STREAM);
- }
-
- private Button attachContextButton;
-
- private Text commentText;
-
- private Text descriptionText;
-
- private Combo contentTypeList;
-
- private Text fileNameText;
-
- private Button isPatchButton;
-
- private final TaskAttachmentModel model;
-
- private boolean needsDescription;
-
- private final TaskAttachmentMapper taskAttachment;
-
- private boolean first = true;
-
- public TaskAttachmentPage(TaskAttachmentModel model) {
- super("AttachmentDetails"); //$NON-NLS-1$
- this.model = model;
- this.taskAttachment = TaskAttachmentMapper.createFrom(model.getAttribute());
- setTitle(Messages.TaskAttachmentPage_Attachment_Details);
- setNeedsDescription(true);
- }
-
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 3;
- composite.setLayout(gridLayout);
- setControl(composite);
-
- composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- composite.setLayout(new GridLayout(3, false));
-
- new Label(composite, SWT.NONE).setText(Messages.TaskAttachmentPage_File);
- fileNameText = new Text(composite, SWT.BORDER);
- fileNameText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
-
- if (needsDescription) {
- new Label(composite, SWT.NONE).setText(Messages.TaskAttachmentPage_Description);
- descriptionText = new Text(composite, SWT.BORDER);
- descriptionText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
- descriptionText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- taskAttachment.setDescription(descriptionText.getText().trim());
- validate();
- }
-
- });
- }
-
- Label label = new Label(composite, SWT.NONE);
- label.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false));
- label.setText(Messages.TaskAttachmentPage_Comment);
- commentText = new Text(composite, SWT.V_SCROLL | SWT.BORDER | SWT.WRAP);
- commentText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
- commentText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- apply();
- }
-
- });
-
- new Label(composite, SWT.NONE).setText(Messages.TaskAttachmentPage_Content_Type);// .setBackground(parent.getBackground());
-
- contentTypeList = new Combo(composite, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
- contentTypeList.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 2, 1));
- Iterator<String> iter = contentTypes.iterator();
- int i = 0;
- int selection = 0;
- while (iter.hasNext()) {
- String next = iter.next();
- contentTypeList.add(next);
- if (next.equalsIgnoreCase(model.getContentType())) {
- selection = i;
- }
- i++;
- }
-
- /* Update attachment on select content type */
- contentTypeList.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
-
- public void widgetSelected(SelectionEvent e) {
- taskAttachment.setContentType(contentTypeList.getItem(contentTypeList.getSelectionIndex()));
- validate();
- }
- });
- contentTypeList.select(selection);
- taskAttachment.setContentType(contentTypeList.getItem(selection));
-
- // TODO: is there a better way to pad?
- new Label(composite, SWT.NONE);
-
- isPatchButton = new Button(composite, SWT.CHECK);
- isPatchButton.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 2, 1));
- isPatchButton.setText(Messages.TaskAttachmentPage_Patch);
-
- // TODO: is there a better way to pad?
- new Label(composite, SWT.NONE);
-
- attachContextButton = new Button(composite, SWT.CHECK);
- attachContextButton.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 2, 1));
- attachContextButton.setText(Messages.TaskAttachmentPage_ATTACHE_CONTEXT);
- attachContextButton.setImage(CommonImages.getImage(TasksUiImages.CONTEXT_ATTACH));
- attachContextButton.setEnabled(ContextCore.getContextManager()
- .hasContext(model.getTask().getHandleIdentifier()));
-
- /*
- * Attachment file name listener, update the local attachment
- * accordingly
- */
- fileNameText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- // determine type by extension
- taskAttachment.setFileName(fileNameText.getText());
- setContentTypeFromFilename(fileNameText.getText());
- validate();
- }
- });
-
- /* Listener for isPatch */
- isPatchButton.addSelectionListener(new SelectionAdapter() {
- private int lastSelected;
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- taskAttachment.setPatch(isPatchButton.getSelection());
- if (isPatchButton.getSelection()) {
- lastSelected = contentTypeList.getSelectionIndex();
- contentTypeList.select(0);
- contentTypeList.setEnabled(false);
- if (attachContextButton.isEnabled()) {
- attachContextButton.setSelection(true);
- }
- } else {
- contentTypeList.setEnabled(true);
- contentTypeList.select(lastSelected);
- }
- validate();
- }
- });
- attachContextButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- validate();
- }
- });
-
- validate();
- setErrorMessage(null);
-
- if (descriptionText != null) {
- descriptionText.setFocus();
- } else {
- commentText.setFocus();
- }
-
- Dialog.applyDialogFont(composite);
- }
-
- private void validate() {
- apply();
- if (fileNameText != null && "".equals(fileNameText.getText().trim())) { //$NON-NLS-1$
- setMessage(Messages.TaskAttachmentPage_Enter_a_file_name);
- setPageComplete(false);
- } else if (descriptionText != null && "".equals(descriptionText.getText().trim())) { //$NON-NLS-1$
- setMessage(Messages.TaskAttachmentPage_Enter_a_description);
- setPageComplete(false);
- } else {
- setMessage(Messages.TaskAttachmentPage_Verify_the_content_type_of_the_attachment);
- setPageComplete(true);
- }
- }
-
- public TaskAttachmentModel getModel() {
- return model;
- }
-
- private void apply() {
- taskAttachment.applyTo(model.getAttribute());
- model.setComment(commentText.getText());
- model.setAttachContext(attachContextButton.getSelection());
- model.setContentType(taskAttachment.getContentType());
- }
-
- private void setContentType(String contentType) {
- String[] typeList = contentTypeList.getItems();
- for (int i = 0; i < typeList.length; i++) {
- if (typeList[i].equals(contentType)) {
- contentTypeList.select(i);
- taskAttachment.setContentType(contentType);
- validate();
- break;
- }
- }
- }
-
- private void setContentTypeFromFilename(String fileName) {
- setContentType(FileTaskAttachmentSource.getContentTypeFromFilename(fileName));
- }
-
- private void setFilePath(String path) {
- fileNameText.setText(path);
- taskAttachment.setFileName(path);
- if (path.endsWith(".patch")) { //$NON-NLS-1$
- isPatchButton.setSelection(true);
- taskAttachment.setPatch(true);
- if (attachContextButton.isEnabled()) {
- attachContextButton.setSelection(true);
- }
- }
- validate();
- }
-
- public void setNeedsDescription(boolean supportsDescription) {
- this.needsDescription = supportsDescription;
- }
-
- public boolean supportsDescription() {
- return needsDescription;
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (visible) {
- fileNameText.setText(taskAttachment.getFileName() == null ? "" : taskAttachment.getFileName()); //$NON-NLS-1$
- if (fileNameText.getText().length() == 0) {
- setFilePath(getModel().getSource().getName());
- setContentType(getModel().getSource().getContentType());
- }
- }
- super.setVisible(visible);
- if (first) {
- if (descriptionText != null) {
- descriptionText.setFocus();
- } else {
- commentText.setFocus();
- }
- first = false;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskRepositoryWizardDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskRepositoryWizardDialog.java
deleted file mode 100644
index 41ba0a715..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/TaskRepositoryWizardDialog.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Helen Bershadskaya 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:
- * Helen Bershadskaya - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.tasks.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.Messages;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Wizard dialog for displaying repository settings page. Necessary so we can add a validate button in the button bar.
- *
- * @author Helen Bershadskaya
- * @since 3.1
- */
-public class TaskRepositoryWizardDialog extends WizardDialog {
-
- private static final String VALIDATE_BUTTON_KEY = "validate"; //$NON-NLS-1$
-
- private Button validateServerButton;
-
- private static final int VALIDATE_BUTTON_ID = 2000;
-
- /**
- * @see WizardDialog#WizardDialog(Shell, IWizard)
- * @since 3.1
- */
- public TaskRepositoryWizardDialog(Shell parentShell, IWizard newWizard) {
- super(parentShell, newWizard);
- }
-
- /**
- * Overridden so we can add a validate button to the wizard button bar, if a repository settings page requires it.
- * Validate button is added left justified at button bar bottom (next to help image).
- *
- * @since 3.1
- */
- @Override
- protected Control createButtonBar(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 0; // create
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // create help control if needed
- if (isHelpAvailable()) {
- createHelpControl(composite);
- }
-
- validateServerButton = createButton(composite, VALIDATE_BUTTON_ID,
- Messages.AbstractRepositorySettingsPage_Validate_Settings, false);
- validateServerButton.setImage(CommonImages.getImage(TasksUiImages.REPOSITORY_VALIDATE));
- validateServerButton.setVisible(false);
- setButtonLayoutData(validateServerButton);
- Label filler = new Label(composite, SWT.NONE);
- filler.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
- ((GridLayout) composite.getLayout()).numColumns++;
-
- super.createButtonsForButtonBar(composite);
-
- return composite;
- }
-
- @Override
- public void updateButtons() {
- if (getCurrentPage() instanceof AbstractRepositorySettingsPage
- && ((AbstractRepositorySettingsPage) getCurrentPage()).needsValidation()) {
-
- if (!validateServerButton.isVisible()) {
- validateServerButton.setVisible(true);
- }
- } else {
- if (validateServerButton != null && validateServerButton.isVisible()) {
- validateServerButton.setVisible(false);
- }
- }
- super.updateButtons();
- }
-
- /**
- * Overridden so we can react to the validate button being pressed. This could have been done with a straight
- * selection listener in the creation method above, but this is more consistent with how the other buttons work in
- * the wizard dialog.
- *
- * @since 3.1
- */
- @Override
- protected void buttonPressed(int buttonId) {
- if (buttonId == VALIDATE_BUTTON_ID) {
- if (getCurrentPage() instanceof AbstractRepositorySettingsPage) {
- ((AbstractRepositorySettingsPage) getCurrentPage()).validateSettings();
- }
- } else {
- super.buttonPressed(buttonId);
- }
- }
-
- /**
- * Overridden to be able to set proper state for our validate button
- */
- @Override
- public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException,
- InterruptedException {
-
- HashMap<String, Boolean> savedEnabledState = null;
- try {
- savedEnabledState = saveAndSetEnabledStateMylyn();
- super.run(fork, cancelable, runnable);
- } finally {
- if (savedEnabledState != null) {
- restoreEnabledStateMylyn(savedEnabledState);
- }
- }
- }
-
- /**
- * Modeled after super.saveAndSetEnabledState(), but that one is private, so create our own
- */
- private HashMap<String, Boolean> saveAndSetEnabledStateMylyn() {
- HashMap<String, Boolean> savedEnabledState = null;
- if (getShell() != null) {
- savedEnabledState = new HashMap<String, Boolean>();
- if (validateServerButton != null && getShell().getDisplay().getFocusControl() == validateServerButton
- && validateServerButton.getShell() == getShell()) {
- savedEnabledState.put(VALIDATE_BUTTON_KEY, validateServerButton.getEnabled());
- validateServerButton.setEnabled(false);
- }
- }
- return savedEnabledState;
- }
-
- /**
- * Modeled after super.restoreEnabledState() and super.restoreUIState() -- couldn't override those since they are
- * private, so create our own. Currently only single button to work with, so don't create two separate methods
- */
- private void restoreEnabledStateMylyn(HashMap<String, Boolean> savedEnabledState) {
- if (savedEnabledState != null) {
- Boolean savedValidateEnabledState = savedEnabledState.get(VALIDATE_BUTTON_KEY);
- if (validateServerButton != null && savedValidateEnabledState != null) {
- validateServerButton.setEnabled(savedValidateEnabledState);
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.test-feature/.project b/org.eclipse.mylyn.test-feature/.project
deleted file mode 100644
index aceb4b4da..000000000
--- a/org.eclipse.mylyn.test-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.test-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7e11aca8e..000000000
--- a/org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,260 +0,0 @@
-#Tue May 12 20:42:44 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.test-feature/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.test-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.test-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index aebf29b64..000000000
--- a/org.eclipse.mylyn.test-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Mar 03 23:56:47 PST 2008
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.test-feature/about.html b/org.eclipse.mylyn.test-feature/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.test-feature/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.test-feature/build.properties b/org.eclipse.mylyn.test-feature/build.properties
deleted file mode 100644
index adf04e61f..000000000
--- a/org.eclipse.mylyn.test-feature/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
- about.html,\
- epl-v10.html,\
- license.html
-src.includes = about.html
diff --git a/org.eclipse.mylyn.test-feature/epl-v10.html b/org.eclipse.mylyn.test-feature/epl-v10.html
deleted file mode 100644
index ed4b19665..000000000
--- a/org.eclipse.mylyn.test-feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
- <o:Revision>2</o:Revision>
- <o:TotalTime>3</o:TotalTime>
- <o:Created>2004-03-05T23:03:00Z</o:Created>
- <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
- <o:Pages>4</o:Pages>
- <o:Words>1626</o:Words>
- <o:Characters>9270</o:Characters>
- <o:Lines>77</o:Lines>
- <o:Paragraphs>18</o:Paragraphs>
- <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
- <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
- {font-family:Tahoma;
- panose-1:2 11 6 4 3 5 4 4 2 4;
- mso-font-charset:0;
- mso-generic-font-family:swiss;
- mso-font-pitch:variable;
- mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p
- {margin-right:0in;
- mso-margin-top-alt:auto;
- mso-margin-bottom-alt:auto;
- margin-left:0in;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
- {mso-style-name:"Balloon Text";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:8.0pt;
- font-family:Tahoma;
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.test-feature/feature.xml b/org.eclipse.mylyn.test-feature/feature.xml
deleted file mode 100644
index 2765850a8..000000000
--- a/org.eclipse.mylyn.test-feature/feature.xml
+++ /dev/null
@@ -1,272 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.mylyn.test_feature"
- label="Mylyn Test Feature"
- version="3.2.0.qualifier"
- plugin="org.eclipse.mylyn">
-
- <description url="http://eclipse.org/mylyn">
- Provides tests for the Mylyn project.
- </description>
-
- <copyright>
- Copyright (c) 2004, 2008 Tasktop Technologies and others. All rights reserved.
- </copyright>
-
- <license url="license.html">
- Eclipse Foundation Software User Agreement
-
-March 17, 2005
-Usage Of Content
-
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.
-Applicable Licenses
-
-Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, &quot;Program&quot; will mean the Content.
-
-Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).
-
- * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).
- * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Javaâ„¢ ARchive) in a directory named &quot;plugins&quot;.
- * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.
- * Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.
-
-The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:
-
- * The top-level (root) directory
- * Plug-in and Fragment directories
- * Inside Plug-ins and Fragments packaged as JARs
- * Sub-directories of the directory named &quot;src&quot; of certain Plug-ins
- * Feature directories
-
-Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.
-
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
-
- * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)
- * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)
- * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)
- * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)
- * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)
- * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)
-
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.
-Cryptography
-
-Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
-
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
- </license>
-
- <requires>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.junit"/>
- <import plugin="org.eclipse.jface.text"/>
- <import plugin="org.eclipse.ui.ide"/>
- <import plugin="org.eclipse.ui.views"/>
- <import plugin="org.eclipse.ui.editors"/>
- <import plugin="org.eclipse.ui.workbench.texteditor"/>
- <import plugin="org.eclipse.mylyn.bugzilla.core"/>
- <import plugin="org.eclipse.mylyn.bugzilla.ui"/>
- <import plugin="org.eclipse.mylyn.tasks.ui"/>
- <import plugin="org.eclipse.mylyn.context.core"/>
- <import plugin="org.eclipse.mylyn.tasks.core"/>
- <import plugin="org.eclipse.ui.forms"/>
- <import plugin="org.eclipse.mylyn"/>
- <import plugin="org.eclipse.search"/>
- <import plugin="org.eclipse.mylyn.commons.net"/>
- <import plugin="org.eclipse.mylyn.bugzilla.ide"/>
- <import plugin="org.eclipse.mylyn.commons.ui"/>
- <import plugin="org.eclipse.mylyn.commons.core"/>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.jdt.core"/>
- <import plugin="org.eclipse.pde"/>
- <import plugin="org.eclipse.pde.core"/>
- <import plugin="org.eclipse.mylyn.monitor.ui"/>
- <import plugin="org.eclipse.mylyn.monitor.core"/>
- <import plugin="org.eclipse.ui.workbench"/>
- <import plugin="org.eclipse.mylyn.team.ui"/>
- <import plugin="org.eclipse.mylyn.resources.ui"/>
- <import plugin="org.eclipse.jdt.ui"/>
- <import plugin="org.eclipse.jface"/>
- <import plugin="org.eclipse.mylyn.java.ui"/>
- <import plugin="org.eclipse.mylyn.ide.ui"/>
- <import plugin="org.eclipse.mylyn.context.ui"/>
- <import plugin="org.eclipse.jdt.launching"/>
- <import plugin="org.eclipse.mylyn.pde.ui"/>
- <import plugin="org.eclipse.mylyn.jira.core"/>
- <import plugin="org.eclipse.mylyn.jira.ui"/>
- <import plugin="org.eclipse.mylyn.monitor.usage"/>
- <import plugin="org.eclipse.jdt"/>
- <import plugin="org.eclipse.ui.browser"/>
- <import plugin="org.eclipse.mylyn.sandbox.ui"/>
- <import plugin="org.eclipse.core.net"/>
- <import plugin="org.eclipse.mylyn.web.tasks"/>
- <import plugin="org.eclipse.mylyn.tasks.bugs"/>
- <import plugin="org.eclipse.mylyn.team.cvs"/>
- <import plugin="org.eclipse.team.core"/>
- <import plugin="org.eclipse.team.cvs.ui"/>
- <import plugin="org.eclipse.team.cvs.core"/>
- <import plugin="org.apache.xmlrpc" version="3.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.mylyn.trac.ui"/>
- <import plugin="org.eclipse.mylyn.trac.core"/>
- <import plugin="org.eclipse.mylyn.xplanner.core"/>
- <import plugin="org.eclipse.mylyn.xplanner.ui"/>
- <import plugin="org.eclipse.mylyn.context.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.monitor.usage" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.context.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.tasks.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.monitor.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.monitor.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.ui.navigator"/>
- <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.compare"/>
- <import plugin="org.eclipse.team.ui"/>
- <import plugin="org.junit" version="3.8.2" match="greaterOrEqual"/>
- <import plugin="org.eclipse.mylyn.wikitext.core" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.textile.core" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.confluence.core" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.confluence.ui" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.mediawiki.core" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.mediawiki.ui" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.textile.ui" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.tracwiki.core" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.wikitext.ui" version="0.9.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.tasks.ui" version="3.0.2" match="compatible"/>
- <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.2" match="compatible"/>
- <import plugin="org.eclipse.core.expressions"/>
- <import plugin="org.eclipse.help"/>
- </requires>
-
- <plugin
- id="org.eclipse.mylyn.bugzilla.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.context.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.ide.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.java.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.jira.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.monitor.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.resources.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.sandbox.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.tasks.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.team.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.trac.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.xplanner.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.monitor.reports"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.web.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.wikitext.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.test.performance"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.commons.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.test.performance.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.mylyn.ide.capabilities"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.discovery.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
-</feature>
diff --git a/org.eclipse.mylyn.test-feature/license.html b/org.eclipse.mylyn.test-feature/license.html
deleted file mode 100644
index 15a10cfd3..000000000
--- a/org.eclipse.mylyn.test-feature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
- CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
- OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
- NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
- CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
- (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
- modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
- <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.trac-feature/.project b/org.eclipse.mylyn.trac-feature/.project
deleted file mode 100644
index e5f4bfbf8..000000000
--- a/org.eclipse.mylyn.trac-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.trac-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f1554b100..000000000
--- a/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:43 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index 47ada1798..000000000
--- a/org.eclipse.mylyn.trac-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Dec 20 14:12:59 PST 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.trac-feature/about.html b/org.eclipse.mylyn.trac-feature/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.trac-feature/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac-feature/build.properties b/org.eclipse.mylyn.trac-feature/build.properties
deleted file mode 100644
index 87834ea61..000000000
--- a/org.eclipse.mylyn.trac-feature/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = feature.properties,\
- feature.xml,\
- about.html,\
- epl-v10.html,\
- license.html
-src.includes = about.html
diff --git a/org.eclipse.mylyn.trac-feature/epl-v10.html b/org.eclipse.mylyn.trac-feature/epl-v10.html
deleted file mode 100644
index ed4b19665..000000000
--- a/org.eclipse.mylyn.trac-feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
- <o:Revision>2</o:Revision>
- <o:TotalTime>3</o:TotalTime>
- <o:Created>2004-03-05T23:03:00Z</o:Created>
- <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
- <o:Pages>4</o:Pages>
- <o:Words>1626</o:Words>
- <o:Characters>9270</o:Characters>
- <o:Lines>77</o:Lines>
- <o:Paragraphs>18</o:Paragraphs>
- <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
- <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
- {font-family:Tahoma;
- panose-1:2 11 6 4 3 5 4 4 2 4;
- mso-font-charset:0;
- mso-generic-font-family:swiss;
- mso-font-pitch:variable;
- mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p
- {margin-right:0in;
- mso-margin-top-alt:auto;
- mso-margin-bottom-alt:auto;
- margin-left:0in;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
- {mso-style-name:"Balloon Text";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:8.0pt;
- font-family:Tahoma;
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac-feature/feature.properties b/org.eclipse.mylyn.trac-feature/feature.properties
deleted file mode 100644
index 7da672393..000000000
--- a/org.eclipse.mylyn.trac-feature/feature.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-featureName=Mylyn Connector: Trac
-description=Provides Task List integration, offline support and rich editing for the open source Trac issue tracker.
-providerName=Eclipse Mylyn
-copyright=Copyright (c) 2004, 2008 Tasktop Technologies and others. All rights reserved.
-updateSiteName=Mylyn Extras for Eclipse 3.3 and 3.4
-license=\
-Eclipse Foundation Software User Agreement\n\
-\n\
-March 17, 2005\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository ("Repository") in CVS modules ("Modules") and made available as downloadable archives ("Downloads").\n\
-\n\
- * Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").\n\
- * Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java\u2122 ARchive) in a directory named "plugins".\n\
- * A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- * Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module including, but not limited to the following locations:\n\
-\n\
- * The top-level (root) directory\n\
- * Plug-in and Fragment directories\n\
- * Inside Plug-ins and Fragments packaged as JARs\n\
- * Sub-directories of the directory named "src" of certain Plug-ins\n\
- * Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") during the installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- * Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- * Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- * Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- * IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- * Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- * Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check the country&apos;s laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
diff --git a/org.eclipse.mylyn.trac-feature/feature.xml b/org.eclipse.mylyn.trac-feature/feature.xml
deleted file mode 100644
index 24fcb9e3d..000000000
--- a/org.eclipse.mylyn.trac-feature/feature.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.mylyn.trac_feature"
- label="%featureName"
- version="3.2.0.qualifier"
- provider-name="%providerName"
- plugin="org.eclipse.mylyn">
-
- <description url="http://trac.edgewall.org">
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="license.html">
- %license
- </license>
-
- <url>
- <update label="%updateSiteName" url="http://download.eclipse.org/tools/mylyn/update/extras"/>
- </url>
-
- <requires>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.jface.text"/>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.ui.forms"/>
- <import plugin="org.eclipse.mylyn.commons.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.tasks.core" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.tasks.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.net" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.commons.ui" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.mylyn.context.core" version="3.0.0" match="compatible"/>
- <import plugin="org.apache.xmlrpc" version="3.0.0" match="compatible"/>
- <import plugin="org.eclipse.osgi"/>
- <import plugin="org.apache.commons.httpclient"/>
- <import feature="org.eclipse.mylyn_feature" version="3.1.0.I20081013-2100" match="compatible"/>
- </requires>
-
- <plugin
- id="org.eclipse.mylyn.trac.ui"
- download-size="0"
- install-size="0"
- version="3.2.0.qualifier"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.trac.core"
- download-size="0"
- install-size="0"
- version="3.2.0.qualifier"
- unpack="false"/>
-
- <plugin
- id="org.apache.xmlrpc"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.ws.commons.util"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="javax.xml.bind"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.mylyn.trac-feature/license.html b/org.eclipse.mylyn.trac-feature/license.html
deleted file mode 100644
index 15a10cfd3..000000000
--- a/org.eclipse.mylyn.trac-feature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
- CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
- OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
- NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
- CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
- (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
- modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
- <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.trac.core/.classpath b/org.eclipse.mylyn.trac.core/.classpath
deleted file mode 100644
index 304e86186..000000000
--- a/org.eclipse.mylyn.trac.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.trac.core/.cvsignore b/org.eclipse.mylyn.trac.core/.cvsignore
deleted file mode 100644
index c5e82d745..000000000
--- a/org.eclipse.mylyn.trac.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.core/.project b/org.eclipse.mylyn.trac.core/.project
deleted file mode 100644
index 831876dac..000000000
--- a/org.eclipse.mylyn.trac.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.trac.core</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1314ffa2f..000000000
--- a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:46 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.trac.core/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.trac.core/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26af..000000000
--- a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.trac.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.trac.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 7f22096c5..000000000
--- a/org.eclipse.mylyn.trac.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.trac.core;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.apache.xmlrpc;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.mylyn.internal.trac.core;x-friends:="org.eclipse.mylyn.trac.ui",
- org.eclipse.mylyn.internal.trac.core.client;x-friends:="org.eclipse.mylyn.trac.ui",
- org.eclipse.mylyn.internal.trac.core.model;x-friends:="org.eclipse.mylyn.trac.ui",
- org.eclipse.mylyn.internal.trac.core.util;x-friends:="org.eclipse.mylyn.trac.ui"
-Bundle-Activator: org.eclipse.mylyn.internal.trac.core.TracCorePlugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.trac.core/about.html b/org.eclipse.mylyn.trac.core/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.trac.core/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.core/build.properties b/org.eclipse.mylyn.trac.core/build.properties
deleted file mode 100644
index 96bc39e03..000000000
--- a/org.eclipse.mylyn.trac.core/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2008 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
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html,\
- plugin.properties
-src.includes = about.html
diff --git a/org.eclipse.mylyn.trac.core/plugin.properties b/org.eclipse.mylyn.trac.core/plugin.properties
deleted file mode 100644
index 8cbb12db3..000000000
--- a/org.eclipse.mylyn.trac.core/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Properties file for org.eclipse.mylyn.trac.core
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Trac Connector Core
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/Messages.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/Messages.java
deleted file mode 100644
index b1269dce0..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/Messages.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.core;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.trac.core.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TracAttachmentHandler_Uploading_attachment;
-
- public static String TracAttribute_Assigned_to;
-
- public static String TracAttribute_CC;
-
- public static String TracAttribute_Component;
-
- public static String TracAttribute_Created;
-
- public static String TracAttribute_Description;
-
- public static String TracAttribute_ID;
-
- public static String TracAttribute_Keywords;
-
- public static String TracAttribute_Last_Modification;
-
- public static String TracAttribute_Milestone;
-
- public static String TracAttribute_Priority;
-
- public static String TracAttribute_Reporter;
-
- public static String TracAttribute_Resolution;
-
- public static String TracAttribute_Severity;
-
- public static String TracAttribute_Status;
-
- public static String TracAttribute_Summary;
-
- public static String TracAttribute_Type;
-
- public static String TracAttribute_Version;
-
- public static String TracCorePlugin_I_O_error_has_occured;
-
- public static String TracCorePlugin_Repository_URL_is_invalid;
-
- public static String TracCorePlugin_the_SERVER_RETURNED_an_UNEXPECTED_RESOPNSE;
-
- public static String TracCorePlugin_Unexpected_error;
-
- public static String TracCorePlugin_Unexpected_server_response_;
-
- public static String TracRepositoryConnector_Getting_changed_tasks;
-
- public static String TracRepositoryConnector_Querying_repository;
-
- public static String TracRepositoryConnector_TRAC_SUPPORTS_0_9_OR_0_10_THROUGH_WEB_AND_XML_RPC;
-
- public static String TracWikiHandler_Download_Wiki_Page;
-
- public static String TracWikiHandler_Download_Wiki_Page_Names;
-
- public static String TracWikiHandler_Retrieve_Wiki_Page_History;
-
- public static String TracWikiHandler_Upload_Wiki_Page;
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java
deleted file mode 100644
index 7e032f358..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Steffen Pingel
- */
-public class TracAttachmentHandler extends AbstractTaskAttachmentHandler {
-
- private final TracRepositoryConnector connector;
-
- public TracAttachmentHandler(TracRepositoryConnector connector) {
- this.connector = connector;
- }
-
- @Override
- public InputStream getContent(TaskRepository repository, ITask task, TaskAttribute attachmentAttribute,
- IProgressMonitor monitor) throws CoreException {
- TaskAttachmentMapper mapper = TaskAttachmentMapper.createFrom(attachmentAttribute);
- String filename = mapper.getFileName();
- if (filename == null || filename.length() == 0) {
- throw new CoreException(new RepositoryStatus(repository.getRepositoryUrl(), IStatus.ERROR,
- TracCorePlugin.ID_PLUGIN, RepositoryStatus.ERROR_REPOSITORY, "Attachment download from " //$NON-NLS-1$
- + repository.getRepositoryUrl() + " failed, missing attachment filename.")); //$NON-NLS-1$
- }
-
- try {
- ITracClient client = connector.getClientManager().getTracClient(repository);
- int id = Integer.parseInt(task.getTaskId());
- return client.getAttachmentData(id, filename, monitor);
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- }
-
- @Override
- public void postContent(TaskRepository repository, ITask task, AbstractTaskAttachmentSource source, String comment,
- TaskAttribute attachmentAttribute, IProgressMonitor monitor) throws CoreException {
- if (!TracRepositoryConnector.hasAttachmentSupport(repository, task)) {
- throw new CoreException(new RepositoryStatus(repository.getRepositoryUrl(), IStatus.INFO,
- TracCorePlugin.ID_PLUGIN, RepositoryStatus.ERROR_REPOSITORY,
- "Attachments are not supported by this repository access type")); //$NON-NLS-1$
- }
-
- String filename = source.getName();
- String description = source.getDescription();
- if (attachmentAttribute != null) {
- TaskAttachmentMapper mapper = TaskAttachmentMapper.createFrom(attachmentAttribute);
- if (mapper.getFileName() != null) {
- filename = mapper.getFileName();
- }
- if (mapper.getDescription() != null) {
- description = mapper.getDescription();
- }
- }
- if (description == null) {
- description = ""; //$NON-NLS-1$
- }
-
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Messages.TracAttachmentHandler_Uploading_attachment, IProgressMonitor.UNKNOWN);
- try {
- ITracClient client = connector.getClientManager().getTracClient(repository);
- int id = Integer.parseInt(task.getTaskId());
- client.putAttachmentData(id, filename, description, source.createInputStream(monitor), monitor);
- if (comment != null && comment.length() > 0) {
- TracTicket ticket = new TracTicket(id);
- client.updateTicket(ticket, comment, monitor);
- }
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public boolean canGetContent(TaskRepository repository, ITask task) {
- return TracRepositoryConnector.hasAttachmentSupport(repository, task);
- }
-
- @Override
- public boolean canPostContent(TaskRepository repository, ITask task) {
- return TracRepositoryConnector.hasAttachmentSupport(repository, task);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttribute.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttribute.java
deleted file mode 100644
index 7aac2ba6b..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttribute.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.mylyn.internal.trac.core.TracAttributeMapper.Flag;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Steffen Pingel
- */
-public enum TracAttribute {
-
- CC(Key.CC, Messages.TracAttribute_CC, TaskAttribute.USER_CC, TaskAttribute.TYPE_SHORT_TEXT, Flag.PEOPLE),
-
- CHANGE_TIME(Key.CHANGE_TIME, Messages.TracAttribute_Last_Modification, TaskAttribute.DATE_MODIFICATION, TaskAttribute.TYPE_DATE,
- Flag.READ_ONLY),
-
- COMPONENT(Key.COMPONENT, Messages.TracAttribute_Component, TaskAttribute.PRODUCT, TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE),
-
- DESCRIPTION(Key.DESCRIPTION, Messages.TracAttribute_Description, TaskAttribute.DESCRIPTION, TaskAttribute.TYPE_LONG_RICH_TEXT),
-
- ID(Key.ID, Messages.TracAttribute_ID, TaskAttribute.TASK_KEY, TaskAttribute.TYPE_SHORT_TEXT, Flag.PEOPLE),
-
- KEYWORDS(Key.KEYWORDS, Messages.TracAttribute_Keywords, TaskAttribute.KEYWORDS, TaskAttribute.TYPE_SHORT_TEXT, Flag.ATTRIBUTE),
-
- MILESTONE(Key.MILESTONE, Messages.TracAttribute_Milestone, null, TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE),
-
- OWNER(Key.OWNER, Messages.TracAttribute_Assigned_to, TaskAttribute.USER_ASSIGNED, TaskAttribute.TYPE_PERSON, Flag.PEOPLE),
-
- PRIORITY(Key.PRIORITY, Messages.TracAttribute_Priority, TaskAttribute.PRIORITY, TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE),
-
- REPORTER(Key.REPORTER, Messages.TracAttribute_Reporter, TaskAttribute.USER_REPORTER, TaskAttribute.TYPE_PERSON, Flag.READ_ONLY),
-
- RESOLUTION(Key.RESOLUTION, Messages.TracAttribute_Resolution, TaskAttribute.RESOLUTION, TaskAttribute.TYPE_SINGLE_SELECT),
-
- SEVERITY(Key.SEVERITY, Messages.TracAttribute_Severity, null, TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE),
-
- STATUS(Key.STATUS, Messages.TracAttribute_Status, TaskAttribute.STATUS, TaskAttribute.TYPE_SHORT_TEXT),
-
- SUMMARY(Key.SUMMARY, Messages.TracAttribute_Summary, TaskAttribute.SUMMARY, TaskAttribute.TYPE_SHORT_RICH_TEXT),
-
- TIME(Key.TIME, Messages.TracAttribute_Created, TaskAttribute.DATE_CREATION, TaskAttribute.TYPE_DATE, Flag.READ_ONLY),
-
- TYPE(Key.TYPE, Messages.TracAttribute_Type, TaskAttribute.TASK_KIND, TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE),
-
- VERSION(Key.VERSION, Messages.TracAttribute_Version, null, TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE);
-
- static Map<String, TracAttribute> attributeByTracKey = new HashMap<String, TracAttribute>();
-
- static Map<String, String> tracKeyByTaskKey = new HashMap<String, String>();
-
- private final String tracKey;
-
- private final String prettyName;
-
- private final String taskKey;
-
- private final String type;
-
- private EnumSet<Flag> flags;
-
- public static TracAttribute getByTaskKey(String taskKey) {
- for (TracAttribute attribute : values()) {
- if (taskKey.equals(attribute.getTaskKey())) {
- return attribute;
- }
- }
- return null;
- }
-
- public static TracAttribute getByTracKey(String tracKey) {
- for (TracAttribute attribute : values()) {
- if (tracKey.equals(attribute.getTracKey())) {
- return attribute;
- }
- }
- return null;
- }
-
- TracAttribute(Key tracKey, String prettyName, String taskKey, String type, Flag firstFlag, Flag... moreFlags) {
- this.tracKey = tracKey.getKey();
- this.taskKey = taskKey;
- this.prettyName = prettyName;
- this.type = type;
- if (firstFlag == null) {
- this.flags = TracAttributeMapper.NO_FLAGS;
- } else {
- this.flags = EnumSet.of(firstFlag, moreFlags);
- }
- }
-
- TracAttribute(Key tracKey, String prettyName, String taskKey, String type) {
- this(tracKey, prettyName, taskKey, type, null);
- }
-
- public String getTaskKey() {
- return taskKey;
- }
-
- public String getTracKey() {
- return tracKey;
- }
-
- public String getKind() {
- if (flags.contains(Flag.ATTRIBUTE)) {
- return TaskAttribute.KIND_DEFAULT;
- } else if (flags.contains(Flag.PEOPLE)) {
- return TaskAttribute.KIND_PEOPLE;
- }
- return null;
- }
-
- public String getType() {
- return type;
- }
-
- public boolean isReadOnly() {
- return flags.contains(Flag.READ_ONLY);
- }
-
- @Override
- public String toString() {
- return prettyName;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttributeMapper.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttributeMapper.java
deleted file mode 100644
index 3237dd5c8..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttributeMapper.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.util.Date;
-import java.util.EnumSet;
-
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-
-/**
- * Provides a mapping from Mylyn task keys to Trac ticket keys.
- *
- * @author Steffen Pingel
- */
-public class TracAttributeMapper extends TaskAttributeMapper {
-
- public enum Flag {
- READ_ONLY, ATTRIBUTE, PEOPLE
- };
-
- public static final String NEW_CC = "task.common.newcc"; //$NON-NLS-1$
-
- public static final String REMOVE_CC = "task.common.removecc"; //$NON-NLS-1$
-
- public static final EnumSet<Flag> NO_FLAGS = EnumSet.noneOf(Flag.class);
-
- public static boolean isInternalAttribute(TaskAttribute attribute) {
- String type = attribute.getMetaData().getType();
- if (TaskAttribute.TYPE_ATTACHMENT.equals(type) || TaskAttribute.TYPE_OPERATION.equals(type)
- || TaskAttribute.TYPE_COMMENT.equals(type)) {
- return true;
- }
- String id = attribute.getId();
- return TaskAttribute.COMMENT_NEW.equals(id) || TaskAttribute.ADD_SELF_CC.equals(id) || REMOVE_CC.equals(id)
- || NEW_CC.equals(id);
- }
-
- public TracAttributeMapper(TaskRepository taskRepository) {
- super(taskRepository);
- }
-
- @Override
- public Date getDateValue(TaskAttribute attribute) {
- return TracUtil.parseDate(attribute.getValue());
- }
-
- @Override
- public String mapToRepositoryKey(TaskAttribute parent, String key) {
- TracAttribute attribute = TracAttribute.getByTaskKey(key);
- return (attribute != null) ? attribute.getTracKey() : key;
- }
-
- @Override
- public void setDateValue(TaskAttribute attribute, Date date) {
- if (date == null) {
- attribute.clearValues();
- } else {
- attribute.setValue(TracUtil.toTracTime(date) + ""); //$NON-NLS-1$
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientFactory.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientFactory.java
deleted file mode 100644
index 8b919acb7..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.net.MalformedURLException;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.TracLoginException;
-import org.eclipse.mylyn.internal.trac.core.client.TracWebClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracXmlRpcClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-
-/**
- * @author Steffen Pingel
- */
-public class TracClientFactory {
-
- public static ITracClient createClient(AbstractWebLocation location, Version version) {
- if (version == Version.TRAC_0_9) {
- return new TracWebClient(location, version);
- } else if (version == Version.XML_RPC) {
- return new TracXmlRpcClient(location, version);
- }
-
- throw new RuntimeException("Invalid repository version: " + version); //$NON-NLS-1$
- }
-
- /**
- * Tries all supported access types for <code>location</code> and returns the corresponding version if successful;
- * throws an exception otherwise.
- *
- * <p>
- * Order of the tried access types: XML-RPC, Trac 0.9
- */
- public static Version probeClient(AbstractWebLocation location) throws MalformedURLException, TracException {
- try {
- ITracClient repository = new TracXmlRpcClient(location, Version.XML_RPC);
- repository.validate(new NullProgressMonitor());
- return Version.XML_RPC;
- } catch (TracException e) {
- try {
- ITracClient repository = new TracWebClient(location, Version.TRAC_0_9);
- repository.validate(new NullProgressMonitor());
- return Version.TRAC_0_9;
- } catch (TracLoginException e2) {
- throw e;
- } catch (TracException e2) {
- }
- }
-
- throw new TracException();
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientManager.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientManager.java
deleted file mode 100644
index f352ea95d..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracClientManager.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracClientData;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.tasks.core.IRepositoryListener;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
-
-/**
- * Caches {@link ITracClient} objects.
- *
- * @author Steffen Pingel
- */
-public class TracClientManager implements IRepositoryListener {
-
- private final Map<String, ITracClient> clientByUrl = new HashMap<String, ITracClient>();
-
- private final Map<String, TracClientData> clientDataByUrl = new HashMap<String, TracClientData>();
-
- private final File cacheFile;
-
- private TaskRepositoryLocationFactory taskRepositoryLocationFactory;
-
- public TracClientManager(File cacheFile, TaskRepositoryLocationFactory taskRepositoryLocationFactory) {
- this.cacheFile = cacheFile;
- this.taskRepositoryLocationFactory = taskRepositoryLocationFactory;
-
- readCache();
- }
-
- public synchronized ITracClient getTracClient(TaskRepository taskRepository) {
- ITracClient repository = clientByUrl.get(taskRepository.getRepositoryUrl());
- if (repository == null) {
- AbstractWebLocation location = taskRepositoryLocationFactory.createWebLocation(taskRepository);
- repository = TracClientFactory.createClient(location, Version.fromVersion(taskRepository.getVersion()));
- clientByUrl.put(taskRepository.getRepositoryUrl(), repository);
-
- TracClientData data = clientDataByUrl.get(taskRepository.getRepositoryUrl());
- if (data == null) {
- data = new TracClientData();
- clientDataByUrl.put(taskRepository.getRepositoryUrl(), data);
- }
- repository.setData(data);
- }
- return repository;
- }
-
- public void repositoriesRead() {
- // ignore
- }
-
- public synchronized void repositoryAdded(TaskRepository repository) {
- // make sure there is no stale client still in the cache, bug #149939
- removeClient(repository);
- clientDataByUrl.remove(repository.getRepositoryUrl());
- }
-
- private void removeClient(TaskRepository repository) {
- clientByUrl.remove(repository.getRepositoryUrl());
- }
-
- public synchronized void repositoryRemoved(TaskRepository repository) {
- removeClient(repository);
- clientDataByUrl.remove(repository.getRepositoryUrl());
- }
-
- public synchronized void repositorySettingsChanged(TaskRepository repository) {
- removeClient(repository);
- // if url is changed a stale data object will be left in
- // clientDataByUrl, bug #149939
- }
-
- public void readCache() {
- if (cacheFile == null || !cacheFile.exists()) {
- return;
- }
-
- ObjectInputStream in = null;
- try {
- in = new ObjectInputStream(new FileInputStream(cacheFile));
- int size = in.readInt();
- for (int i = 0; i < size; i++) {
- String url = (String) in.readObject();
- TracClientData data = (TracClientData) in.readObject();
- if (url != null && data != null) {
- clientDataByUrl.put(url, data);
- }
- }
- } catch (Throwable e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "The Trac respository configuration cache could not be read", e)); //$NON-NLS-1$
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
-
- }
-
- public void writeCache() {
- if (cacheFile == null) {
- return;
- }
-
- ObjectOutputStream out = null;
- try {
- out = new ObjectOutputStream(new FileOutputStream(cacheFile));
- out.writeInt(clientDataByUrl.size());
- for (String url : clientDataByUrl.keySet()) {
- out.writeObject(url);
- out.writeObject(clientDataByUrl.get(url));
- }
- } catch (IOException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "The Trac respository configuration cache could not be written", e)); //$NON-NLS-1$
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
- }
-
- public TaskRepositoryLocationFactory getTaskRepositoryLocationFactory() {
- return taskRepositoryLocationFactory;
- }
-
- public void setTaskRepositoryLocationFactory(TaskRepositoryLocationFactory taskRepositoryLocationFactory) {
- this.taskRepositoryLocationFactory = taskRepositoryLocationFactory;
- }
-
- public void repositoryUrlChanged(TaskRepository repository, String oldUrl) {
- // ignore
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracCorePlugin.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracCorePlugin.java
deleted file mode 100644
index 7fa930376..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracCorePlugin.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.net.MalformedURLException;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.mylyn.internal.trac.core.client.InvalidTicketException;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.TracLoginException;
-import org.eclipse.mylyn.internal.trac.core.client.TracPermissionDeniedException;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.osgi.framework.BundleContext;
-
-/**
- * The headless Trac plug-in class.
- *
- * @author Steffen Pingel
- */
-public class TracCorePlugin extends Plugin {
-
- public static final String ID_PLUGIN = "org.eclipse.mylyn.trac.core"; //$NON-NLS-1$
-
- public static final String ENCODING_UTF_8 = "UTF-8"; //$NON-NLS-1$
-
- private static TracCorePlugin plugin;
-
- public final static String CONNECTOR_KIND = "trac"; //$NON-NLS-1$
-
- private TracRepositoryConnector connector;
-
- public TracCorePlugin() {
- }
-
- public static TracCorePlugin getDefault() {
- return plugin;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- if (connector != null) {
- connector.stop();
- connector = null;
- }
-
- plugin = null;
- super.stop(context);
- }
-
- public TracRepositoryConnector getConnector() {
- return connector;
- }
-
- void setConnector(TracRepositoryConnector connector) {
- this.connector = connector;
- }
-
- /**
- * Returns the path to the file caching repository attributes.
- */
- protected IPath getRepostioryAttributeCachePath() {
- IPath stateLocation = Platform.getStateLocation(getBundle());
- IPath cacheFile = stateLocation.append("repositoryConfigurations"); //$NON-NLS-1$
- return cacheFile;
- }
-
- public static IStatus toStatus(Throwable e, TaskRepository repository) {
- if (e instanceof TracLoginException) {
- return RepositoryStatus.createLoginError(repository.getRepositoryUrl(), ID_PLUGIN);
- } else if (e instanceof TracPermissionDeniedException) {
- return TracUtil.createPermissionDeniedError(repository.getRepositoryUrl(), ID_PLUGIN);
- } else if (e instanceof InvalidTicketException) {
- return new RepositoryStatus(repository.getRepositoryUrl(), IStatus.ERROR, ID_PLUGIN,
- RepositoryStatus.ERROR_IO, Messages.TracCorePlugin_the_SERVER_RETURNED_an_UNEXPECTED_RESOPNSE, e);
- } else if (e instanceof TracException) {
- String message = e.getMessage();
- if (message == null) {
- message = Messages.TracCorePlugin_I_O_error_has_occured;
- }
- return new RepositoryStatus(repository.getRepositoryUrl(), IStatus.ERROR, ID_PLUGIN,
- RepositoryStatus.ERROR_IO, message, e);
- } else if (e instanceof ClassCastException) {
- return new RepositoryStatus(IStatus.ERROR, ID_PLUGIN, RepositoryStatus.ERROR_IO,
- Messages.TracCorePlugin_Unexpected_server_response_ + e.getMessage(), e);
- } else if (e instanceof MalformedURLException) {
- return new RepositoryStatus(IStatus.ERROR, ID_PLUGIN, RepositoryStatus.ERROR_IO,
- Messages.TracCorePlugin_Repository_URL_is_invalid, e);
- } else {
- return new RepositoryStatus(IStatus.ERROR, ID_PLUGIN, RepositoryStatus.ERROR_INTERNAL, Messages.TracCorePlugin_Unexpected_error,
- e);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java
deleted file mode 100644
index dcd003bca..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java
+++ /dev/null
@@ -1,669 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.trac.core.client.AbstractWikiHandler;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracWikiClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskRelation;
-import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession;
-
-/**
- * @author Steffen Pingel
- */
-public class TracRepositoryConnector extends AbstractRepositoryConnector {
-
- public enum TaskKind {
- DEFECT, ENHANCEMENT, TASK;
-
- public static TaskKind fromString(String type) {
- if (type == null) {
- return null;
- }
- if (type.equals("Defect")) { //$NON-NLS-1$
- return DEFECT;
- }
- if (type.equals("Enhancement")) { //$NON-NLS-1$
- return ENHANCEMENT;
- }
- if (type.equals("Task")) { //$NON-NLS-1$
- return TASK;
- }
- return null;
- }
-
- public static TaskKind fromType(String type) {
- if (type == null) {
- return null;
- }
- if (type.equals("defect")) { //$NON-NLS-1$
- return DEFECT;
- }
- if (type.equals("enhancement")) { //$NON-NLS-1$
- return ENHANCEMENT;
- }
- if (type.equals("task")) { //$NON-NLS-1$
- return TASK;
- }
- return null;
- }
-
- @Override
- public String toString() {
- switch (this) {
- case DEFECT:
- return "Defect"; //$NON-NLS-1$
- case ENHANCEMENT:
- return "Enhancement"; //$NON-NLS-1$
- case TASK:
- return "Task"; //$NON-NLS-1$
- default:
- return ""; //$NON-NLS-1$
- }
- }
-
- }
-
- public enum TaskStatus {
- ASSIGNED, CLOSED, NEW, REOPENED;
-
- public static TaskStatus fromStatus(String status) {
- if (status == null) {
- return null;
- }
- if (status.equals("new")) { //$NON-NLS-1$
- return NEW;
- }
- if (status.equals("assigned")) { //$NON-NLS-1$
- return ASSIGNED;
- }
- if (status.equals("reopened")) { //$NON-NLS-1$
- return REOPENED;
- }
- if (status.equals("closed")) { //$NON-NLS-1$
- return CLOSED;
- }
- return null;
- }
-
- public String toStatusString() {
- switch (this) {
- case NEW:
- return "new"; //$NON-NLS-1$
- case ASSIGNED:
- return "assigned"; //$NON-NLS-1$
- case REOPENED:
- return "reopened"; //$NON-NLS-1$
- case CLOSED:
- return "closed"; //$NON-NLS-1$
- default:
- return ""; //$NON-NLS-1$
- }
- }
-
- @Override
- public String toString() {
- switch (this) {
- case NEW:
- return "New"; //$NON-NLS-1$
- case ASSIGNED:
- return "Assigned"; //$NON-NLS-1$
- case REOPENED:
- return "Reopened"; //$NON-NLS-1$
- case CLOSED:
- return "Closed"; //$NON-NLS-1$
- default:
- return ""; //$NON-NLS-1$
- }
- }
-
- }
-
- public enum TracPriorityLevel {
- BLOCKER, CRITICAL, MAJOR, MINOR, TRIVIAL;
-
- public static TracPriorityLevel fromPriority(String priority) {
- if (priority == null) {
- return null;
- }
- if (priority.equals("blocker")) { //$NON-NLS-1$
- return BLOCKER;
- }
- if (priority.equals("critical")) { //$NON-NLS-1$
- return CRITICAL;
- }
- if (priority.equals("major")) { //$NON-NLS-1$
- return MAJOR;
- }
- if (priority.equals("minor")) { //$NON-NLS-1$
- return MINOR;
- }
- if (priority.equals("trivial")) { //$NON-NLS-1$
- return TRIVIAL;
- }
- return null;
- }
-
- public PriorityLevel toPriorityLevel() {
- switch (this) {
- case BLOCKER:
- return PriorityLevel.P1;
- case CRITICAL:
- return PriorityLevel.P2;
- case MAJOR:
- return PriorityLevel.P3;
- case MINOR:
- return PriorityLevel.P4;
- case TRIVIAL:
- return PriorityLevel.P5;
- default:
- return null;
- }
- }
-
- @Override
- public String toString() {
- switch (this) {
- case BLOCKER:
- return "blocker"; //$NON-NLS-1$
- case CRITICAL:
- return "critical"; //$NON-NLS-1$
- case MAJOR:
- return "major"; //$NON-NLS-1$
- case MINOR:
- return "minor"; //$NON-NLS-1$
- case TRIVIAL:
- return "trivial"; //$NON-NLS-1$
- default:
- return null;
- }
- }
- }
-
- private final static String CLIENT_LABEL = Messages.TracRepositoryConnector_TRAC_SUPPORTS_0_9_OR_0_10_THROUGH_WEB_AND_XML_RPC;
-
- private final static Date DEFAULT_COMPLETION_DATE = new Date(0);
-
- private static int TASK_PRIORITY_LEVELS = 5;
-
- public static final String TASK_KEY_SUPPORTS_SUBTASKS = "SupportsSubtasks"; //$NON-NLS-1$
-
- public static final String TASK_KEY_UPDATE_DATE = "UpdateDate"; //$NON-NLS-1$
-
- public static String getDisplayUsername(TaskRepository repository) {
- AuthenticationCredentials credentials = repository.getCredentials(AuthenticationType.REPOSITORY);
- if (credentials != null && credentials.getUserName().length() > 0) {
- return ITracClient.DEFAULT_USERNAME;
- }
- return repository.getUserName();
- }
-
- public static PriorityLevel getTaskPriority(String tracPriority) {
- if (tracPriority != null) {
- TracPriorityLevel priority = TracPriorityLevel.fromPriority(tracPriority);
- if (priority != null) {
- return priority.toPriorityLevel();
- }
- }
- return PriorityLevel.getDefault();
- }
-
- public static PriorityLevel getTaskPriority(String priority, TracPriority[] tracPriorities) {
- if (priority != null && tracPriorities != null && tracPriorities.length > 0) {
- int minValue = tracPriorities[0].getValue();
- int range = tracPriorities[tracPriorities.length - 1].getValue() - minValue;
- for (TracPriority tracPriority : tracPriorities) {
- if (priority.equals(tracPriority.getName())) {
- float relativeValue = (float) (tracPriority.getValue() - minValue) / range;
- int value = (int) (relativeValue * TASK_PRIORITY_LEVELS) + 1;
- return PriorityLevel.fromLevel(value);
- }
- }
- }
- return getTaskPriority(priority);
- }
-
- public static int getTicketId(String taskId) throws CoreException {
- try {
- return Integer.parseInt(taskId);
- } catch (NumberFormatException e) {
- throw new CoreException(new Status(IStatus.ERROR, TracCorePlugin.ID_PLUGIN, IStatus.OK,
- "Invalid ticket id: " + taskId, e)); //$NON-NLS-1$
- }
- }
-
- static List<String> getAttributeValues(TaskData data, String attributeId) {
- TaskAttribute attribute = data.getRoot().getMappedAttribute(attributeId);
- if (attribute != null) {
- return attribute.getValues();
- } else {
- return Collections.emptyList();
- }
- }
-
- static String getAttributeValue(TaskData data, String attributeId) {
- TaskAttribute attribute = data.getRoot().getMappedAttribute(attributeId);
- if (attribute != null) {
- return attribute.getValue();
- } else {
- return ""; //$NON-NLS-1$
- }
- }
-
- public static boolean hasAttachmentSupport(TaskRepository repository, ITask task) {
- return Version.XML_RPC.name().equals(repository.getVersion());
- }
-
- public static boolean hasChangedSince(TaskRepository repository) {
- return Version.XML_RPC.name().equals(repository.getVersion());
- }
-
- public static boolean hasRichEditor(TaskRepository repository) {
- return Version.XML_RPC.name().equals(repository.getVersion());
- }
-
- public static boolean hasRichEditor(TaskRepository repository, ITask task) {
- return hasRichEditor(repository);
- }
-
- public static boolean isCompleted(String tracStatus) {
- TaskStatus taskStatus = TaskStatus.fromStatus(tracStatus);
- return taskStatus == TaskStatus.CLOSED;
- }
-
- private final TracAttachmentHandler attachmentHandler = new TracAttachmentHandler(this);
-
- private TracClientManager clientManager;
-
- private File repositoryConfigurationCacheFile;
-
- private final TracTaskDataHandler taskDataHandler = new TracTaskDataHandler(this);
-
- private TaskRepositoryLocationFactory taskRepositoryLocationFactory = new TaskRepositoryLocationFactory();
-
- private final TracWikiHandler wikiHandler = new TracWikiHandler(this);
-
- public TracRepositoryConnector() {
- if (TracCorePlugin.getDefault() != null) {
- TracCorePlugin.getDefault().setConnector(this);
- IPath path = TracCorePlugin.getDefault().getRepostioryAttributeCachePath();
- this.repositoryConfigurationCacheFile = path.toFile();
- }
- }
-
- public TracRepositoryConnector(File repositoryConfigurationCacheFile) {
- this.repositoryConfigurationCacheFile = repositoryConfigurationCacheFile;
- }
-
- @Override
- public boolean canCreateNewTask(TaskRepository repository) {
- return true;
- }
-
- @Override
- public boolean canCreateTaskFromKey(TaskRepository repository) {
- return true;
- }
-
- @Override
- public boolean canSynchronizeTask(TaskRepository taskRepository, ITask task) {
- return hasRichEditor(taskRepository, task);
- }
-
- @Override
- public TracAttachmentHandler getTaskAttachmentHandler() {
- return attachmentHandler;
- }
-
- public synchronized TracClientManager getClientManager() {
- if (clientManager == null) {
- clientManager = new TracClientManager(repositoryConfigurationCacheFile, taskRepositoryLocationFactory);
- }
- return clientManager;
- }
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public String getLabel() {
- return CLIENT_LABEL;
- }
-
- @Override
- public TaskData getTaskData(TaskRepository repository, String taskId, IProgressMonitor monitor)
- throws CoreException {
- return taskDataHandler.getTaskData(repository, taskId, monitor);
- }
-
- @Override
- public TracTaskDataHandler getTaskDataHandler() {
- return taskDataHandler;
- }
-
- @Override
- public String getRepositoryUrlFromTaskUrl(String url) {
- if (url == null) {
- return null;
- }
- int index = url.lastIndexOf(ITracClient.TICKET_URL);
- return index == -1 ? null : url.substring(0, index);
- }
-
- @Override
- public String getTaskIdFromTaskUrl(String url) {
- if (url == null) {
- return null;
- }
- int index = url.lastIndexOf(ITracClient.TICKET_URL);
- return index == -1 ? null : url.substring(index + ITracClient.TICKET_URL.length());
- }
-
- @Override
- public String getTaskIdPrefix() {
- return "#"; //$NON-NLS-1$
- }
-
- public TaskRepositoryLocationFactory getTaskRepositoryLocationFactory() {
- return taskRepositoryLocationFactory;
- }
-
- @Override
- public String getTaskUrl(String repositoryUrl, String taskId) {
- return repositoryUrl + ITracClient.TICKET_URL + taskId;
- }
-
- public AbstractWikiHandler getWikiHandler() {
- return wikiHandler;
- }
-
- public boolean hasWiki(TaskRepository repository) {
- // check the access mode to validate Wiki support
- ITracClient client = getClientManager().getTracClient(repository);
- if (client instanceof ITracWikiClient) {
- return true;
- }
- return false;
- }
-
- @Override
- public IStatus performQuery(TaskRepository repository, IRepositoryQuery query, TaskDataCollector resultCollector,
- ISynchronizationSession session, IProgressMonitor monitor) {
- try {
- monitor.beginTask(Messages.TracRepositoryConnector_Querying_repository, IProgressMonitor.UNKNOWN);
-
- TracSearch search = TracUtil.toTracSearch(query);
- if (search == null) {
- return new RepositoryStatus(repository.getRepositoryUrl(), IStatus.ERROR, TracCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY, "The query is invalid: \"" + query.getUrl() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- ITracClient client;
- try {
- client = getClientManager().getTracClient(repository);
- List<TracTicket> tickets = new ArrayList<TracTicket>();
- client.search(search, tickets, monitor);
-
- Map<String, ITask> taskById = null;
- client.updateAttributes(monitor, false);
- for (TracTicket ticket : tickets) {
- TaskData taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, monitor);
- taskData.setPartial(true);
- if (session != null && !session.isFullSynchronization() && hasRichEditor(repository)) {
- if (taskById == null) {
- taskById = new HashMap<String, ITask>();
- for (ITask task : session.getTasks()) {
- taskById.put(task.getTaskId(), task);
- }
- }
- ITask task = taskById.get(ticket.getId() + ""); //$NON-NLS-1$
- if (task != null && hasTaskChanged(repository, task, taskData)) {
- session.markStale(task);
- }
- }
- resultCollector.accept(taskData);
- }
- } catch (Throwable e) {
- return TracCorePlugin.toStatus(e, repository);
- }
-
- return Status.OK_STATUS;
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public void postSynchronization(ISynchronizationSession event, IProgressMonitor monitor) throws CoreException {
- try {
- monitor.beginTask("", 1); //$NON-NLS-1$
- if (event.isFullSynchronization() && event.getStatus() == null) {
- Date date = getSynchronizationTimestamp(event);
- if (date != null) {
- event.getTaskRepository().setSynchronizationTimeStamp(TracUtil.toTracTime(date) + ""); //$NON-NLS-1$
- }
- }
- } finally {
- monitor.done();
- }
- }
-
- private Date getSynchronizationTimestamp(ISynchronizationSession event) {
- Date mostRecent = new Date(0);
- Date mostRecentTimeStamp = TracUtil.parseDate(event.getTaskRepository().getSynchronizationTimeStamp());
- for (ITask task : event.getChangedTasks()) {
- Date taskModifiedDate = task.getModificationDate();
- if (taskModifiedDate != null && taskModifiedDate.after(mostRecent)) {
- mostRecent = taskModifiedDate;
- mostRecentTimeStamp = task.getModificationDate();
- }
- }
- return mostRecentTimeStamp;
- }
-
- @Override
- public void preSynchronization(ISynchronizationSession session, IProgressMonitor monitor) throws CoreException {
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask(Messages.TracRepositoryConnector_Getting_changed_tasks, IProgressMonitor.UNKNOWN);
-
- if (!session.isFullSynchronization()) {
- return;
- }
-
- // there are no Trac tasks in the task list, skip contacting the repository
- if (session.getTasks().isEmpty()) {
- return;
- }
-
- TaskRepository repository = session.getTaskRepository();
- if (!TracRepositoryConnector.hasChangedSince(repository)) {
- // always run the queries for web mode
- return;
- }
-
- if (repository.getSynchronizationTimeStamp() == null
- || repository.getSynchronizationTimeStamp().length() == 0) {
- for (ITask task : session.getTasks()) {
- session.markStale(task);
- }
- return;
- }
-
- Date since = new Date(0);
- try {
- since = TracUtil.parseDate(Integer.parseInt(repository.getSynchronizationTimeStamp()));
- } catch (NumberFormatException e) {
- }
-
- try {
- ITracClient client = getClientManager().getTracClient(repository);
- Set<Integer> ids = client.getChangedTickets(since, monitor);
- if (ids.isEmpty()) {
- // repository is unchanged
- session.setNeedsPerformQueries(false);
- return;
- }
-
- if (ids.size() == 1) {
- // getChangedTickets() is expected to always return at least
- // one ticket because
- // the repository synchronization timestamp is set to the
- // most recent modification date
- Integer id = ids.iterator().next();
- Date lastChanged = client.getTicketLastChanged(id, monitor);
- if (since.equals(lastChanged)) {
- // repository didn't actually change
- session.setNeedsPerformQueries(false);
- return;
- }
- }
-
- for (ITask task : session.getTasks()) {
- Integer id = getTicketId(task.getTaskId());
- if (ids.contains(id)) {
- session.markStale(task);
- }
- }
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- // TODO catch TracException
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- } finally {
- monitor.done();
- }
- }
-
- public synchronized void setTaskRepositoryLocationFactory(
- TaskRepositoryLocationFactory taskRepositoryLocationFactory) {
- this.taskRepositoryLocationFactory = taskRepositoryLocationFactory;
- if (this.clientManager != null) {
- clientManager.setTaskRepositoryLocationFactory(taskRepositoryLocationFactory);
- }
- }
-
- public void stop() {
- if (clientManager != null) {
- clientManager.writeCache();
- }
- }
-
- @Override
- public void updateRepositoryConfiguration(TaskRepository repository, IProgressMonitor monitor) throws CoreException {
- try {
- ITracClient client = getClientManager().getTracClient(repository);
- client.updateAttributes(monitor, true);
- } catch (Exception e) {
- throw new CoreException(RepositoryStatus.createStatus(repository.getRepositoryUrl(), IStatus.WARNING,
- TracCorePlugin.ID_PLUGIN, "Could not update attributes")); //$NON-NLS-1$
- }
- }
-
- @Override
- public void updateTaskFromTaskData(TaskRepository taskRepository, ITask task, TaskData taskData) {
- TaskMapper mapper = getTaskMapping(taskData);
- mapper.applyTo(task);
- if (isCompleted(mapper.getStatus())) {
- Date modificationDate = mapper.getModificationDate();
- if (modificationDate == null) {
- // web mode does not set a date
- modificationDate = DEFAULT_COMPLETION_DATE;
- }
- task.setCompletionDate(modificationDate);
- } else {
- task.setCompletionDate(null);
- }
- task.setUrl(taskRepository.getRepositoryUrl() + ITracClient.TICKET_URL + taskData.getTaskId());
- task.setAttribute(TASK_KEY_SUPPORTS_SUBTASKS, Boolean.toString(taskDataHandler.supportsSubtasks(taskData)));
- if (!taskData.isPartial()) {
- Date date = task.getModificationDate();
- task.setAttribute(TASK_KEY_UPDATE_DATE, (date != null) ? TracUtil.toTracTime(date) + "" : null); //$NON-NLS-1$
- }
- }
-
- @Override
- public boolean hasTaskChanged(TaskRepository taskRepository, ITask task, TaskData taskData) {
- TaskMapper mapper = getTaskMapping(taskData);
- if (taskData.isPartial()) {
- return mapper.hasChanges(task);
- } else {
- Date repositoryDate = mapper.getModificationDate();
- Date localDate = TracUtil.parseDate(task.getAttribute(TASK_KEY_UPDATE_DATE));
- if (repositoryDate != null && repositoryDate.equals(localDate)) {
- return false;
- }
- return true;
- }
- }
-
- @Override
- public Collection<TaskRelation> getTaskRelations(TaskData taskData) {
- TaskAttribute attribute = taskData.getRoot().getAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
- if (attribute != null) {
- List<TaskRelation> result = new ArrayList<TaskRelation>();
- StringTokenizer t = new StringTokenizer(attribute.getValue(), ", "); //$NON-NLS-1$
- while (t.hasMoreTokens()) {
- result.add(TaskRelation.subtask(t.nextToken()));
- }
- return result;
- }
- return Collections.emptySet();
- }
-
- @Override
- public TracTaskMapper getTaskMapping(TaskData taskData) {
- TaskRepository taskRepository = taskData.getAttributeMapper().getTaskRepository();
- ITracClient client = (taskRepository != null) ? getClientManager().getTracClient(taskRepository) : null;
- return new TracTaskMapper(taskData, client);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java
deleted file mode 100644
index 056196c48..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java
+++ /dev/null
@@ -1,615 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.InvalidTicketException;
-import org.eclipse.mylyn.internal.trac.core.model.TracAttachment;
-import org.eclipse.mylyn.internal.trac.core.model.TracComment;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketField;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMetaData;
-import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskOperation;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskDataHandler extends AbstractTaskDataHandler {
-
- private static final String TASK_DATA_VERSION = "2"; //$NON-NLS-1$
-
- public static final String ATTRIBUTE_BLOCKED_BY = "blockedby"; //$NON-NLS-1$
-
- public static final String ATTRIBUTE_BLOCKING = "blocking"; //$NON-NLS-1$
-
- private static final String CC_DELIMETER = ", "; //$NON-NLS-1$
-
- private static final String TRAC_KEY = "tracKey"; //$NON-NLS-1$
-
- private final TracRepositoryConnector connector;
-
- public TracTaskDataHandler(TracRepositoryConnector connector) {
- this.connector = connector;
- }
-
- public TaskData getTaskData(TaskRepository repository, String taskId, IProgressMonitor monitor)
- throws CoreException {
- monitor = Policy.monitorFor(monitor);
- try {
- monitor.beginTask("Task Download", IProgressMonitor.UNKNOWN); //$NON-NLS-1$
- return downloadTaskData(repository, TracRepositoryConnector.getTicketId(taskId), monitor);
- } finally {
- monitor.done();
- }
- }
-
- public TaskData downloadTaskData(TaskRepository repository, int taskId, IProgressMonitor monitor)
- throws CoreException {
- ITracClient client = connector.getClientManager().getTracClient(repository);
- TracTicket ticket;
- try {
- client.updateAttributes(monitor, false);
- ticket = client.getTicket(taskId, monitor);
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- // TODO catch TracException
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- return createTaskDataFromTicket(client, repository, ticket, monitor);
- }
-
- public TaskData createTaskDataFromTicket(ITracClient client, TaskRepository repository, TracTicket ticket,
- IProgressMonitor monitor) throws CoreException {
- TaskData taskData = new TaskData(getAttributeMapper(repository), TracCorePlugin.CONNECTOR_KIND,
- repository.getRepositoryUrl(), ticket.getId() + ""); //$NON-NLS-1$
- taskData.setVersion(TASK_DATA_VERSION);
- try {
- if (!TracRepositoryConnector.hasRichEditor(repository)) {
- createDefaultAttributes(taskData, client, true);
- Set<TaskAttribute> changedAttributes = updateTaskData(repository, taskData, ticket);
- // remove attributes that were not set, i.e. were not received from the server
- List<TaskAttribute> attributes = new ArrayList<TaskAttribute>(taskData.getRoot()
- .getAttributes()
- .values());
- for (TaskAttribute attribute : attributes) {
- if (!changedAttributes.contains(attribute) && !TracAttributeMapper.isInternalAttribute(attribute)) {
- taskData.getRoot().removeAttribute(attribute.getId());
- }
- }
- taskData.setPartial(true);
- } else {
- createDefaultAttributes(taskData, client, true);
- updateTaskData(repository, taskData, ticket);
- }
- return taskData;
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- // TODO catch TracException
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- }
-
- public static Set<TaskAttribute> updateTaskData(TaskRepository repository, TaskData data, TracTicket ticket) {
- Set<TaskAttribute> changedAttributes = new HashSet<TaskAttribute>();
-
- Date lastChanged = ticket.getLastChanged();
- if (lastChanged != null) {
- TaskAttribute taskAttribute = data.getRoot().getAttribute(TracAttribute.CHANGE_TIME.getTracKey());
- taskAttribute.setValue(TracUtil.toTracTime(lastChanged) + ""); //$NON-NLS-1$
- changedAttributes.add(taskAttribute);
- }
-
- if (ticket.getCreated() != null) {
- TaskAttribute taskAttribute = data.getRoot().getAttribute(TracAttribute.TIME.getTracKey());
- taskAttribute.setValue(TracUtil.toTracTime(ticket.getCreated()) + ""); //$NON-NLS-1$
- changedAttributes.add(taskAttribute);
- }
-
- Map<String, String> valueByKey = ticket.getValues();
- for (String key : valueByKey.keySet()) {
- TaskAttribute taskAttribute = data.getRoot().getAttribute(key);
- if (taskAttribute != null) {
- if (Key.CC.getKey().equals(key)) {
- StringTokenizer t = new StringTokenizer(valueByKey.get(key), CC_DELIMETER);
- while (t.hasMoreTokens()) {
- taskAttribute.addValue(t.nextToken());
- }
- } else {
- taskAttribute.setValue(valueByKey.get(key));
- }
- changedAttributes.add(taskAttribute);
- } else {
- // TODO log missing attribute?
- }
- }
-
- TracComment[] comments = ticket.getComments();
- if (comments != null) {
- int count = 1;
- for (int i = 0; i < comments.length; i++) {
- if (!"comment".equals(comments[i].getField()) || "".equals(comments[i].getNewValue())) { //$NON-NLS-1$ //$NON-NLS-2$
- continue;
- }
-
- TaskCommentMapper mapper = new TaskCommentMapper();
- mapper.setAuthor(repository.createPerson(comments[i].getAuthor()));
- mapper.setCreationDate(comments[i].getCreated());
- mapper.setText(comments[i].getNewValue());
- // TODO mapper.setUrl();
- mapper.setNumber(count);
-
- TaskAttribute attribute = data.getRoot().createAttribute(TaskAttribute.PREFIX_COMMENT + count);
- mapper.applyTo(attribute);
- count++;
- }
- }
-
- TracAttachment[] attachments = ticket.getAttachments();
- if (attachments != null) {
- for (int i = 0; i < attachments.length; i++) {
- TaskAttachmentMapper mapper = new TaskAttachmentMapper();
- mapper.setAuthor(repository.createPerson(attachments[i].getAuthor()));
- mapper.setDescription(attachments[i].getDescription());
- mapper.setFileName(attachments[i].getFilename());
- mapper.setLength((long) attachments[i].getSize());
- if (attachments[i].getCreated() != null) {
- if (lastChanged == null || attachments[i].getCreated().after(lastChanged)) {
- lastChanged = attachments[i].getCreated();
- }
- mapper.setCreationDate(attachments[i].getCreated());
- }
- mapper.setUrl(repository.getRepositoryUrl() + ITracClient.TICKET_ATTACHMENT_URL + ticket.getId() + "/" //$NON-NLS-1$
- + TracUtil.encodeUrl(attachments[i].getFilename()));
- mapper.setAttachmentId(i + ""); //$NON-NLS-1$
-
- TaskAttribute attribute = data.getRoot().createAttribute(TaskAttribute.PREFIX_ATTACHMENT + (i + 1));
- mapper.applyTo(attribute);
- }
- }
-
- String[] actions = ticket.getActions();
- if (actions != null) {
- // add operations in a defined order
- List<String> actionList = new ArrayList<String>(Arrays.asList(actions));
- addOperation(repository, data, ticket, actionList, "leave"); //$NON-NLS-1$
- addOperation(repository, data, ticket, actionList, "accept"); //$NON-NLS-1$
- addOperation(repository, data, ticket, actionList, "resolve"); //$NON-NLS-1$
- addOperation(repository, data, ticket, actionList, "reopen"); //$NON-NLS-1$
- }
-
- return changedAttributes;
- }
-
- private static void addOperation(TaskRepository repository, TaskData data, TracTicket ticket, List<String> actions,
- String action) {
- if (!actions.remove(action)) {
- return;
- }
-
- String label = null;
- if ("leave".equals(action)) { //$NON-NLS-1$
- // TODO provide better label for Leave action
- //label = "Leave as " + data.getStatus() + " " + data.getResolution();
- label = "Leave"; //$NON-NLS-1$
- } else if ("accept".equals(action)) { //$NON-NLS-1$
- label = "Accept"; //$NON-NLS-1$
- } else if ("resolve".equals(action)) { //$NON-NLS-1$
- label = "Resolve as"; //$NON-NLS-1$
- } else if ("reopen".equals(action)) { //$NON-NLS-1$
- label = "Reopen"; //$NON-NLS-1$
- }
-
- if (label != null) {
- TaskAttribute attribute = data.getRoot().createAttribute(TaskAttribute.PREFIX_OPERATION + action);
- TaskOperation.applyTo(attribute, action, label);
- if ("resolve".equals(action)) { //$NON-NLS-1$
- attribute.getMetaData().putValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID,
- TracAttribute.RESOLUTION.getTracKey());
- }
- }
- }
-
- public static void createDefaultAttributes(TaskData data, ITracClient client, boolean existingTask) {
- data.setVersion(TASK_DATA_VERSION);
-
- createAttribute(data, TracAttribute.SUMMARY);
- createAttribute(data, TracAttribute.DESCRIPTION);
- if (existingTask) {
- createAttribute(data, TracAttribute.TIME);
- createAttribute(data, TracAttribute.CHANGE_TIME);
- createAttribute(data, TracAttribute.STATUS, client.getTicketStatus());
- createAttribute(data, TracAttribute.RESOLUTION, client.getTicketResolutions());
- }
- createAttribute(data, TracAttribute.COMPONENT, client.getComponents());
- createAttribute(data, TracAttribute.VERSION, client.getVersions(), true);
- createAttribute(data, TracAttribute.PRIORITY, client.getPriorities());
- createAttribute(data, TracAttribute.SEVERITY, client.getSeverities());
- createAttribute(data, TracAttribute.MILESTONE, client.getMilestones(), true);
- createAttribute(data, TracAttribute.TYPE, client.getTicketTypes());
- createAttribute(data, TracAttribute.KEYWORDS);
- TracTicketField[] fields = client.getTicketFields();
- if (fields != null) {
- for (TracTicketField field : fields) {
- if (field.isCustom()) {
- createAttribute(data, field);
- }
- }
- }
- // people
- createAttribute(data, TracAttribute.OWNER);
- if (existingTask) {
- createAttribute(data, TracAttribute.REPORTER);
- }
- createAttribute(data, TracAttribute.CC);
- if (existingTask) {
- data.getRoot().createAttribute(TracAttributeMapper.NEW_CC).getMetaData().setType(
- TaskAttribute.TYPE_SHORT_TEXT).setReadOnly(false);
- data.getRoot().createAttribute(TracAttributeMapper.REMOVE_CC);
- data.getRoot().createAttribute(TaskAttribute.COMMENT_NEW).getMetaData().setType(
- TaskAttribute.TYPE_LONG_RICH_TEXT).setReadOnly(false);
- }
- // operations
- data.getRoot().createAttribute(TaskAttribute.OPERATION).getMetaData().setType(TaskAttribute.TYPE_OPERATION);
- }
-
- private static void createAttribute(TaskData data, TracTicketField field) {
- TaskAttribute attr = data.getRoot().createAttribute(field.getName());
- TaskAttributeMetaData metaData = attr.getMetaData();
- metaData.defaults();
- metaData.setLabel(field.getLabel() + ":"); //$NON-NLS-1$
- metaData.setKind(TaskAttribute.KIND_DEFAULT);
- metaData.setReadOnly(false);
- metaData.putValue(TRAC_KEY, field.getName());
- if (field.getType() == TracTicketField.Type.CHECKBOX) {
- // attr.addOption("True", "1");
- // attr.addOption("False", "0");
- metaData.setType(TaskAttribute.TYPE_BOOLEAN);
- attr.putOption("1", "1"); //$NON-NLS-1$ //$NON-NLS-2$
- attr.putOption("0", "0"); //$NON-NLS-1$ //$NON-NLS-2$
- if (field.getDefaultValue() != null) {
- attr.setValue(field.getDefaultValue());
- }
- } else if (field.getType() == TracTicketField.Type.SELECT || field.getType() == TracTicketField.Type.RADIO) {
- metaData.setType(TaskAttribute.TYPE_SINGLE_SELECT);
- String[] values = field.getOptions();
- if (values != null && values.length > 0) {
- if (field.isOptional()) {
- attr.putOption("", ""); //$NON-NLS-1$ //$NON-NLS-2$
- }
- for (String value : values) {
- attr.putOption(value, value);
- }
- if (field.getDefaultValue() != null) {
- try {
- int index = Integer.parseInt(field.getDefaultValue());
- if (index > 0 && index < values.length) {
- attr.setValue(values[index]);
- }
- } catch (NumberFormatException e) {
- for (String value : values) {
- if (field.getDefaultValue().equals(value.toString())) {
- attr.setValue(value);
- break;
- }
- }
- }
- }
- }
- } else if (field.getType() == TracTicketField.Type.TEXTAREA) {
- metaData.setType(TaskAttribute.TYPE_LONG_TEXT);
- if (field.getDefaultValue() != null) {
- attr.setValue(field.getDefaultValue());
- }
- } else {
- metaData.setType(TaskAttribute.TYPE_SHORT_TEXT);
- if (field.getDefaultValue() != null) {
- attr.setValue(field.getDefaultValue());
- }
- }
- }
-
- private static TaskAttribute createAttribute(TaskData data, TracAttribute tracAttribute) {
- TaskAttribute attr = data.getRoot().createAttribute(tracAttribute.getTracKey());
- TaskAttributeMetaData metaData = attr.getMetaData();
- metaData.setType(tracAttribute.getType());
- metaData.setKind(tracAttribute.getKind());
- metaData.setLabel(tracAttribute.toString());
- metaData.setReadOnly(tracAttribute.isReadOnly());
- metaData.putValue(TRAC_KEY, tracAttribute.getTracKey());
- return attr;
- }
-
- private static TaskAttribute createAttribute(TaskData data, TracAttribute tracAttribute, Object[] values,
- boolean allowEmtpy) {
- TaskAttribute attr = createAttribute(data, tracAttribute);
- if (values != null && values.length > 0) {
- if (allowEmtpy) {
- attr.putOption("", ""); //$NON-NLS-1$ //$NON-NLS-2$
- }
- for (Object value : values) {
- attr.putOption(value.toString(), value.toString());
- }
- } else {
- attr.getMetaData().setReadOnly(true);
- }
- return attr;
- }
-
- private static TaskAttribute createAttribute(TaskData data, TracAttribute tracAttribute, Object[] values) {
- return createAttribute(data, tracAttribute, values, false);
- }
-
- @Override
- public RepositoryResponse postTaskData(TaskRepository repository, TaskData taskData,
- Set<TaskAttribute> oldAttributes, IProgressMonitor monitor) throws CoreException {
- try {
- TracTicket ticket = TracTaskDataHandler.getTracTicket(repository, taskData);
- ITracClient server = connector.getClientManager().getTracClient(repository);
- if (taskData.isNew()) {
- int id = server.createTicket(ticket, monitor);
- return new RepositoryResponse(ResponseKind.TASK_CREATED, id + ""); //$NON-NLS-1$
- } else {
- String newComment = ""; //$NON-NLS-1$
- TaskAttribute newCommentAttribute = taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW);
- if (newCommentAttribute != null) {
- newComment = newCommentAttribute.getValue();
- }
- server.updateTicket(ticket, newComment, monitor);
- return new RepositoryResponse(ResponseKind.TASK_UPDATED, ticket.getId() + ""); //$NON-NLS-1$
- }
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- // TODO catch TracException
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- }
-
- @Override
- public boolean initializeTaskData(TaskRepository repository, TaskData data, ITaskMapping initializationData,
- IProgressMonitor monitor) throws CoreException {
- try {
- ITracClient client = connector.getClientManager().getTracClient(repository);
- client.updateAttributes(monitor, false);
- createDefaultAttributes(data, client, false);
- return true;
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- // TODO catch TracException
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- }
- }
-
- @Override
- public boolean initializeSubTaskData(TaskRepository repository, TaskData taskData, TaskData parentTaskData,
- IProgressMonitor monitor) throws CoreException {
- initializeTaskData(repository, taskData, null, monitor);
- TaskAttribute blockingAttribute = taskData.getRoot().getMappedAttribute(ATTRIBUTE_BLOCKING);
- if (blockingAttribute == null) {
- throw new CoreException(new RepositoryStatus(repository, IStatus.ERROR, TracCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_REPOSITORY, "The repository does not support subtasks")); //$NON-NLS-1$
- }
-
- TaskMapper mapper = new TaskMapper(taskData);
- mapper.merge(new TaskMapper(parentTaskData));
- mapper.setDescription(""); //$NON-NLS-1$
- mapper.setSummary(""); //$NON-NLS-1$
- blockingAttribute.setValue(parentTaskData.getTaskId());
- TaskAttribute blockedByAttribute = taskData.getRoot().getMappedAttribute(ATTRIBUTE_BLOCKED_BY);
- if (blockedByAttribute != null) {
- blockedByAttribute.clearValues();
- }
- return true;
- }
-
- @Override
- public boolean canInitializeSubTaskData(TaskRepository taskRepository, ITask task) {
- return Boolean.parseBoolean(task.getAttribute(TracRepositoryConnector.TASK_KEY_SUPPORTS_SUBTASKS));
- }
-
-// /**
-// * Updates attributes of <code>taskData</code> from <code>ticket</code>.
-// */
-// public void updateTaskDataFromTicket(TaskData taskData, TracTicket ticket, ITracClient client) {
-// DefaultTaskSchema schema = new DefaultTaskSchema(taskData);
-// if (ticket.getValue(Key.SUMMARY) != null) {
-// schema.setSummary(ticket.getValue(Key.SUMMARY));
-// }
-//
-// if (TracRepositoryConnector.isCompleted(ticket.getValue(Key.STATUS))) {
-// schema.setCompletionDate(ticket.getLastChanged());
-// } else {
-// schema.setCompletionDate(null);
-// }
-//
-// String priority = ticket.getValue(Key.PRIORITY);
-// TracPriority[] tracPriorities = client.getPriorities();
-// schema.setPriority(TracRepositoryConnector.getTaskPriority(priority, tracPriorities));
-//
-// if (ticket.getValue(Key.TYPE) != null) {
-// TaskKind taskKind = TracRepositoryConnector.TaskKind.fromType(ticket.getValue(Key.TYPE));
-// schema.setTaskKind((taskKind != null) ? taskKind.toString() : ticket.getValue(Key.TYPE));
-// }
-//
-// if (ticket.getCreated() != null) {
-// schema.setCreationDate(ticket.getCreated());
-// }
-//
-// if (ticket.getCustomValue(TracTaskDataHandler.ATTRIBUTE_BLOCKING) != null) {
-// taskData.addAttribute(ATTRIBUTE_BLOCKED_BY, new TaskAttribute(ATTRIBUTE_BLOCKED_BY, "Blocked by", true));
-// }
-// }
-
- @Override
- public TaskAttributeMapper getAttributeMapper(TaskRepository taskRepository) {
- return new TracAttributeMapper(taskRepository);
- }
-
- public boolean supportsSubtasks(TaskData taskData) {
- return taskData.getRoot().getAttribute(ATTRIBUTE_BLOCKED_BY) != null;
- }
-
- public static TracTicket getTracTicket(TaskRepository repository, TaskData data) throws InvalidTicketException,
- CoreException {
- TracTicket ticket = (data.isNew()) ? new TracTicket() : new TracTicket(
- TracRepositoryConnector.getTicketId(data.getTaskId()));
-
- Collection<TaskAttribute> attributes = data.getRoot().getAttributes().values();
- for (TaskAttribute attribute : attributes) {
- if (TracAttributeMapper.isInternalAttribute(attribute)) {
- // ignore
- } else if (!attribute.getMetaData().isReadOnly()) {
- ticket.putValue(attribute.getId(), attribute.getValue());
- }
- }
-
- // set cc value
- StringBuilder sb = new StringBuilder();
- List<String> removeValues = TracRepositoryConnector.getAttributeValues(data, TracAttributeMapper.REMOVE_CC);
- List<String> values = TracRepositoryConnector.getAttributeValues(data, TaskAttribute.USER_CC);
- for (String user : values) {
- if (!removeValues.contains(user)) {
- if (sb.length() > 0) {
- sb.append(","); //$NON-NLS-1$
- }
- sb.append(user);
- }
- }
- if (TracRepositoryConnector.getAttributeValue(data, TracAttributeMapper.NEW_CC).length() > 0) {
- if (sb.length() > 0) {
- sb.append(","); //$NON-NLS-1$
- }
- sb.append(TracRepositoryConnector.getAttributeValue(data, TracAttributeMapper.NEW_CC));
- }
- if (Boolean.TRUE.equals(TracRepositoryConnector.getAttributeValue(data, TaskAttribute.ADD_SELF_CC))) {
- if (sb.length() > 0) {
- sb.append(","); //$NON-NLS-1$
- }
- sb.append(repository.getUserName());
- }
- ticket.putBuiltinValue(Key.CC, sb.toString());
-
- ticket.putValue("owner", TracRepositoryConnector.getAttributeValue(data, TaskAttribute.USER_ASSIGNED)); //$NON-NLS-1$
-
- TaskAttribute operationAttribute = data.getRoot().getMappedAttribute(TaskAttribute.OPERATION);
- if (operationAttribute != null) {
- TaskOperation operation = TaskOperation.createFrom(operationAttribute);
- String action = operation.getOperationId();
- if (!"leave".equals(action)) { //$NON-NLS-1$
- if ("accept".equals(action)) { //$NON-NLS-1$
- ticket.putValue("status", TracRepositoryConnector.TaskStatus.ASSIGNED.toStatusString()); //$NON-NLS-1$
- } else if ("resolve".equals(action)) { //$NON-NLS-1$
- ticket.putValue("status", TracRepositoryConnector.TaskStatus.CLOSED.toStatusString()); //$NON-NLS-1$
- ticket.putValue("resolution", TracRepositoryConnector.getAttributeValue(data, //$NON-NLS-1$
- TaskAttribute.RESOLUTION));
- } else if ("reopen".equals(action)) { //$NON-NLS-1$
- ticket.putValue("status", TracRepositoryConnector.TaskStatus.REOPENED.toStatusString()); //$NON-NLS-1$
- ticket.putValue("resolution", ""); //$NON-NLS-1$ //$NON-NLS-2$
- } else if ("reassign".equals(action)) { //$NON-NLS-1$
- ticket.putValue("status", TracRepositoryConnector.TaskStatus.NEW.toStatusString()); //$NON-NLS-1$
- }
- }
- }
-
- return ticket;
- }
-
- @Override
- public void migrateTaskData(TaskRepository taskRepository, TaskData taskData) {
- int version = 0;
- if (taskData.getVersion() != null) {
- try {
- version = Integer.parseInt(taskData.getVersion());
- } catch (NumberFormatException e) {
- // ignore
- }
- }
-
- if (version < 1) {
- TaskAttribute root = taskData.getRoot();
- List<TaskAttribute> attributes = new ArrayList<TaskAttribute>(root.getAttributes().values());
- for (TaskAttribute attribute : attributes) {
- if (TaskAttribute.TYPE_OPERATION.equals(attribute.getMetaData().getType())
- && "reassign".equals(attribute.getValue())) { //$NON-NLS-1$
- root.removeAttribute(attribute.getId());
- } else if (TaskAttribute.OPERATION.equals(attribute.getId())) {
- attribute.getMetaData().setType(TaskAttribute.TYPE_OPERATION);
- } else if (TracAttributeMapper.NEW_CC.equals(attribute.getId())) {
- attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT).setReadOnly(false);
- } else {
- TracAttribute tracAttribute = TracAttribute.getByTracKey(attribute.getId());
- if (tracAttribute != null) {
- attribute.getMetaData().setType(tracAttribute.getType());
- attribute.getMetaData().setKind(tracAttribute.getKind());
- attribute.getMetaData().setReadOnly(tracAttribute.isReadOnly());
- }
- }
- }
- if (root.getAttribute(TracAttributeMapper.REMOVE_CC) == null) {
- root.createAttribute(TracAttributeMapper.REMOVE_CC);
- }
- if (root.getAttribute(TaskAttribute.COMMENT_NEW) == null) {
- root.createAttribute(TaskAttribute.COMMENT_NEW)
- .getMetaData()
- .setType(TaskAttribute.TYPE_LONG_RICH_TEXT)
- .setReadOnly(false);
- }
- }
- if (version < 2) {
- List<TaskAttribute> attributes = new ArrayList<TaskAttribute>(taskData.getRoot().getAttributes().values());
- for (TaskAttribute attribute : attributes) {
- if (!TracAttributeMapper.isInternalAttribute(attribute)) {
- TaskAttributeMetaData metaData = attribute.getMetaData();
- metaData.putValue(TRAC_KEY, attribute.getId());
- if (metaData.getType() == null) {
- metaData.setType(TaskAttribute.TYPE_SHORT_TEXT);
- }
- }
- }
- taskData.setVersion(TASK_DATA_VERSION);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskMapper.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskMapper.java
deleted file mode 100644
index 0d4942046..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskMapper.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core;
-
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector.TaskKind;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskMapper extends TaskMapper {
-
- private final ITracClient client;
-
- public TracTaskMapper(TaskData taskData, ITracClient client) {
- super(taskData);
- this.client = client;
- }
-
-// @Override
-// public boolean applyTo(ITask task) {
-// boolean changed = false;
-// if (hasChanges(task.getCompletionDate(), TaskAttribute.DATE_COMPLETION)) {
-// task.setCompletionDate(getCompletionDate());
-// changed = true;
-// }
-// if (hasChanges(task.getCreationDate(), TaskAttribute.DATE_CREATION)) {
-// task.setCreationDate(getCreationDate());
-// changed = true;
-// }
-// if (hasChanges(task.getModificationDate(), TaskAttribute.DATE_MODIFICATION)) {
-// task.setModificationDate(getModificationDate());
-// changed = true;
-// }
-// if (hasChanges(task.getDueDate(), TaskAttribute.DATE_DUE)) {
-// task.setDueDate(getDueDate());
-// changed = true;
-// }
-// if (hasChanges(task.getOwner(), TaskAttribute.USER_ASSIGNED)) {
-// task.setOwner(getOwner());
-// changed = true;
-// }
-// if (hasChanges(task.getPriority(), TaskAttribute.PRIORITY)) {
-// if (getPriorityLevel() != null) {
-// task.setPriority(getPriorityLevel().toString());
-// } else {
-// task.setPriority(PriorityLevel.getDefault().toString());
-// }
-// changed = true;
-// }
-// if (hasChanges(task.getSummary(), TaskAttribute.SUMMARY)) {
-// task.setSummary(getSummary());
-// changed = true;
-// }
-// if (hasChanges(task.getTaskKey(), TaskAttribute.TASK_KEY)) {
-// task.setTaskKey(getTaskKey());
-// changed = true;
-// }
-// if (hasChanges(task.getTaskKind(), TaskAttribute.TASK_KIND)) {
-// task.setTaskKind(getTaskKind());
-// changed = true;
-// }
-// if (hasChanges(task.getUrl(), TaskAttribute.TASK_URL)) {
-// task.setUrl(getTaskUrl());
-// changed = true;
-// }
-// return changed;
-// }
-//
-// @Override
-// public boolean hasChanges(ITask task) {
-// boolean changed = false;
-// changed |= hasChanges(task.getCompletionDate(), TaskAttribute.DATE_COMPLETION);
-// changed |= hasChanges(task.getCreationDate(), TaskAttribute.DATE_CREATION);
-// changed |= hasChanges(task.getModificationDate(), TaskAttribute.DATE_MODIFICATION);
-// changed |= hasChanges(task.getDueDate(), TaskAttribute.DATE_DUE);
-// changed |= hasChanges(task.getOwner(), TaskAttribute.USER_ASSIGNED);
-// changed |= hasChanges(task.getPriority(), TaskAttribute.PRIORITY);
-// changed |= hasChanges(task.getSummary(), TaskAttribute.SUMMARY);
-// changed |= hasChanges(task.getTaskKey(), TaskAttribute.TASK_KEY);
-// changed |= hasChanges(task.getTaskKind(), TaskAttribute.TASK_KIND);
-// changed |= hasChanges(task.getUrl(), TaskAttribute.TASK_URL);
-// return changed;
-// }
-//
-// private boolean hasChanges(Object value, String attributeKey) {
-// TaskData taskData = getTaskData();
-// TaskAttribute attribute = taskData.getRoot().getMappedAttribute(attributeKey);
-// if (attribute != null) {
-// if (TaskAttribute.TYPE_BOOLEAN.equals(attribute.getMetaData().getType())) {
-// return areNotEquals(value, taskData.getAttributeMapper().getBooleanValue(attribute));
-// } else if (TaskAttribute.TYPE_DATE.equals(attribute.getMetaData().getType())) {
-// return areNotEquals(value, taskData.getAttributeMapper().getDateValue(attribute));
-// } else if (TaskAttribute.TYPE_INTEGER.equals(attribute.getMetaData().getType())) {
-// return areNotEquals(value, taskData.getAttributeMapper().getIntegerValue(attribute));
-// } else if (TaskAttribute.PRIORITY.equals(attributeKey)) {
-// PriorityLevel priorityLevel = getPriorityLevel();
-// return areNotEquals(value, (priorityLevel != null) ? priorityLevel.toString() : getPriority());
-// } else if (TaskAttribute.TASK_KIND.equals(attributeKey)) {
-// return areNotEquals(value, getTaskKind());
-// } else {
-// return areNotEquals(value, taskData.getAttributeMapper().getValue(attribute));
-// }
-// }
-// return false;
-// }
-//
-// private boolean areNotEquals(Object existingProperty, Object newProperty) {
-// return (existingProperty != null) ? !existingProperty.equals(newProperty) : newProperty != null;
-// }
-
- @Override
- public PriorityLevel getPriorityLevel() {
- if (client != null) {
- String priority = getPriority();
- TracPriority[] tracPriorities = client.getPriorities();
- return TracRepositoryConnector.getTaskPriority(priority, tracPriorities);
- }
- return null;
- }
-
- @Override
- public String getTaskKind() {
- String tracTaskKind = super.getTaskKind();
- TaskKind taskKind = TaskKind.fromType(tracTaskKind);
- return (taskKind != null) ? taskKind.toString() : tracTaskKind;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracWikiHandler.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracWikiHandler.java
deleted file mode 100644
index e38e04a45..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracWikiHandler.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.client.AbstractWikiHandler;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracWikiClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPage;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPageInfo;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Xiaoyang Guan
- */
-public class TracWikiHandler extends AbstractWikiHandler {
-
- private final TracRepositoryConnector connector;
-
- public TracWikiHandler(TracRepositoryConnector connector) {
- this.connector = connector;
- }
-
- @Override
- public String[] downloadAllPageNames(TaskRepository repository, IProgressMonitor monitor) throws CoreException {
- monitor.beginTask(Messages.TracWikiHandler_Download_Wiki_Page_Names, IProgressMonitor.UNKNOWN);
- try {
- String[] names = getTracWikiClient(repository).getAllWikiPageNames(monitor);
- return names;
- } catch (TracException e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public TracWikiPage getWikiPage(TaskRepository repository, String pageName, IProgressMonitor monitor)
- throws CoreException {
- monitor.beginTask(Messages.TracWikiHandler_Download_Wiki_Page, IProgressMonitor.UNKNOWN);
- try {
- TracWikiPage page = getTracWikiClient(repository).getWikiPage(pageName, monitor);
- return page;
- } catch (TracException e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public void postWikiPage(TaskRepository repository, TracWikiPage newPage, IProgressMonitor monitor)
- throws CoreException {
- monitor.beginTask(Messages.TracWikiHandler_Upload_Wiki_Page, IProgressMonitor.UNKNOWN);
- try {
- String pageName = newPage.getPageInfo().getPageName();
- String content = newPage.getContent();
- Map<String, Object> attributes = new HashMap<String, Object>();
- attributes.put("comment", newPage.getPageInfo().getComment()); //$NON-NLS-1$
- attributes.put("author", newPage.getPageInfo().getAuthor()); //$NON-NLS-1$
- boolean success = getTracWikiClient(repository).putWikipage(pageName, content, attributes, monitor);
- if (success) {
- return;
- } else {
- throw new CoreException(TracCorePlugin.toStatus(new TracException(
- "Failed to upload wiki page. No further information available."), repository)); //$NON-NLS-1$
- }
- } catch (TracException e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public TracWikiPageInfo[] getPageHistory(TaskRepository repository, String pageName, IProgressMonitor monitor)
- throws CoreException {
- monitor.beginTask(Messages.TracWikiHandler_Retrieve_Wiki_Page_History, IProgressMonitor.UNKNOWN);
- try {
- TracWikiPageInfo[] versions = getTracWikiClient(repository).getWikiPageInfoAllVersions(pageName, monitor);
- return versions;
- } catch (TracException e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- } finally {
- monitor.done();
- }
- }
-
- private ITracWikiClient getTracWikiClient(TaskRepository repository) throws TracException {
- ITracClient client = connector.getClientManager().getTracClient(repository);
- if (client instanceof ITracWikiClient) {
- return (ITracWikiClient) client;
- } else {
- throw new TracException("The access mode of " + repository.toString() //$NON-NLS-1$
- + " does not support Wiki page editting."); //$NON-NLS-1$
- }
- }
-
- @Override
- public String getWikiUrl(TaskRepository repository) {
- return repository.getRepositoryUrl() + ITracClient.WIKI_URL;
- }
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java
deleted file mode 100644
index 2079244bd..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.Proxy;
-import java.net.URL;
-
-import org.apache.commons.httpclient.Cookie;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.eclipse.mylyn.internal.trac.core.model.TracComponent;
-import org.eclipse.mylyn.internal.trac.core.model.TracMilestone;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSeverity;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketField;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketResolution;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketStatus;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketType;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class AbstractTracClient implements ITracClient {
-
- protected static final String USER_AGENT = "TracConnector"; //$NON-NLS-1$
-
- private static final String LOGIN_COOKIE_NAME = "trac_auth"; //$NON-NLS-1$
-
- protected final String repositoryUrl;
-
- protected final Version version;
-
- protected final AbstractWebLocation location;
-
- protected TracClientData data;
-
- public AbstractTracClient(URL repositoryUrl, Version version, String username, String password, Proxy proxy) {
- this.repositoryUrl = repositoryUrl.toString();
- this.version = version;
-
- this.location = null;
-
- this.data = new TracClientData();
- }
-
- public AbstractTracClient(AbstractWebLocation location, Version version) {
- this.location = location;
- this.version = version;
- this.repositoryUrl = location.getUrl();
-
- this.data = new TracClientData();
- }
-
- protected HttpClient createHttpClient() {
- HttpClient httpClient = new HttpClient();
- httpClient.setHttpConnectionManager(WebUtil.getConnectionManager());
- httpClient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
- WebUtil.configureHttpClient(httpClient, USER_AGENT);
- return httpClient;
- }
-
- public Version getVersion() {
- return version;
- }
-
- protected boolean credentialsValid(AuthenticationCredentials credentials) {
- return credentials != null && credentials.getUserName().length() > 0;
- }
-
- protected void authenticateAccountManager(HttpClient httpClient, HostConfiguration hostConfiguration,
- AuthenticationCredentials credentials, IProgressMonitor monitor) throws IOException, TracLoginException {
- PostMethod post = new PostMethod(WebUtil.getRequestPath(repositoryUrl + LOGIN_URL));
- post.setFollowRedirects(false);
- String formToken = getFormToken(httpClient);
- NameValuePair[] data = { new NameValuePair("referer", ""), //$NON-NLS-1$ //$NON-NLS-2$
- new NameValuePair("user", credentials.getUserName()), //$NON-NLS-1$
- new NameValuePair("password", credentials.getPassword()), new NameValuePair("__FORM_TOKEN", formToken) }; //$NON-NLS-1$ //$NON-NLS-2$
-
- post.setRequestBody(data);
- try {
- int code = WebUtil.execute(httpClient, hostConfiguration, post, monitor);
- // code should be a redirect in case of success
- if (code == HttpURLConnection.HTTP_OK) {
- throw new TracLoginException();
- }
- } finally {
- post.releaseConnection();
- }
- }
-
- private String getFormToken(HttpClient httpClient) {
- Cookie[] cookies = httpClient.getState().getCookies();
- for (Cookie cookie : cookies) {
- if ("trac_form_token".equals(cookie.getName())) { //$NON-NLS-1$
- return cookie.getValue();
- }
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Check if authentication cookie has been set.
- *
- * @throws TracLoginException
- * thrown if the cookie has not been set
- */
- protected void validateAuthenticationState(HttpClient httpClient) throws TracLoginException {
- Cookie[] cookies = httpClient.getState().getCookies();
- for (Cookie cookie : cookies) {
- if (LOGIN_COOKIE_NAME.equals(cookie.getName())) {
- return;
- }
- }
-
- throw new TracLoginException();
- }
-
- public TracComponent[] getComponents() {
- return (data.components != null) ? data.components.toArray(new TracComponent[0]) : null;
- }
-
- public TracMilestone[] getMilestones() {
- return (data.milestones != null) ? data.milestones.toArray(new TracMilestone[0]) : null;
- }
-
- public TracPriority[] getPriorities() {
- return (data.priorities != null) ? data.priorities.toArray(new TracPriority[0]) : null;
- }
-
- public TracSeverity[] getSeverities() {
- return (data.severities != null) ? data.severities.toArray(new TracSeverity[0]) : null;
- }
-
- public TracTicketField[] getTicketFields() {
- return (data.ticketFields != null) ? data.ticketFields.toArray(new TracTicketField[0]) : null;
- }
-
- public TracTicketResolution[] getTicketResolutions() {
- return (data.ticketResolutions != null) ? data.ticketResolutions.toArray(new TracTicketResolution[0]) : null;
- }
-
- public TracTicketStatus[] getTicketStatus() {
- return (data.ticketStatus != null) ? data.ticketStatus.toArray(new TracTicketStatus[0]) : null;
- }
-
- public TracTicketType[] getTicketTypes() {
- return (data.ticketTypes != null) ? data.ticketTypes.toArray(new TracTicketType[0]) : null;
- }
-
- public TracVersion[] getVersions() {
- return (data.versions != null) ? data.versions.toArray(new TracVersion[0]) : null;
- }
-
- public boolean hasAttributes() {
- return (data.lastUpdate != 0);
- }
-
- public void updateAttributes(IProgressMonitor monitor, boolean force) throws TracException {
- if (!hasAttributes() || force) {
- updateAttributes(monitor);
- data.lastUpdate = System.currentTimeMillis();
- }
- }
-
- public abstract void updateAttributes(IProgressMonitor monitor) throws TracException;
-
- public void setData(TracClientData data) {
- this.data = data;
- }
-
- public String[] getDefaultTicketResolutions() {
- return new String[] { "fixed", "invalid", "wontfix", "duplicate", "worksforme" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- }
-
- public String[] getDefaultTicketActions(String status) {
- if ("new".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "resolve", "reassign", "accept" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- } else if ("assigned".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "resolve", "reassign" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- } else if ("reopened".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "resolve", "reassign" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- } else if ("closed".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "reopen" }; //$NON-NLS-1$ //$NON-NLS-2$
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractWikiHandler.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractWikiHandler.java
deleted file mode 100644
index c3c325e39..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractWikiHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.client;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPage;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPageInfo;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-
-/**
- * @author Xiaoyang Guan
- */
-public abstract class AbstractWikiHandler {
-
- public abstract String[] downloadAllPageNames(TaskRepository repository, IProgressMonitor monitor)
- throws CoreException;
-
- public abstract String getWikiUrl(TaskRepository repository);
-
- public abstract TracWikiPage getWikiPage(TaskRepository repository, String pageName, IProgressMonitor monitor)
- throws CoreException;
-
- public abstract void postWikiPage(TaskRepository repository, TracWikiPage page, IProgressMonitor monitor)
- throws CoreException;
-
- public abstract TracWikiPageInfo[] getPageHistory(TaskRepository repository, String pageName,
- IProgressMonitor monitor) throws CoreException;
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java
deleted file mode 100644
index 32a19f691..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-import java.io.InputStream;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.model.TracComponent;
-import org.eclipse.mylyn.internal.trac.core.model.TracMilestone;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSeverity;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketField;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketResolution;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketStatus;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketType;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-
-/**
- * Defines the requirements for classes that provide remote access to Trac repositories.
- *
- * @author Steffen Pingel
- */
-public interface ITracClient {
-
- public enum Version {
- XML_RPC, TRAC_0_9;
-
- public static Version fromVersion(String version) {
- try {
- return Version.valueOf(version);
- } catch (IllegalArgumentException e) {
- return null;
- }
- }
-
- @Override
- public String toString() {
- switch (this) {
- case TRAC_0_9:
- return "Web (Trac 0.9 or 0.10)"; //$NON-NLS-1$
- case XML_RPC:
- return "XML-RPC Plugin (Rev. " + TracXmlRpcClient.REQUIRED_REVISION + ")"; //$NON-NLS-1$ //$NON-NLS-2$
- default:
- return null;
- }
- }
-
- }
-
- public static final String CHARSET = "UTF-8"; //$NON-NLS-1$
-
- public static final String TIME_ZONE = "UTC"; //$NON-NLS-1$
-
- public static final String LOGIN_URL = "/login"; //$NON-NLS-1$
-
- public static final String QUERY_URL = "/query?format=tab"; //$NON-NLS-1$
-
- public static final String TICKET_URL = "/ticket/"; //$NON-NLS-1$
-
- public static final String NEW_TICKET_URL = "/newticket"; //$NON-NLS-1$
-
- public static final String CUSTOM_QUERY_URL = "/query"; //$NON-NLS-1$
-
- public static final String TICKET_ATTACHMENT_URL = "/attachment/ticket/"; //$NON-NLS-1$
-
- public static final String DEFAULT_USERNAME = "anonymous"; //$NON-NLS-1$
-
- public static final String WIKI_URL = "/wiki/"; //$NON-NLS-1$
-
- public static final String REPORT_URL = "/report/"; //$NON-NLS-1$
-
- public static final String CHANGESET_URL = "/changeset/"; //$NON-NLS-1$
-
- public static final String REVISION_LOG_URL = "/log/"; //$NON-NLS-1$
-
- public static final String MILESTONE_URL = "/milestone/"; //$NON-NLS-1$
-
- public static final String BROWSER_URL = "/browser/"; //$NON-NLS-1$
-
- public static final String ATTACHMENT_URL = "/attachment/ticket/"; //$NON-NLS-1$
-
- /**
- * Gets ticket with <code>id</code> from repository.
- *
- * @param id
- * the id of the ticket to get
- * @param monitor
- * TODO
- * @return the ticket
- * @throws TracException
- * thrown in case of a connection error
- */
- TracTicket getTicket(int id, IProgressMonitor monitor) throws TracException;
-
- /**
- * Returns the access type.
- */
- Version getVersion();
-
- /**
- * Queries tickets from repository. All found tickets are added to <code>result</code>.
- *
- * @param query
- * the search criteria
- * @param result
- * the list of found tickets
- * @param monitor
- * TODO
- * @throws TracException
- * thrown in case of a connection error
- */
- void search(TracSearch query, List<TracTicket> result, IProgressMonitor monitor) throws TracException;
-
- /**
- * Validates the repository connection.
- *
- * @throws TracException
- * thrown in case of a connection error
- */
- void validate(IProgressMonitor monitor) throws TracException;
-
- /**
- * Returns true, if the repository details are cached. If this method returns true, invoking
- * <tt>updateAttributes(monitor, false)</tt> will return without opening a connection.
- *
- * @see #updateAttributes(IProgressMonitor, boolean)
- */
- boolean hasAttributes();
-
- /**
- * Updates cached repository details: milestones, versions etc.
- *
- * @throws TracException
- * thrown in case of a connection error
- */
- void updateAttributes(IProgressMonitor monitor, boolean force) throws TracException;
-
- TracComponent[] getComponents();
-
- TracTicketField[] getTicketFields();
-
- TracMilestone[] getMilestones();
-
- TracPriority[] getPriorities();
-
- TracSeverity[] getSeverities();
-
- TracTicketResolution[] getTicketResolutions();
-
- TracTicketStatus[] getTicketStatus();
-
- TracTicketType[] getTicketTypes();
-
- TracVersion[] getVersions();
-
- InputStream getAttachmentData(int ticketId, String filename, IProgressMonitor monitor) throws TracException;
-
- void putAttachmentData(int ticketId, String name, String description, InputStream source, IProgressMonitor monitor)
- throws TracException;
-
- void deleteAttachment(int ticketId, String filename, IProgressMonitor monitor) throws TracException;
-
- /**
- * @return the id of the created ticket
- */
- int createTicket(TracTicket ticket, IProgressMonitor monitor) throws TracException;
-
- void updateTicket(TracTicket ticket, String comment, IProgressMonitor monitor) throws TracException;
-
- /**
- * Sets a reference to the cached repository attributes.
- *
- * @param data
- * cached repository attributes
- */
- void setData(TracClientData data);
-
- Set<Integer> getChangedTickets(Date since, IProgressMonitor monitor) throws TracException;
-
- Date getTicketLastChanged(Integer id, IProgressMonitor monitor) throws TracException;
-
- void deleteTicket(int ticketId, IProgressMonitor monitor) throws TracException;
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracWikiClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracWikiClient.java
deleted file mode 100644
index ccf452a18..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracWikiClient.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.client;
-
-import java.io.InputStream;
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPage;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPageInfo;
-
-/**
- * Interface for the WikiRPC API provided by the Trac XML-RPC Plugin
- *
- * @author Xiaoyang Guan
- * @since 2.1
- */
-public interface ITracWikiClient {
-
- /**
- * Render arbitrary wiki text as HTML
- *
- * @param sourceText
- * wiki source text
- * @param monitor
- * TODO
- * @return The HTML-formatted string of the wiki text
- * @throws TracException
- * thrown in case of a connection error
- */
- public String wikiToHtml(String sourceText, IProgressMonitor monitor) throws TracException;
-
- /**
- * Validates the Trac XML-RPC WikiRPC API version of the repository
- *
- * @param monitor
- * TODO
- *
- * @throws TracException
- */
- public void validateWikiRpcApi(IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the list of the names of all pages from the repository
- *
- * @param monitor
- * TODO
- *
- * @return The array of the names of all Wiki pages
- * @throws TracException
- */
- public String[] getAllWikiPageNames(IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the latest version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param monitor
- * TODO
- * @return the Wiki page at the latest version
- * @throws TracException
- */
- public TracWikiPage getWikiPage(String pageName, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets a specific version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param version
- * the version of the Wiki page
- * @param monitor
- * TODO
- * @return the Wiki page at the specified version
- * @throws TracException
- */
- public TracWikiPage getWikiPage(String pageName, int version, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the information about the latest version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param monitor
- * TODO
- * @return The information about the page at the latest version
- * @throws TracException
- */
- public TracWikiPageInfo getWikiPageInfo(String pageName, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the information about the specified version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param version
- * the version of the Wiki page
- * @param monitor
- * TODO
- * @return The information about the page at the specified version
- * @throws TracException
- */
- public TracWikiPageInfo getWikiPageInfo(String pageName, int version, IProgressMonitor monitor)
- throws TracException;
-
- /**
- * Gets the information about all versions of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param monitor
- * TODO
- * @return array of TracWikiPageInfo that contains the information about all versions of the page
- * @throws TracException
- */
- public TracWikiPageInfo[] getWikiPageInfoAllVersions(String pageName, IProgressMonitor monitor)
- throws TracException;
-
- /**
- * Gets the raw Wiki text of the latest version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param monitor
- * TODO
- * @return the raw Wiki text of the page, latest version
- * @throws TracException
- */
- public String getWikiPageContent(String pageName, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the raw Wiki text of the specified version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param version
- * the version of the Wiki page
- * @param monitor
- * TODO
- * @return the raw Wiki text of the page, specified version
- * @throws TracException
- */
- public String getWikiPageContent(String pageName, int version, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the rendered HTML of the latest version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param monitor
- * TODO
- * @return the rendered HTML of the page, latest version
- * @throws TracException
- */
- public String getWikiPageHtml(String pageName, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the rendered HTML of the specified version of a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param version
- * the version of the Wiki page
- * @param monitor
- * TODO
- * @return the rendered HTML of the page, specified version
- * @throws TracException
- */
- public String getWikiPageHtml(String pageName, int version, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the list of information about all pages that have been modified since a given date from the repository
- *
- * @param since
- * the date from which the changes to the Wiki pages should be retrieved
- * @param monitor
- * TODO
- * @return array of TracWikiPageInfo that contains the information about the modified pages
- * @throws TracException
- */
- public TracWikiPageInfo[] getRecentWikiChanges(Date since, IProgressMonitor monitor) throws TracException;
-
- /**
- * Writes the content of a Wiki page to the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param content
- * the content of the page to be written
- * @param attributes
- * a Map used to set any Wiki-specific things, which the server can freely ignore or incorporate.
- * Standard names are:
- * <ul>
- * <li>comment (String): A comment for the page.
- * <li>minoredit (Boolean): This was a minor edit only.
- * </ul>
- * @param monitor
- * TODO
- * @return <code>true</code> if successful
- * @throws TracException
- */
- public boolean putWikipage(String pageName, String content, Map<String, Object> attributes, IProgressMonitor monitor)
- throws TracException;
-
- /**
- * Gets the list of the names of attachments on a given Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param monitor
- * TODO
- * @return an array of the names of attachments on the given page. Returns an empty array if the page has no
- * attachment or the page does not exist.
- * @throws TracException
- */
- public String[] listWikiPageAttachments(String pageName, IProgressMonitor monitor) throws TracException;
-
- /**
- * Gets the content of an attachment on a Wiki page from the repository
- *
- * @param pageName
- * the name of the Wiki page
- * @param fileName
- * the name of the attachment file
- * @param monitor
- * TODO
- * @return An InputStream of the content of the attachment
- * @throws TracException
- */
- public InputStream getWikiPageAttachmentData(String pageName, String fileName, IProgressMonitor monitor)
- throws TracException;
-
- /**
- * Attach a file to a Wiki page on the repository.
- * <p>
- * Note: The standard implementation of WikiRPC API for uploading attachments may ignore the description of the
- * attachment and always use <code>true</code> for <code>replace</code>
- *
- * @param pageName
- * the name of the Wiki page
- * @param fileName
- * the name of the file to be attached
- * @param description
- * the description of the attachment
- * @param in
- * An InputStream of the content of the attachment
- * @param replace
- * whether to overwrite an existing attachment with the same filename
- * @param monitor
- * TODO
- * @return The (possibly transformed) filename of the attachment. If <code>replace</code> is <code>true</code>, the
- * returned name is always the same as the argument <code>fileName</code>; if <code>replace</code> is
- * <code>false</code> and an attachment with name <code>fileName</code> already exists, a different name is
- * generated for the new attachment by the repository server and the new name is returned.
- * @throws TracException
- */
- public String putWikiPageAttachmentData(String pageName, String fileName, String description, InputStream in,
- boolean replace, IProgressMonitor monitor) throws TracException;
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidTicketException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidTicketException.java
deleted file mode 100644
index 99c5509c0..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidTicketException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-/**
- * Indicates an error while parsing a ticket retrieved from a repository.
- *
- * @author Steffen Pingel
- */
-public class InvalidTicketException extends TracException {
-
- private static final long serialVersionUID = 7716941243394876876L;
-
- public InvalidTicketException(String message) {
- super(message);
- }
-
- public InvalidTicketException() {
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidWikiPageException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidWikiPageException.java
deleted file mode 100644
index 88fac57d2..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/InvalidWikiPageException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.client;
-
-/**
- * Indicates an error while parsing the page info retrieved from a repository. If the requested page name or version
- * doesn't exist on the repository, the XmlRpcPlugin returns an Integer of 0 without generating any error info.
- *
- * @author Xiaoyang Guan
- */
-public class InvalidWikiPageException extends TracRemoteException {
-
- private static final long serialVersionUID = 7505355497334178587L;
-
- public InvalidWikiPageException() {
- }
-
- public InvalidWikiPageException(String message) {
- super(message);
- }
-
- public InvalidWikiPageException(Throwable cause) {
- super(cause);
- }
-
- public InvalidWikiPageException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java
deleted file mode 100644
index ebad0a702..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.core.client;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.trac.core.client.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TracWebClient_Updating_attributes;
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracClientData.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracClientData.java
deleted file mode 100644
index aab7451aa..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracClientData.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.trac.core.model.TracComponent;
-import org.eclipse.mylyn.internal.trac.core.model.TracMilestone;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSeverity;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketField;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketResolution;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketStatus;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketType;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-
-public class TracClientData implements Serializable {
-
- private static final long serialVersionUID = 6891961984245981675L;
-
- List<TracComponent> components;
-
- List<TracMilestone> milestones;
-
- List<TracPriority> priorities;
-
- List<TracSeverity> severities;
-
- List<TracTicketField> ticketFields;
-
- List<TracTicketResolution> ticketResolutions;
-
- List<TracTicketStatus> ticketStatus;
-
- List<TracTicketType> ticketTypes;
-
- List<TracVersion> versions;
-
- long lastUpdate;
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracException.java
deleted file mode 100644
index 32957d2ad..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-/**
- * Indicates an error during repository access.
- *
- * @author Steffen Pingel
- */
-public class TracException extends Exception {
-
- private static final long serialVersionUID = 1929614326467463462L;
-
- public TracException() {
- }
-
- public TracException(String message) {
- super(message);
- }
-
- public TracException(Throwable cause) {
- super(cause.getMessage(), cause);
- }
-
- public TracException(String message, Throwable cause) {
- super(message, cause);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracLoginException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracLoginException.java
deleted file mode 100644
index 88379ff4e..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracLoginException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-/**
- * Indicates an authentication error during login.
- *
- * @author Steffen Pingel
- */
-public class TracLoginException extends TracException {
-
- private static final long serialVersionUID = -6128773690643367414L;
-
- public TracLoginException() {
- }
-
- public TracLoginException(String message) {
- super(message);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracNoSuchMethodException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracNoSuchMethodException.java
deleted file mode 100644
index e0af4fe70..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracNoSuchMethodException.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-import org.apache.xmlrpc.XmlRpcException;
-
-public class TracNoSuchMethodException extends TracException {
-
- private static final long serialVersionUID = 9075003728286406705L;
-
- public TracNoSuchMethodException(XmlRpcException e) {
- super(e);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracPermissionDeniedException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracPermissionDeniedException.java
deleted file mode 100644
index f592338de..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracPermissionDeniedException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-/**
- * Indicates insufficient permissions to execute an operation.
- *
- * @author Steffen Pingel
- */
-public class TracPermissionDeniedException extends TracException {
-
- private static final long serialVersionUID = -6128773690643367414L;
-
- public TracPermissionDeniedException() {
- }
-
- public TracPermissionDeniedException(String message) {
- super(message);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracProxyAuthenticationException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracProxyAuthenticationException.java
deleted file mode 100644
index 3e2419299..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracProxyAuthenticationException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-public class TracProxyAuthenticationException extends TracException {
-
- private static final long serialVersionUID = 305145749259511429L;
-
- public TracProxyAuthenticationException(String message) {
- super(message);
- }
-
- public TracProxyAuthenticationException() {
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracRemoteException.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracRemoteException.java
deleted file mode 100644
index 4b7bc517a..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracRemoteException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-/**
- * Indicates that an exception on the repository side has been encountered while processing the request.
- *
- * @author Steffen Pingel
- */
-public class TracRemoteException extends TracException {
-
- private static final long serialVersionUID = -6761365344287289624L;
-
- public TracRemoteException() {
- }
-
- public TracRemoteException(String message) {
- super(message);
- }
-
- public TracRemoteException(Throwable cause) {
- super(cause);
- }
-
- public TracRemoteException(String message, Throwable cause) {
- super(message, cause);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java
deleted file mode 100644
index d22af7b64..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java
+++ /dev/null
@@ -1,795 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.client;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StreamTokenizer;
-import java.io.StringReader;
-import java.net.HttpURLConnection;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import javax.swing.text.html.HTML.Tag;
-
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.lang.StringEscapeUtils;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer;
-import org.eclipse.mylyn.commons.net.HtmlTag;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.commons.net.UnsupportedRequestException;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.eclipse.mylyn.commons.net.HtmlStreamTokenizer.Token;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.model.TracComponent;
-import org.eclipse.mylyn.internal.trac.core.model.TracMilestone;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
-import org.eclipse.mylyn.internal.trac.core.model.TracSeverity;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketResolution;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketStatus;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketType;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter.CompareOperator;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.internal.trac.core.util.TracHttpClientTransportFactory.TracHttpException;
-
-/**
- * Represents a Trac repository that is accessed through the Trac's query script and web interface.
- *
- * @author Steffen Pingel
- */
-public class TracWebClient extends AbstractTracClient {
-
- private class Request {
-
- private final String url;
-
- private HostConfiguration hostConfiguration;
-
- public Request(String url) {
- this.url = url;
- }
-
- public GetMethod execute(IProgressMonitor monitor) throws TracLoginException, IOException, TracHttpException {
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
-
- for (int attempt = 0; attempt < 2; attempt++) {
- // force authentication
- if (!authenticated) {
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- if (credentialsValid(credentials)) {
- authenticate(monitor);
- }
- }
-
- GetMethod method = new GetMethod(WebUtil.getRequestPath(url));
- int code;
- try {
- code = WebUtil.execute(httpClient, hostConfiguration, method, monitor);
- } catch (IOException e) {
- method.releaseConnection();
- throw e;
- }
-
- if (code == HttpURLConnection.HTTP_OK) {
- return method;
- } else if (code == HttpURLConnection.HTTP_UNAUTHORIZED || code == HttpURLConnection.HTTP_FORBIDDEN) {
- // login or re-authenticate due to an expired session
- method.releaseConnection();
- authenticated = false;
- authenticate(monitor);
- } else {
- throw new TracHttpException(code);
- }
- }
-
- throw new TracLoginException();
- }
-
- private void authenticate(IProgressMonitor monitor) throws TracLoginException, IOException {
- while (true) {
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- if (!credentialsValid(credentials)) {
- throw new TracLoginException();
- }
-
- // try standard basic/digest/ntlm authentication first
- AuthScope authScope = new AuthScope(WebUtil.getHost(repositoryUrl), WebUtil.getPort(repositoryUrl),
- null, AuthScope.ANY_SCHEME);
- httpClient.getState().setCredentials(authScope,
- WebUtil.getHttpClientCredentials(credentials, WebUtil.getHost(repositoryUrl)));
-
- GetMethod method = new GetMethod(WebUtil.getRequestPath(repositoryUrl + LOGIN_URL));
- method.setFollowRedirects(false);
- int code;
- try {
- code = WebUtil.execute(httpClient, hostConfiguration, method, monitor);
- if (needsReauthentication(code, monitor)) {
- continue;
- }
- } finally {
- method.releaseConnection();
- }
-
- // the expected return code is a redirect, anything else is suspicious
- if (code == HttpURLConnection.HTTP_OK) {
- // try form-based authentication via AccountManagerPlugin as a
- // fall-back
- authenticateAccountManager(httpClient, hostConfiguration, credentials, monitor);
- }
-
- validateAuthenticationState(httpClient);
-
- // success since no exception was thrown
- authenticated = true;
- break;
- }
- }
-
- private boolean needsReauthentication(int code, IProgressMonitor monitor) throws IOException,
- TracLoginException {
- final AuthenticationType authenticationType;
- if (code == HttpStatus.SC_UNAUTHORIZED || code == HttpStatus.SC_FORBIDDEN) {
- authenticationType = AuthenticationType.REPOSITORY;
- } else if (code == HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED) {
- authenticationType = AuthenticationType.PROXY;
- } else {
- return false;
- }
-
- try {
- location.requestCredentials(authenticationType, null, monitor);
- } catch (UnsupportedRequestException e) {
- throw new TracLoginException();
- }
-
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- return true;
- }
-
- }
-
- private final HttpClient httpClient;
-
- private boolean authenticated;
-
- public TracWebClient(AbstractWebLocation location, Version version) {
- super(location, version);
- this.httpClient = createHttpClient();
- }
-
- private synchronized GetMethod connect(String requestUrl, IProgressMonitor monitor) throws TracException {
- monitor = Policy.monitorFor(monitor);
- try {
- Request request = new Request(requestUrl);
- return request.execute(monitor);
- } catch (TracException e) {
- throw e;
- } catch (Exception e) {
- throw new TracException(e);
- }
- }
-
- /**
- * Fetches the web site of a single ticket and returns the Trac ticket.
- *
- * @param id
- * Trac id of ticket
- */
- public TracTicket getTicket(int id, IProgressMonitor monitor) throws TracException {
- GetMethod method = connect(repositoryUrl + ITracClient.TICKET_URL + id, monitor);
- try {
- TracTicket ticket = new TracTicket(id);
-
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in, method.getResponseCharSet()));
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(reader, null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.TD) {
- String headers = tag.getAttribute("headers"); //$NON-NLS-1$
- if ("h_component".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.COMPONENT, getText(tokenizer));
- } else if ("h_milestone".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.MILESTONE, getText(tokenizer));
- } else if ("h_priority".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.PRIORITY, getText(tokenizer));
- } else if ("h_severity".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.SEVERITY, getText(tokenizer));
- } else if ("h_version".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.VERSION, getText(tokenizer));
- } else if ("h_keywords".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.KEYWORDS, getText(tokenizer));
- } else if ("h_cc".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.CC, getText(tokenizer));
- } else if ("h_owner".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.OWNER, getText(tokenizer));
- } else if ("h_reporter".equals(headers)) { //$NON-NLS-1$
- ticket.putBuiltinValue(Key.REPORTER, getText(tokenizer));
- }
- // TODO handle custom fields
- } else if (tag.getTagType() == Tag.H2
- && ("summary".equals(tag.getAttribute("class")) || "summary searchable".equals(tag.getAttribute("class")))) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- ticket.putBuiltinValue(Key.SUMMARY, getText(tokenizer));
- } else if (tag.getTagType() == Tag.H3 && "status".equals(tag.getAttribute("class"))) { //$NON-NLS-1$ //$NON-NLS-2$
- String text = getStrongText(tokenizer);
- if (text.length() > 0) {
- // Trac 0.9 format: status / status (resolution)
- int i = text.indexOf(" ("); //$NON-NLS-1$
- if (i != -1) {
- ticket.putBuiltinValue(Key.STATUS, text.substring(0, i));
- ticket.putBuiltinValue(Key.RESOLUTION, text.substring(i + 2, text.length() - 1));
- } else {
- ticket.putBuiltinValue(Key.STATUS, text);
- }
- }
- } else if (tag.getTagType() == Tag.SPAN) {
- String clazz = tag.getAttribute("class"); //$NON-NLS-1$
- if ("status".equals(clazz)) { //$NON-NLS-1$
- // Trac 0.10 format: (status type) / (status type: resolution)
- String text = getText(tokenizer);
- if (text.startsWith("(") && text.endsWith(")")) { //$NON-NLS-1$ //$NON-NLS-2$
- StringTokenizer t = new StringTokenizer(text.substring(1, text.length() - 1), " :"); //$NON-NLS-1$
- if (t.hasMoreTokens()) {
- ticket.putBuiltinValue(Key.STATUS, t.nextToken());
- }
- if (t.hasMoreTokens()) {
- ticket.putBuiltinValue(Key.TYPE, t.nextToken());
- }
- if (t.hasMoreTokens()) {
- ticket.putBuiltinValue(Key.RESOLUTION, t.nextToken());
- }
- }
- }
- }
- // TODO parse description
- }
- }
- } finally {
- in.close();
- }
-
- if (ticket.isValid() && ticket.getValue(Key.SUMMARY) != null) {
- return ticket;
- }
-
- throw new InvalidTicketException();
- } catch (IOException e) {
- throw new TracException(e);
- } catch (ParseException e) {
- throw new TracException(e);
- } finally {
- method.releaseConnection();
- }
- }
-
- public void search(TracSearch query, List<TracTicket> tickets, IProgressMonitor monitor) throws TracException {
- GetMethod method = connect(repositoryUrl + ITracClient.QUERY_URL + query.toUrl(), monitor);
- try {
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in, method.getResponseCharSet()));
- String line;
-
- Map<String, String> constantValues = getExactMatchValues(query);
-
- // first line contains names of returned ticket fields
- line = reader.readLine();
- if (line == null) {
- throw new InvalidTicketException();
- }
- StringTokenizer t = new StringTokenizer(line, "\t"); //$NON-NLS-1$
- Key[] fields = new Key[t.countTokens()];
- for (int i = 0; i < fields.length; i++) {
- fields[i] = Key.fromKey(t.nextToken());
- }
-
- // create a ticket for each following line of output
- while ((line = reader.readLine()) != null) {
- t = new StringTokenizer(line, "\t"); //$NON-NLS-1$
- TracTicket ticket = new TracTicket();
- for (int i = 0; i < fields.length && t.hasMoreTokens(); i++) {
- if (fields[i] != null) {
- try {
- if (fields[i] == Key.ID) {
- ticket.setId(Integer.parseInt(t.nextToken()));
- } else if (fields[i] == Key.TIME) {
- ticket.setCreated(TracUtil.parseDate(Integer.parseInt(t.nextToken())));
- } else if (fields[i] == Key.CHANGE_TIME) {
- ticket.setLastChanged(TracUtil.parseDate(Integer.parseInt(t.nextToken())));
- } else {
- ticket.putBuiltinValue(fields[i], parseTicketValue(t.nextToken()));
- }
- } catch (NumberFormatException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "Error parsing response: '" + line + "'", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- if (ticket.isValid()) {
- for (String key : constantValues.keySet()) {
- ticket.putValue(key, parseTicketValue(constantValues.get(key)));
- }
-
- tickets.add(ticket);
- }
- }
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new TracException(e);
- } finally {
- method.releaseConnection();
- }
- }
-
- /**
- * Trac has sepcial encoding rules for the returned output: None is represented by "--".
- */
- private String parseTicketValue(String value) {
- if ("--".equals(value)) { //$NON-NLS-1$
- return ""; //$NON-NLS-1$
- }
- return value;
- }
-
- /**
- * Extracts constant values from <code>query</code>. The Trac query script does not return fields that matched
- * exactly againt a single value.
- */
- private Map<String, String> getExactMatchValues(TracSearch query) {
- Map<String, String> values = new HashMap<String, String>();
- List<TracSearchFilter> filters = query.getFilters();
- for (TracSearchFilter filter : filters) {
- if (filter.getOperator() == CompareOperator.IS && filter.getValues().size() == 1) {
- values.put(filter.getFieldName(), filter.getValues().get(0));
- }
- }
- return values;
- }
-
- public void validate(IProgressMonitor monitor) throws TracException {
- GetMethod method = connect(repositoryUrl + "/", monitor); //$NON-NLS-1$
- try {
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in, method.getResponseCharSet()));
-
- boolean inFooter = false;
- boolean valid = false;
- String version = null;
-
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(reader, null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.DIV) {
- String id = tag.getAttribute("id"); //$NON-NLS-1$
- inFooter = !tag.isEndTag() && "footer".equals(id); //$NON-NLS-1$
- } else if (tag.getTagType() == Tag.STRONG && inFooter) {
- version = getText(tokenizer);
- } else if (tag.getTagType() == Tag.A) {
- String id = tag.getAttribute("id"); //$NON-NLS-1$
- if ("tracpowered".equals(id)) { //$NON-NLS-1$
- valid = true;
- }
- }
- }
- }
-
- if (version != null && !(version.startsWith("Trac 0.9") || version.startsWith("Trac 0.10"))) { //$NON-NLS-1$ //$NON-NLS-2$
- throw new TracException("The Trac version " + version //$NON-NLS-1$
- + " is unsupported. Please use version 0.9.x or 0.10.x."); //$NON-NLS-1$
- }
-
- if (!valid) {
- throw new TracException("Not a valid Trac repository"); //$NON-NLS-1$
- }
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new TracException(e);
- } catch (ParseException e) {
- throw new TracException(e);
- } finally {
- method.releaseConnection();
- }
- }
-
- @Override
- public void updateAttributes(IProgressMonitor monitor) throws TracException {
- monitor.beginTask(Messages.TracWebClient_Updating_attributes, IProgressMonitor.UNKNOWN);
-
- GetMethod method = connect(repositoryUrl + ITracClient.CUSTOM_QUERY_URL, monitor);
- try {
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in, method.getResponseCharSet()));
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(reader, null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
-
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.SCRIPT) {
- String text = getText(tokenizer).trim();
- if (text.startsWith("var properties=")) { //$NON-NLS-1$
- parseAttributes(text);
- }
- }
- }
- }
-
- addResolutionAndStatus();
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new TracException(e);
- } catch (ParseException e) {
- throw new TracException(e);
- } finally {
- method.releaseConnection();
- }
- }
-
- enum AttributeState {
- INIT, IN_LIST, IN_ATTRIBUTE_KEY, IN_ATTRIBUTE_VALUE, IN_ATTRIBUTE_VALUE_LIST
- };
-
- /**
- * Parses the JavaScript code from the query page to extract repository configuration.
- */
- private void parseAttributes(String text) throws IOException {
- StreamTokenizer t = new StreamTokenizer(new StringReader(text));
- t.quoteChar('"');
-
- AttributeFactory attributeFactory = null;
- String attributeType = null;
-
- AttributeState state = AttributeState.INIT;
- int tokenType;
- while ((tokenType = t.nextToken()) != StreamTokenizer.TT_EOF) {
- switch (tokenType) {
- case StreamTokenizer.TT_WORD:
- if (state == AttributeState.IN_LIST) {
- if ("component".equals(t.sval)) { //$NON-NLS-1$
- data.components = new ArrayList<TracComponent>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.components.add(new TracComponent(value));
- }
- };
- } else if ("milestone".equals(t.sval)) { //$NON-NLS-1$
- data.milestones = new ArrayList<TracMilestone>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.milestones.add(new TracMilestone(value));
- }
- };
- } else if ("priority".equals(t.sval)) { //$NON-NLS-1$
- data.priorities = new ArrayList<TracPriority>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.priorities.add(new TracPriority(value, data.priorities.size() + 1));
- }
- };
- } else if ("resolution".equals(t.sval)) { //$NON-NLS-1$
- data.ticketResolutions = new ArrayList<TracTicketResolution>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.ticketResolutions.add(new TracTicketResolution(value,
- data.ticketResolutions.size() + 1));
- }
- };
- } else if ("severity".equals(t.sval)) { //$NON-NLS-1$
- data.severities = new ArrayList<TracSeverity>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.severities.add(new TracSeverity(value, data.severities.size() + 1));
- }
- };
- } else if ("status".equals(t.sval)) { //$NON-NLS-1$
- data.ticketStatus = new ArrayList<TracTicketStatus>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.ticketStatus.add(new TracTicketStatus(value, data.ticketStatus.size() + 1));
- }
- };
- } else if ("type".equals(t.sval)) { //$NON-NLS-1$
- data.ticketTypes = new ArrayList<TracTicketType>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.ticketTypes.add(new TracTicketType(value, data.ticketTypes.size() + 1));
- }
- };
- } else if ("version".equals(t.sval)) { //$NON-NLS-1$
- data.versions = new ArrayList<TracVersion>();
- attributeFactory = new AttributeFactory() {
- public void addAttribute(String value) {
- data.versions.add(new TracVersion(value));
- }
- };
- } else {
- attributeFactory = null;
- }
- } else if (state == AttributeState.IN_ATTRIBUTE_KEY) {
- attributeType = t.sval;
- }
- break;
- case '"':
- if (state == AttributeState.IN_ATTRIBUTE_VALUE_LIST && "options".equals(attributeType)) { //$NON-NLS-1$
- if (attributeFactory != null) {
- attributeFactory.addAttribute(t.sval);
- }
- }
- break;
- case ':':
- if (state == AttributeState.IN_ATTRIBUTE_KEY) {
- state = AttributeState.IN_ATTRIBUTE_VALUE;
- }
- break;
- case ',':
- if (state == AttributeState.IN_ATTRIBUTE_VALUE) {
- state = AttributeState.IN_ATTRIBUTE_KEY;
- }
- break;
- case '[':
- if (state == AttributeState.IN_ATTRIBUTE_VALUE) {
- state = AttributeState.IN_ATTRIBUTE_VALUE_LIST;
- }
- break;
- case ']':
- if (state == AttributeState.IN_ATTRIBUTE_VALUE_LIST) {
- state = AttributeState.IN_ATTRIBUTE_VALUE;
- }
- break;
- case '{':
- if (state == AttributeState.INIT) {
- state = AttributeState.IN_LIST;
- } else if (state == AttributeState.IN_LIST) {
- state = AttributeState.IN_ATTRIBUTE_KEY;
- } else {
- throw new IOException("Error parsing attributes: unexpected token '{'"); //$NON-NLS-1$
- }
- break;
- case '}':
- if (state == AttributeState.IN_ATTRIBUTE_KEY || state == AttributeState.IN_ATTRIBUTE_VALUE) {
- state = AttributeState.IN_LIST;
- } else if (state == AttributeState.IN_LIST) {
- state = AttributeState.INIT;
- } else {
- throw new IOException("Error parsing attributes: unexpected token '}'"); //$NON-NLS-1$
- }
- break;
- }
- }
- }
-
- public void updateAttributesNewTicketPage(IProgressMonitor monitor) throws TracException {
- monitor.beginTask(Messages.TracWebClient_Updating_attributes, IProgressMonitor.UNKNOWN);
-
- GetMethod method = connect(repositoryUrl + ITracClient.NEW_TICKET_URL, monitor);
- try {
- InputStream in = WebUtil.getResponseBodyAsStream(method, monitor);
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in, method.getResponseCharSet()));
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(reader, null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
-
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.SELECT) {
- String name = tag.getAttribute("id"); //$NON-NLS-1$
- if ("component".equals(name)) { //$NON-NLS-1$
- List<String> values = getOptionValues(tokenizer);
- data.components = new ArrayList<TracComponent>(values.size());
- for (String value : values) {
- data.components.add(new TracComponent(value));
- }
- } else if ("milestone".equals(name)) { //$NON-NLS-1$
- List<String> values = getOptionValues(tokenizer);
- data.milestones = new ArrayList<TracMilestone>(values.size());
- for (String value : values) {
- data.milestones.add(new TracMilestone(value));
- }
- } else if ("priority".equals(name)) { //$NON-NLS-1$
- List<String> values = getOptionValues(tokenizer);
- data.priorities = new ArrayList<TracPriority>(values.size());
- for (int i = 0; i < values.size(); i++) {
- data.priorities.add(new TracPriority(values.get(i), i + 1));
- }
- } else if ("severity".equals(name)) { //$NON-NLS-1$
- List<String> values = getOptionValues(tokenizer);
- data.severities = new ArrayList<TracSeverity>(values.size());
- for (int i = 0; i < values.size(); i++) {
- data.severities.add(new TracSeverity(values.get(i), i + 1));
- }
- } else if ("type".equals(name)) { //$NON-NLS-1$
- List<String> values = getOptionValues(tokenizer);
- data.ticketTypes = new ArrayList<TracTicketType>(values.size());
- for (int i = 0; i < values.size(); i++) {
- data.ticketTypes.add(new TracTicketType(values.get(i), i + 1));
- }
- } else if ("version".equals(name)) { //$NON-NLS-1$
- List<String> values = getOptionValues(tokenizer);
- data.versions = new ArrayList<TracVersion>(values.size());
- for (String value : values) {
- data.versions.add(new TracVersion(value));
- }
- }
- }
- }
- }
-
- addResolutionAndStatus();
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new TracException(e);
- } catch (ParseException e) {
- throw new TracException(e);
- } finally {
- method.releaseConnection();
- }
- }
-
- private void addResolutionAndStatus() {
- data.ticketResolutions = new ArrayList<TracTicketResolution>(5);
- data.ticketResolutions.add(new TracTicketResolution("fixed", 1)); //$NON-NLS-1$
- data.ticketResolutions.add(new TracTicketResolution("invalid", 2)); //$NON-NLS-1$
- data.ticketResolutions.add(new TracTicketResolution("wontfix", 3)); //$NON-NLS-1$
- data.ticketResolutions.add(new TracTicketResolution("duplicate", 4)); //$NON-NLS-1$
- data.ticketResolutions.add(new TracTicketResolution("worksforme", 5)); //$NON-NLS-1$
-
- data.ticketStatus = new ArrayList<TracTicketStatus>(4);
- data.ticketStatus.add(new TracTicketStatus("new", 1)); //$NON-NLS-1$
- data.ticketStatus.add(new TracTicketStatus("assigned", 2)); //$NON-NLS-1$
- data.ticketStatus.add(new TracTicketStatus("reopened", 3)); //$NON-NLS-1$
- data.ticketStatus.add(new TracTicketStatus("closed", 4)); //$NON-NLS-1$
- }
-
- private List<String> getOptionValues(HtmlStreamTokenizer tokenizer) throws IOException, ParseException {
- List<String> values = new ArrayList<String>();
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == Tag.OPTION && !tag.isEndTag()) {
- String value = getText(tokenizer).trim();
- if (value.length() > 0) {
- values.add(value);
- }
- } else {
- return values;
- }
- }
- }
- return values;
- }
-
- private String getText(HtmlStreamTokenizer tokenizer) throws IOException, ParseException {
- StringBuilder sb = new StringBuilder();
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TEXT) {
- sb.append(token.toString().trim());
- sb.append(" "); //$NON-NLS-1$
- } else if (token.getType() == Token.COMMENT) {
- // ignore
- } else {
- break;
- }
- }
- return StringEscapeUtils.unescapeHtml(sb.toString().trim());
- }
-
- /**
- * Looks for a <code>strong</code> tag and returns the text enclosed by the tag.
- */
- private String getStrongText(HtmlStreamTokenizer tokenizer) throws IOException, ParseException {
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG && ((HtmlTag) token.getValue()).getTagType() == Tag.STRONG) {
- return getText(tokenizer);
- } else if (token.getType() == Token.COMMENT) {
- // ignore
- } else if (token.getType() == Token.TEXT) {
- // ignore
- } else {
- break;
- }
- }
- return ""; //$NON-NLS-1$
- }
-
- public InputStream getAttachmentData(int id, String filename, IProgressMonitor monitor) throws TracException {
- GetMethod method = connect(repositoryUrl + ITracClient.ATTACHMENT_URL + id + "/" + filename + "?format=raw", //$NON-NLS-1$ //$NON-NLS-2$
- monitor);
- try {
- // the receiver is responsible for closing the stream which will
- // release the connection
- return method.getResponseBodyAsStream();
- } catch (IOException e) {
- method.releaseConnection();
- throw new TracException(e);
- }
- }
-
- public void putAttachmentData(int id, String name, String description, InputStream in, IProgressMonitor monitor)
- throws TracException {
- throw new TracException("Unsupported operation"); //$NON-NLS-1$
- }
-
- public void deleteAttachment(int ticketId, String filename, IProgressMonitor monitor) throws TracException {
- throw new TracException("Unsupported operation"); //$NON-NLS-1$
- }
-
- public int createTicket(TracTicket ticket, IProgressMonitor monitor) throws TracException {
- throw new TracException("Unsupported operation"); //$NON-NLS-1$
- }
-
- public void updateTicket(TracTicket ticket, String comment, IProgressMonitor monitor) throws TracException {
- throw new TracException("Unsupported operation"); //$NON-NLS-1$
- }
-
- public Set<Integer> getChangedTickets(Date since, IProgressMonitor monitor) throws TracException {
- return null;
- }
-
- private interface AttributeFactory {
-
- void addAttribute(String value);
-
- }
-
- public Date getTicketLastChanged(Integer id, IProgressMonitor monitor) {
- throw new UnsupportedOperationException();
- }
-
- public void deleteTicket(int ticketId, IProgressMonitor monitor) throws TracException {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java
deleted file mode 100644
index 9533e0b18..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracXmlRpcClient.java
+++ /dev/null
@@ -1,1043 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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
- * Xiaoyang Guan - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.client;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TimeZone;
-
-import org.apache.commons.httpclient.Credentials;
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.HttpState;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.auth.AuthScheme;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.auth.BasicScheme;
-import org.apache.commons.httpclient.auth.DigestScheme;
-import org.apache.commons.httpclient.methods.HeadMethod;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.mylyn.commons.net.UnsupportedRequestException;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.model.TracAttachment;
-import org.eclipse.mylyn.internal.trac.core.model.TracComment;
-import org.eclipse.mylyn.internal.trac.core.model.TracComponent;
-import org.eclipse.mylyn.internal.trac.core.model.TracMilestone;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSeverity;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketField;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketResolution;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketStatus;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketType;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPage;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPageInfo;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.core.util.HttpMethodInterceptor;
-import org.eclipse.mylyn.internal.trac.core.util.TracHttpClientTransportFactory;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.internal.trac.core.util.TracXmlRpcClientRequest;
-import org.eclipse.mylyn.internal.trac.core.util.TracHttpClientTransportFactory.TracHttpException;
-
-/**
- * Represents a Trac repository that is accessed through the Trac XmlRpcPlugin.
- *
- * @author Steffen Pingel
- * @author Xiaoyang Guan
- */
-public class TracXmlRpcClient extends AbstractTracClient implements ITracWikiClient {
-
- private class XmlRpcRequest {
-
- private final String method;
-
- private final Object[] parameters;
-
- public XmlRpcRequest(String method, Object[] parameters) {
- this.method = method;
- this.parameters = parameters;
- }
-
- public Object execute(IProgressMonitor monitor) throws TracException {
- try {
- // first attempt
- return executeCallInternal(monitor);
- } catch (TracPermissionDeniedException e) {
- if (accountMangerAuthenticationFailed) {
- // do not try again if this has failed in the past since it
- // is more likely that XML_RPC permissions have not been set
- throw e;
- }
-
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- if (!credentialsValid(credentials)) {
- throw e;
- }
-
- // try form-based authentication via AccountManagerPlugin as a
- // fall-back
- HostConfiguration hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- try {
- authenticateAccountManager(httpClient, hostConfiguration, credentials, monitor);
- } catch (TracLoginException loginException) {
- // caused by wrong user name or password
- throw loginException;
- } catch (IOException ignore) {
- accountMangerAuthenticationFailed = true;
- throw e;
- }
-
- try {
- validateAuthenticationState(httpClient);
- } catch (TracLoginException ignore) {
- // most likely form based authentication is not supported by
- // repository
- accountMangerAuthenticationFailed = true;
- throw e;
- }
-
- // the authentication information is available through the shared state in httpClient
- }
-
- // second attempt
- return executeCallInternal(monitor);
- }
-
- private Object executeCallInternal(IProgressMonitor monitor) throws TracException {
- try {
- if (isTracd && digestScheme != null) {
- probeAuthenticationScheme(monitor);
- }
-
- TracXmlRpcClientRequest request = new TracXmlRpcClientRequest(xmlrpc.getClientConfig(), method,
- parameters, monitor);
- return xmlrpc.execute(request);
- } catch (TracHttpException e) {
- if (e.code == HttpStatus.SC_UNAUTHORIZED) {
- digestScheme = null;
- throw new TracLoginException();
- } else if (e.code == HttpStatus.SC_FORBIDDEN) {
- digestScheme = null;
- throw new TracPermissionDeniedException();
- } else if (e.code == HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED) {
- throw new TracProxyAuthenticationException();
- } else {
- throw new TracException(e);
- }
- } catch (XmlRpcException e) {
- if (e.code == NO_SUCH_METHOD_ERROR) {
- throw new TracNoSuchMethodException(e);
- } else {
- throw new TracRemoteException(e);
- }
- } catch (OperationCanceledException e) {
- throw e;
- } catch (Exception e) {
- throw new TracException(e);
- }
- }
-
- }
-
- public static final String XMLRPC_URL = "/xmlrpc"; //$NON-NLS-1$
-
- public static final String REQUIRED_REVISION = "1950"; //$NON-NLS-1$
-
- public static final int REQUIRED_EPOCH = 0;
-
- public static final int REQUIRED_MAJOR = 0;
-
- public static final int REQUIRED_MINOR = 1;
-
- private static final int NO_SUCH_METHOD_ERROR = 1;
-
- private static final int LATEST_VERSION = -1;
-
- public static final int REQUIRED_WIKI_RPC_VERSION = 2;
-
- private XmlRpcClient xmlrpc;
-
- private TracHttpClientTransportFactory factory;
-
- private int majorAPIVersion = -1;
-
- private int minorAPIVersion = -1;
-
- private int epochAPIVersion = -1;
-
- private boolean accountMangerAuthenticationFailed;
-
- private XmlRpcClientConfigImpl config;
-
- private final HttpClient httpClient;
-
- private boolean probed;
-
- private volatile DigestScheme digestScheme;
-
- private final AuthScope authScope;
-
- private boolean isTracd;
-
- public TracXmlRpcClient(AbstractWebLocation location, Version version) {
- super(location, version);
- this.httpClient = createHttpClient();
- this.authScope = new AuthScope(WebUtil.getHost(repositoryUrl), WebUtil.getPort(repositoryUrl), null,
- AuthScope.ANY_SCHEME);
- }
-
- public synchronized XmlRpcClient getClient() throws TracException {
- if (xmlrpc == null) {
- config = new XmlRpcClientConfigImpl();
- config.setEncoding(ITracClient.CHARSET);
- config.setTimeZone(TimeZone.getTimeZone(ITracClient.TIME_ZONE));
- config.setContentLengthOptional(false);
- config.setConnectionTimeout(WebUtil.getConnectionTimeout());
- config.setReplyTimeout(WebUtil.getSocketTimeout());
-
- xmlrpc = new XmlRpcClient();
- xmlrpc.setConfig(config);
-
- factory = new TracHttpClientTransportFactory(xmlrpc, httpClient);
- factory.setLocation(location);
- factory.setInterceptor(new HttpMethodInterceptor() {
- public void processRequest(HttpMethod method) {
- DigestScheme scheme = digestScheme;
- if (scheme != null) {
- Credentials creds = httpClient.getState().getCredentials(authScope);
- if (creds != null) {
- method.getHostAuthState().setAuthScheme(digestScheme);
- method.getHostAuthState().setAuthRequested(true);
- }
- }
- }
-
- public void processResponse(HttpMethod method) {
- AuthScheme authScheme = method.getHostAuthState().getAuthScheme();
- if (authScheme instanceof DigestScheme) {
- digestScheme = (DigestScheme) authScheme;
- }
- }
- });
- xmlrpc.setTransportFactory(factory);
- }
-
- // update configuration with latest values
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- config.setServerURL(getXmlRpcUrl(credentials));
- if (credentialsValid(credentials)) {
- Credentials creds = WebUtil.getHttpClientCredentials(credentials, WebUtil.getHost(location.getUrl()));
- httpClient.getState().setCredentials(authScope, creds);
- } else {
- httpClient.getState().clearCredentials();
- }
-
- return xmlrpc;
- }
-
- private URL getXmlRpcUrl(AuthenticationCredentials credentials) throws TracException {
- try {
- String location = repositoryUrl.toString();
- if (credentialsValid(credentials)) {
- location += LOGIN_URL;
- }
- location += XMLRPC_URL;
-
- return new URL(location);
- } catch (Exception e) {
- throw new TracException(e);
- }
- }
-
- private void probeAuthenticationScheme(IProgressMonitor monitor) throws TracException {
- AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.REPOSITORY);
- if (!credentialsValid(credentials)) {
- return;
- }
-
- HostConfiguration hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- HeadMethod method = new HeadMethod(getXmlRpcUrl(credentials).toString());
- try {
- // execute without any credentials set
- int result = WebUtil.execute(httpClient, hostConfiguration, method, new HttpState(), monitor);
- if (result == HttpStatus.SC_UNAUTHORIZED || result == HttpStatus.SC_FORBIDDEN) {
- AuthScheme authScheme = method.getHostAuthState().getAuthScheme();
- if (authScheme instanceof DigestScheme) {
- this.digestScheme = (DigestScheme) authScheme;
- } else if (authScheme instanceof BasicScheme) {
- httpClient.getParams().setAuthenticationPreemptive(true);
- }
-
- Header header = method.getResponseHeader("Server"); //$NON-NLS-1$
- isTracd = (header != null && header.getValue().startsWith("tracd")); //$NON-NLS-1$
-
-// Header header = method.getResponseHeader("WWW-Authenticate");
-// if (header != null) {
-// if (header.getValue().startsWith("Basic")) {
-// httpClient.getParams().setAuthenticationPreemptive(true);
-// } else if (header.getValue().startsWith("Digest")) {
-// DigestScheme scheme = new DigestScheme();
-// try {
-// scheme.processChallenge(header.getValue());
-// this.digestScheme = scheme;
-// } catch (MalformedChallengeException e) {
-// // ignore
-// }
-// }
-// }
- }
- } catch (IOException e) {
- // ignore
- } finally {
- method.releaseConnection();
- }
- }
-
- private Object call(IProgressMonitor monitor, String method, Object... parameters) throws TracException {
- monitor = Policy.monitorFor(monitor);
- while (true) {
- if (!probed) {
- try {
- probeAuthenticationScheme(monitor);
- } finally {
- probed = true;
- }
- }
-
- getClient();
-
- try {
- XmlRpcRequest request = new XmlRpcRequest(method, parameters);
- return request.execute(monitor);
- } catch (TracLoginException e) {
- try {
- location.requestCredentials(AuthenticationType.REPOSITORY, null, monitor);
- } catch (UnsupportedRequestException ignored) {
- throw e;
- }
- } catch (TracPermissionDeniedException e) {
- try {
- location.requestCredentials(AuthenticationType.REPOSITORY, null, monitor);
- } catch (UnsupportedRequestException ignored) {
- throw e;
- }
- } catch (TracProxyAuthenticationException e) {
- try {
- location.requestCredentials(AuthenticationType.PROXY, null, monitor);
- } catch (UnsupportedRequestException ignored) {
- throw e;
- }
- }
- }
- }
-
- private Object[] multicall(IProgressMonitor monitor, Map<String, Object>... calls) throws TracException {
- Object[] result = (Object[]) call(monitor, "system.multicall", new Object[] { calls }); //$NON-NLS-1$
- for (Object item : result) {
- try {
- checkForException(item);
- } catch (XmlRpcException e) {
- throw new TracRemoteException(e);
- } catch (Exception e) {
- throw new TracException(e);
- }
- }
- return result;
- }
-
- private void checkForException(Object result) throws NumberFormatException, XmlRpcException {
- if (result instanceof Map<?, ?>) {
- Map<?, ?> exceptionData = (Map<?, ?>) result;
- if (exceptionData.containsKey("faultCode") && exceptionData.containsKey("faultString")) { //$NON-NLS-1$ //$NON-NLS-2$
- throw new XmlRpcException(Integer.parseInt(exceptionData.get("faultCode").toString()), //$NON-NLS-1$
- (String) exceptionData.get("faultString")); //$NON-NLS-1$
- }
- }
- }
-
- private Map<String, Object> createMultiCall(String methodName, Object... parameters) throws TracException {
- Map<String, Object> table = new HashMap<String, Object>();
- table.put("methodName", methodName); //$NON-NLS-1$
- table.put("params", parameters); //$NON-NLS-1$
- return table;
- }
-
- private Object getMultiCallResult(Object item) {
- return ((Object[]) item)[0];
- }
-
- public void validate(IProgressMonitor monitor) throws TracException {
- try {
- Object[] result = (Object[]) call(monitor, "system.getAPIVersion"); //$NON-NLS-1$
- if (result.length >= 3) {
- epochAPIVersion = (Integer) result[0];
- majorAPIVersion = (Integer) result[1];
- minorAPIVersion = (Integer) result[2];
- } else if (result.length >= 2) {
- epochAPIVersion = 0;
- majorAPIVersion = (Integer) result[0];
- minorAPIVersion = (Integer) result[1];
- } else {
- throw new TracException(
- "The API version is unsupported, please update your Trac XML-RPC Plugin to revision " //$NON-NLS-1$
- + REQUIRED_REVISION + " or later"); //$NON-NLS-1$
- }
- } catch (TracNoSuchMethodException e) {
- throw new TracException(
- "Required API calls are missing, please update your Trac XML-RPC Plugin to revision " //$NON-NLS-1$
- + REQUIRED_REVISION + " or later"); //$NON-NLS-1$
- }
-
- if (!isAPIVersionOrHigher(REQUIRED_EPOCH, REQUIRED_MAJOR, REQUIRED_MINOR, monitor)) {
- throw new TracException("The API version " + majorAPIVersion + "." + minorAPIVersion //$NON-NLS-1$ //$NON-NLS-2$
- + " is unsupported, please update your Trac XML-RPC Plugin to revision " + REQUIRED_REVISION //$NON-NLS-1$
- + " or later"); //$NON-NLS-1$
- }
- }
-
- private void updateAPIVersion(IProgressMonitor monitor) throws TracException {
- if (epochAPIVersion == -1 || majorAPIVersion == -1 || minorAPIVersion == -1) {
- validate(monitor);
- }
- }
-
- private boolean isAPIVersionOrHigher(int epoch, int major, int minor, IProgressMonitor monitor)
- throws TracException {
- updateAPIVersion(monitor);
- return (epochAPIVersion > epoch || (epochAPIVersion == epoch && majorAPIVersion > major || (majorAPIVersion == major && minorAPIVersion >= minor)));
- }
-
- public TracTicket getTicket(int id, IProgressMonitor monitor) throws TracException {
- Object[] result = (Object[]) call(monitor, "ticket.get", id); //$NON-NLS-1$
- TracTicket ticket = parseTicket(result);
-
- result = (Object[]) call(monitor, "ticket.changeLog", id, 0); //$NON-NLS-1$
- for (Object item : result) {
- ticket.addComment(parseChangeLogEntry((Object[]) item));
- }
-
- result = (Object[]) call(monitor, "ticket.listAttachments", id); //$NON-NLS-1$
- for (Object item : result) {
- ticket.addAttachment(parseAttachment((Object[]) item));
- }
-
- String[] actions = getActions(id, monitor);
- ticket.setActions(actions);
-
- updateAttributes(new NullProgressMonitor(), false);
- TracTicketResolution[] resolutions = getTicketResolutions();
- if (resolutions != null) {
- String[] resolutionStrings = new String[resolutions.length];
- for (int i = 0; i < resolutions.length; i++) {
- resolutionStrings[i] = resolutions[i].getName();
- }
- ticket.setResolutions(resolutionStrings);
- } else {
- ticket.setResolutions(getDefaultTicketResolutions());
- }
-
- return ticket;
- }
-
- private TracAttachment parseAttachment(Object[] entry) {
- TracAttachment attachment = new TracAttachment((String) entry[0]);
- attachment.setDescription((String) entry[1]);
- attachment.setSize((Integer) entry[2]);
- attachment.setCreated(parseDate(entry[3]));
- attachment.setAuthor((String) entry[4]);
- return attachment;
- }
-
- private TracComment parseChangeLogEntry(Object[] entry) {
- TracComment comment = new TracComment();
- comment.setCreated(parseDate(entry[0]));
- comment.setAuthor((String) entry[1]);
- comment.setField((String) entry[2]);
- comment.setOldValue((String) entry[3]);
- comment.setNewValue((String) entry[4]);
- return comment;
- }
-
- /* public for testing */
- @SuppressWarnings("unchecked")
- public List<TracTicket> getTickets(int[] ids, IProgressMonitor monitor) throws TracException {
- Map<String, Object>[] calls = new Map[ids.length];
- for (int i = 0; i < calls.length; i++) {
- calls[i] = createMultiCall("ticket.get", ids[i]); //$NON-NLS-1$
- }
-
- Object[] result = multicall(monitor, calls);
- assert result.length == ids.length;
-
- List<TracTicket> tickets = new ArrayList<TracTicket>(result.length);
- for (Object item : result) {
- Object[] ticketResult = (Object[]) getMultiCallResult(item);
- tickets.add(parseTicket(ticketResult));
- }
-
- return tickets;
- }
-
- @SuppressWarnings("unchecked")
- public void search(TracSearch query, List<TracTicket> tickets, IProgressMonitor monitor) throws TracException {
- // an empty query string is not valid, therefore prepend order
- Object[] result = (Object[]) call(monitor, "ticket.query", "order=id" + query.toQuery()); //$NON-NLS-1$ //$NON-NLS-2$
-
- Map<String, Object>[] calls = new Map[result.length];
- for (int i = 0; i < calls.length; i++) {
- calls[i] = createMultiCall("ticket.get", result[i]); //$NON-NLS-1$
- }
- result = multicall(monitor, calls);
-
- for (Object item : result) {
- Object[] ticketResult = (Object[]) getMultiCallResult(item);
- tickets.add(parseTicket(ticketResult));
- }
- }
-
- private TracTicket parseTicket(Object[] ticketResult) throws InvalidTicketException {
- TracTicket ticket = new TracTicket((Integer) ticketResult[0]);
- ticket.setCreated(parseDate(ticketResult[1]));
- ticket.setLastChanged(parseDate(ticketResult[2]));
- Map<?, ?> attributes = (Map<?, ?>) ticketResult[3];
- for (Object key : attributes.keySet()) {
- ticket.putValue(key.toString(), attributes.get(key).toString());
- }
- return ticket;
- }
-
- private Date parseDate(Object object) {
- if (object instanceof Date) {
- return (Date) object;
- } else if (object instanceof Integer) {
- return TracUtil.parseDate((Integer) object);
- }
- throw new ClassCastException("Unexpected object type for date: " + object.getClass()); //$NON-NLS-1$
- }
-
- @Override
- public synchronized void updateAttributes(IProgressMonitor monitor) throws TracException {
- monitor.beginTask("Updating attributes", 9); //$NON-NLS-1$
-
- Object[] result = getAttributes("ticket.component", monitor); //$NON-NLS-1$
- data.components = new ArrayList<TracComponent>(result.length);
- for (Object item : result) {
- data.components.add(parseComponent((Map<?, ?>) getMultiCallResult(item)));
- }
- advance(monitor, 1);
-
- result = getAttributes("ticket.milestone", monitor); //$NON-NLS-1$
- data.milestones = new ArrayList<TracMilestone>(result.length);
- for (Object item : result) {
- data.milestones.add(parseMilestone((Map<?, ?>) getMultiCallResult(item)));
- }
- advance(monitor, 1);
-
- List<TicketAttributeResult> attributes = getTicketAttributes("ticket.priority", monitor); //$NON-NLS-1$
- data.priorities = new ArrayList<TracPriority>(result.length);
- for (TicketAttributeResult attribute : attributes) {
- data.priorities.add(new TracPriority(attribute.name, attribute.value));
- }
- Collections.sort(data.priorities);
- advance(monitor, 1);
-
- attributes = getTicketAttributes("ticket.resolution", monitor); //$NON-NLS-1$
- data.ticketResolutions = new ArrayList<TracTicketResolution>(result.length);
- for (TicketAttributeResult attribute : attributes) {
- data.ticketResolutions.add(new TracTicketResolution(attribute.name, attribute.value));
- }
- Collections.sort(data.ticketResolutions);
- advance(monitor, 1);
-
- attributes = getTicketAttributes("ticket.severity", monitor); //$NON-NLS-1$
- data.severities = new ArrayList<TracSeverity>(result.length);
- for (TicketAttributeResult attribute : attributes) {
- data.severities.add(new TracSeverity(attribute.name, attribute.value));
- }
- Collections.sort(data.severities);
- advance(monitor, 1);
-
- boolean trac011 = isAPIVersionOrHigher(1, 0, 0, monitor);
- attributes = getTicketAttributes("ticket.status", trac011, monitor); //$NON-NLS-1$
- data.ticketStatus = new ArrayList<TracTicketStatus>(result.length);
- for (TicketAttributeResult attribute : attributes) {
- data.ticketStatus.add(new TracTicketStatus(attribute.name, attribute.value));
- }
- Collections.sort(data.ticketStatus);
- advance(monitor, 1);
-
- attributes = getTicketAttributes("ticket.type", monitor); //$NON-NLS-1$
- data.ticketTypes = new ArrayList<TracTicketType>(result.length);
- for (TicketAttributeResult attribute : attributes) {
- data.ticketTypes.add(new TracTicketType(attribute.name, attribute.value));
- }
- Collections.sort(data.ticketTypes);
- advance(monitor, 1);
-
- result = getAttributes("ticket.version", monitor); //$NON-NLS-1$
- data.versions = new ArrayList<TracVersion>(result.length);
- for (Object item : result) {
- data.versions.add(parseVersion((Map<?, ?>) getMultiCallResult(item)));
- }
- advance(monitor, 1);
-
- result = (Object[]) call(monitor, "ticket.getTicketFields"); //$NON-NLS-1$
- data.ticketFields = new ArrayList<TracTicketField>(result.length);
- for (Object item : result) {
- data.ticketFields.add(parseTicketField((Map<?, ?>) item));
- }
- advance(monitor, 1);
- }
-
- private void advance(IProgressMonitor monitor, int worked) {
- monitor.worked(worked);
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
-
- }
-
- private TracComponent parseComponent(Map<?, ?> result) {
- TracComponent component = new TracComponent((String) result.get("name")); //$NON-NLS-1$
- component.setOwner((String) result.get("owner")); //$NON-NLS-1$
- component.setDescription((String) result.get("description")); //$NON-NLS-1$
- return component;
- }
-
- private TracMilestone parseMilestone(Map<?, ?> result) {
- TracMilestone milestone = new TracMilestone((String) result.get("name")); //$NON-NLS-1$
- milestone.setCompleted(parseDate(result.get("completed"))); //$NON-NLS-1$
- milestone.setDue(parseDate(result.get("due"))); //$NON-NLS-1$
- milestone.setDescription((String) result.get("description")); //$NON-NLS-1$
- return milestone;
- }
-
- private TracVersion parseVersion(Map<?, ?> result) {
- TracVersion version = new TracVersion((String) result.get("name")); //$NON-NLS-1$
- version.setTime(parseDate(result.get("time"))); //$NON-NLS-1$
- version.setDescription((String) result.get("description")); //$NON-NLS-1$
- return version;
- }
-
- private TracTicketField parseTicketField(Map<?, ?> result) {
- TracTicketField field = new TracTicketField((String) result.get("name")); //$NON-NLS-1$
- field.setType(TracTicketField.Type.fromString((String) result.get("type"))); //$NON-NLS-1$
- field.setLabel((String) result.get("label")); //$NON-NLS-1$
- field.setDefaultValue((String) result.get("value")); //$NON-NLS-1$
- Object[] items = (Object[]) result.get("options"); //$NON-NLS-1$
- if (items != null) {
- String[] options = new String[items.length];
- for (int i = 0; i < items.length; i++) {
- options[i] = (String) items[i];
- }
- field.setOptions(options);
- }
- if (result.get("custom") != null) { //$NON-NLS-1$
- field.setCustom((Boolean) result.get("custom")); //$NON-NLS-1$
- }
- if (result.get("order") != null) { //$NON-NLS-1$
- field.setOrder((Integer) result.get("order")); //$NON-NLS-1$
- }
- if (result.get("optional") != null) { //$NON-NLS-1$
- field.setOptional((Boolean) result.get("optional")); //$NON-NLS-1$
- }
- if (result.get("width") != null) { //$NON-NLS-1$
- field.setWidth((Integer) result.get("width")); //$NON-NLS-1$
- }
- if (result.get("height") != null) { //$NON-NLS-1$
- field.setHeight((Integer) result.get("height")); //$NON-NLS-1$
- }
- return field;
- }
-
- @SuppressWarnings("unchecked")
- private Object[] getAttributes(String attributeType, IProgressMonitor monitor) throws TracException {
- Object[] ids = (Object[]) call(monitor, attributeType + ".getAll"); //$NON-NLS-1$
- Map<String, Object>[] calls = new Map[ids.length];
- for (int i = 0; i < calls.length; i++) {
- calls[i] = createMultiCall(attributeType + ".get", ids[i]); //$NON-NLS-1$
- }
-
- Object[] result = multicall(monitor, calls);
- assert result.length == ids.length;
-
- return result;
- }
-
- private List<TicketAttributeResult> getTicketAttributes(String attributeType, IProgressMonitor monitor)
- throws TracException {
- return getTicketAttributes(attributeType, false, monitor);
- }
-
- @SuppressWarnings("unchecked")
- private List<TicketAttributeResult> getTicketAttributes(String attributeType, boolean assignValues,
- IProgressMonitor monitor) throws TracException {
- // get list of attribute ids first
- Object[] ids = (Object[]) call(monitor, attributeType + ".getAll"); //$NON-NLS-1$
- // fetch all attributes in a single call
- Map<String, Object>[] calls = new Map[ids.length];
- for (int i = 0; i < calls.length; i++) {
- calls[i] = createMultiCall(attributeType + ".get", ids[i]); //$NON-NLS-1$
- }
-
- Object[] result = multicall(monitor, calls);
- assert result.length == ids.length;
-
- List<TicketAttributeResult> attributes = new ArrayList<TicketAttributeResult>(result.length);
- for (int i = 0; i < calls.length; i++) {
- try {
- TicketAttributeResult attribute = new TicketAttributeResult();
- attribute.name = (String) ids[i];
- Object value = getMultiCallResult(result[i]);
- if (assignValues) {
- attribute.value = i;
- } else {
- attribute.value = (value instanceof Integer) ? (Integer) value : Integer.parseInt((String) value);
- }
- attributes.add(attribute);
- } catch (ClassCastException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "Invalid response from Trac repository for attribute type: '" + attributeType + "'", e)); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (NumberFormatException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "Invalid response from Trac repository for attribute type: '" + attributeType + "'", e)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- return attributes;
- }
-
- public InputStream getAttachmentData(int ticketId, String filename, IProgressMonitor monitor) throws TracException {
- byte[] data = (byte[]) call(monitor, "ticket.getAttachment", ticketId, filename); //$NON-NLS-1$
- return new ByteArrayInputStream(data);
- }
-
- public void putAttachmentData(int ticketId, String filename, String description, InputStream in,
- IProgressMonitor monitor) throws TracException {
- byte[] data;
- try {
- data = readData(in, new NullProgressMonitor());
- } catch (IOException e) {
- throw new TracException(e);
- }
- call(monitor, "ticket.putAttachment", ticketId, filename, description, data, false); //$NON-NLS-1$
- }
-
- private byte[] readData(InputStream in, IProgressMonitor monitor) throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- try {
- byte[] buffer = new byte[512];
- while (true) {
- int count = in.read(buffer);
- if (count == -1) {
- return out.toByteArray();
- }
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
- out.write(buffer, 0, count);
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
- }
- } finally {
- try {
- in.close();
- } catch (IOException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TracCorePlugin.ID_PLUGIN,
- "Error closing attachment stream", e)); //$NON-NLS-1$
- }
- }
- }
-
- public void deleteAttachment(int ticketId, String filename, IProgressMonitor monitor) throws TracException {
- call(monitor, "ticket.deleteAttachment", ticketId, filename); //$NON-NLS-1$
- }
-
- private class TicketAttributeResult {
-
- String name;
-
- int value;
-
- }
-
- public int createTicket(TracTicket ticket, IProgressMonitor monitor) throws TracException {
- Map<String, String> attributes = ticket.getValues();
- String summary = attributes.remove(Key.SUMMARY.getKey());
- String description = attributes.remove(Key.DESCRIPTION.getKey());
- if (summary == null || description == null) {
- throw new InvalidTicketException();
- }
- if (isAPIVersionOrHigher(0, 0, 2, monitor)) {
- return (Integer) call(monitor, "ticket.create", summary, description, attributes, true); //$NON-NLS-1$
- } else {
- return (Integer) call(monitor, "ticket.create", summary, description, attributes); //$NON-NLS-1$
- }
- }
-
- public void updateTicket(TracTicket ticket, String comment, IProgressMonitor monitor) throws TracException {
- updateAPIVersion(monitor);
-
- Map<String, String> attributes = ticket.getValues();
- if (isAPIVersionOrHigher(0, 0, 2, monitor)) {
- call(monitor, "ticket.update", ticket.getId(), comment, attributes, true); //$NON-NLS-1$
- } else {
- call(monitor, "ticket.update", ticket.getId(), comment, attributes); //$NON-NLS-1$
- }
- }
-
- public Set<Integer> getChangedTickets(Date since, IProgressMonitor monitor) throws TracException {
- Object[] ids;
- ids = (Object[]) call(monitor, "ticket.getRecentChanges", since); //$NON-NLS-1$
- Set<Integer> result = new HashSet<Integer>();
- for (Object id : ids) {
- result.add((Integer) id);
- }
- return result;
- }
-
- public String[] getActions(int id, IProgressMonitor monitor) throws TracException {
- Object[] actions = (Object[]) call(monitor, "ticket.getAvailableActions", id); //$NON-NLS-1$
- String[] result = new String[actions.length];
- for (int i = 0; i < result.length; i++) {
- result[i] = (String) actions[i];
- }
- return result;
- }
-
- public Date getTicketLastChanged(Integer id, IProgressMonitor monitor) throws TracException {
- Object[] result = (Object[]) call(monitor, "ticket.get", id); //$NON-NLS-1$
- return parseDate(result[2]);
- }
-
- public void validateWikiRpcApi(IProgressMonitor monitor) throws TracException {
- if (((Integer) call(monitor, "wiki.getRPCVersionSupported")) < 2) { //$NON-NLS-1$
- validate(monitor);
- }
- }
-
- public String wikiToHtml(String sourceText, IProgressMonitor monitor) throws TracException {
- return (String) call(monitor, "wiki.wikiToHtml", sourceText); //$NON-NLS-1$
- }
-
- public String[] getAllWikiPageNames(IProgressMonitor monitor) throws TracException {
- Object[] result = (Object[]) call(monitor, "wiki.getAllPages"); //$NON-NLS-1$
- String[] wikiPageNames = new String[result.length];
- for (int i = 0; i < wikiPageNames.length; i++) {
- wikiPageNames[i] = (String) result[i];
- }
- return wikiPageNames;
- }
-
- public TracWikiPageInfo getWikiPageInfo(String pageName, IProgressMonitor monitor) throws TracException {
- return getWikiPageInfo(pageName, LATEST_VERSION, null);
- }
-
- public TracWikiPageInfo getWikiPageInfo(String pageName, int version, IProgressMonitor monitor)
- throws TracException {
- // Note: if an unexpected null value is passed to XmlRpcPlugin, XmlRpcClient will throw a TracRemoteException.
- // So, this null-parameter checking may be omitted if resorting to XmlRpcClient is more appropriate.
- if (pageName == null) {
- throw new IllegalArgumentException("Wiki page name cannot be null"); //$NON-NLS-1$
- }
-
- Object result = (version == LATEST_VERSION) ? call(monitor, "wiki.getPageInfo", pageName) // //$NON-NLS-1$
- : call(monitor, "wiki.getPageInfoVersion", pageName, version); //$NON-NLS-1$
- return parseWikiPageInfo(result);
- }
-
- @SuppressWarnings("unchecked")
- public TracWikiPageInfo[] getWikiPageInfoAllVersions(String pageName, IProgressMonitor monitor)
- throws TracException {
- TracWikiPageInfo latestVersion = getWikiPageInfo(pageName, null);
- Map<String, Object>[] calls = new Map[latestVersion.getVersion() - 1];
- for (int i = 0; i < calls.length; i++) {
- calls[i] = createMultiCall("wiki.getPageInfoVersion", pageName, i + 1); //$NON-NLS-1$
- }
-
- Object[] result = multicall(monitor, calls);
-
- TracWikiPageInfo[] versions = new TracWikiPageInfo[result.length + 1];
- for (int i = 0; i < result.length; i++) {
- Object pageInfoResult = getMultiCallResult(result[i]);
- versions[i] = parseWikiPageInfo(pageInfoResult);
- }
- versions[result.length] = latestVersion;
-
- return versions;
- }
-
- private TracWikiPageInfo parseWikiPageInfo(Object pageInfoResult) throws InvalidWikiPageException {
- // Note: Trac XML-RPC Plugin returns 0 (as Integer) if pageName or version doesn't exist,
- // and XmlRpcClient doesn't throw an Exception in this case
- if (pageInfoResult instanceof Map<?, ?>) {
- TracWikiPageInfo pageInfo = new TracWikiPageInfo();
- Map<?, ?> infoMap = (Map<?, ?>) pageInfoResult;
- pageInfo.setPageName((String) infoMap.get("name")); //$NON-NLS-1$
- pageInfo.setAuthor((String) infoMap.get("author")); //$NON-NLS-1$
- pageInfo.setLastModified(parseDate(infoMap.get("lastModified"))); //$NON-NLS-1$
- pageInfo.setVersion((Integer) infoMap.get("version")); //$NON-NLS-1$
- return pageInfo;
- } else {
- throw new InvalidWikiPageException("Wiki page name or version does not exist"); //$NON-NLS-1$
- }
- }
-
- public String getWikiPageContent(String pageName, IProgressMonitor monitor) throws TracException {
- return getWikiPageContent(pageName, LATEST_VERSION, null);
- }
-
- public String getWikiPageContent(String pageName, int version, IProgressMonitor monitor) throws TracException {
- // Note: if an unexpected null value is passed to XmlRpcPlugin, XmlRpcClient will throw a TracRemoteException.
- // So, this null-parameter checking may be omitted if resorting to XmlRpcClient is more appropriate.
- if (pageName == null) {
- throw new IllegalArgumentException("Wiki page name cannot be null"); //$NON-NLS-1$
- }
- if (version == LATEST_VERSION) {
- // XmlRpcClient throws a TracRemoteException if pageName or version doesn't exist
- return (String) call(monitor, "wiki.getPage", pageName); //$NON-NLS-1$
- } else {
- return (String) call(monitor, "wiki.getPageVersion", pageName, version); //$NON-NLS-1$
- }
- }
-
- public String getWikiPageHtml(String pageName, IProgressMonitor monitor) throws TracException {
- return getWikiPageHtml(pageName, LATEST_VERSION, null);
- }
-
- public String getWikiPageHtml(String pageName, int version, IProgressMonitor monitor) throws TracException {
- if (pageName == null) {
- throw new IllegalArgumentException("Wiki page name cannot be null"); //$NON-NLS-1$
- }
-
- if (version == LATEST_VERSION) {
- // XmlRpcClient throws a TracRemoteException if pageName or version doesn't exist
- return (String) call(monitor, "wiki.getPageHTML", pageName); //$NON-NLS-1$
- } else {
- return (String) call(monitor, "wiki.getPageHTMLVersion", pageName, version); //$NON-NLS-1$
- }
- }
-
- public TracWikiPageInfo[] getRecentWikiChanges(Date since, IProgressMonitor monitor) throws TracException {
- if (since == null) {
- throw new IllegalArgumentException("Date parameter cannot be null"); //$NON-NLS-1$
- }
-
- Object[] result = (Object[]) call(monitor, "wiki.getRecentChanges", since); //$NON-NLS-1$
- TracWikiPageInfo[] changes = new TracWikiPageInfo[result.length];
- for (int i = 0; i < result.length; i++) {
- changes[i] = parseWikiPageInfo(result[i]);
- }
- return changes;
- }
-
- public TracWikiPage getWikiPage(String pageName, IProgressMonitor monitor) throws TracException {
- return getWikiPage(pageName, LATEST_VERSION, null);
- }
-
- public TracWikiPage getWikiPage(String pageName, int version, IProgressMonitor monitor) throws TracException {
- TracWikiPage page = new TracWikiPage();
- page.setPageInfo(getWikiPageInfo(pageName, version, null));
- page.setContent(getWikiPageContent(pageName, version, null));
- page.setPageHTML(getWikiPageHtml(pageName, version, null));
- return page;
- }
-
- public boolean putWikipage(String pageName, String content, Map<String, Object> attributes, IProgressMonitor monitor)
- throws TracException {
- Boolean result = (Boolean) call(monitor, "wiki.putPage", pageName, content, attributes); //$NON-NLS-1$
- return result.booleanValue();
- }
-
- public String[] listWikiPageAttachments(String pageName, IProgressMonitor monitor) throws TracException {
- Object[] result = (Object[]) call(monitor, "wiki.listAttachments", pageName); //$NON-NLS-1$
- String[] attachments = new String[result.length];
- for (int i = 0; i < attachments.length; i++) {
- attachments[i] = (String) result[i];
- }
- return attachments;
- }
-
- public InputStream getWikiPageAttachmentData(String pageName, String fileName, IProgressMonitor monitor)
- throws TracException {
- String attachmentName = pageName + "/" + fileName; //$NON-NLS-1$
- byte[] data = (byte[]) call(monitor, "wiki.getAttachment", attachmentName); //$NON-NLS-1$
- return new ByteArrayInputStream(data);
- }
-
- /**
- * Attach a file to a Wiki page on the repository.
- * <p>
- * This implementation uses the wiki.putAttachmentEx() call, which provides a richer functionality specific to Trac.
- *
- * @param pageName
- * the name of the Wiki page
- * @param fileName
- * the name of the file to be attached
- * @param description
- * the description of the attachment
- * @param in
- * An InputStream of the content of the attachment
- * @param replace
- * whether to overwrite an existing attachment with the same filename
- * @return The (possibly transformed) filename of the attachment. If <code>replace</code> is <code>true</code>, the
- * returned name is always the same as the argument <code>fileName</code>; if <code>replace</code> is
- * <code>false</code> and an attachment with name <code>fileName</code> already exists, a number is appended
- * to the file name (before suffix) and the generated filename of the attachment is returned.
- * @throws TracException
- */
- public String putWikiPageAttachmentData(String pageName, String fileName, String description, InputStream in,
- boolean replace, IProgressMonitor monitor) throws TracException {
- byte[] data;
- try {
- data = readData(in, new NullProgressMonitor());
- } catch (IOException e) {
- throw new TracException(e);
- }
- return (String) call(monitor, "wiki.putAttachmentEx", pageName, fileName, description, data, replace); //$NON-NLS-1$
- }
-
- public void deleteTicket(int ticketId, IProgressMonitor monitor) throws TracException {
- call(monitor, "ticket.delete", ticketId); //$NON-NLS-1$
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/messages.properties b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/messages.properties
deleted file mode 100644
index 039a0bf78..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-TracWebClient_Updating_attributes=Updating attributes
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/messages.properties b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/messages.properties
deleted file mode 100644
index 94a9caf16..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/messages.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-TracAttachmentHandler_Uploading_attachment=Uploading attachment
-
-TracAttribute_Assigned_to=Assigned to:
-TracAttribute_CC=CC:
-TracAttribute_Component=Component:
-TracAttribute_Created=Created:
-TracAttribute_Description=Description:
-TracAttribute_ID=ID:
-TracAttribute_Keywords=Keywords:
-TracAttribute_Last_Modification=Last Modification:
-TracAttribute_Milestone=Milestone:
-TracAttribute_Priority=Priority:
-TracAttribute_Reporter=Reporter:
-TracAttribute_Resolution=Resolution:
-TracAttribute_Severity=Severity:
-TracAttribute_Status=Status:
-TracAttribute_Summary=Summary:
-TracAttribute_Type=Type:
-TracAttribute_Version=Version:
-
-TracCorePlugin_I_O_error_has_occured=I/O error has occured
-TracCorePlugin_Repository_URL_is_invalid=Repository URL is invalid
-TracCorePlugin_the_SERVER_RETURNED_an_UNEXPECTED_RESOPNSE=The server returned an unexpected response
-TracCorePlugin_Unexpected_error=Unexpected error
-TracCorePlugin_Unexpected_server_response_=Unexpected server response:
-
-TracRepositoryConnector_Getting_changed_tasks=Getting changed tasks
-TracRepositoryConnector_Querying_repository=Querying repository
-TracRepositoryConnector_TRAC_SUPPORTS_0_9_OR_0_10_THROUGH_WEB_AND_XML_RPC=Trac (supports 0.9 or 0.10 through Web and XML-RPC)
-
-TracWikiHandler_Download_Wiki_Page=Download Wiki Page
-TracWikiHandler_Download_Wiki_Page_Names=Download Wiki Page Names
-TracWikiHandler_Retrieve_Wiki_Page_History=Retrieve Wiki Page History
-TracWikiHandler_Upload_Wiki_Page=Upload Wiki Page
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracAttachment.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracAttachment.java
deleted file mode 100644
index 4519d5e0d..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracAttachment.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.util.Date;
-
-/**
- * @author Steffen Pingel
- */
-public class TracAttachment {
-
- private String author;
-
- private Date created;
-
- private String description;
-
- private String filename;
-
- int size;
-
- public TracAttachment(String filename) {
- this.filename = filename;
- }
-
- public String getAuthor() {
- return author;
- }
-
- public Date getCreated() {
- return created;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getFilename() {
- return filename;
- }
-
- public int getSize() {
- return size;
- }
-
- public void setAuthor(String author) {
- this.author = author;
- }
-
- public void setCreated(Date created) {
- this.created = created;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public void setFilename(String filename) {
- this.filename = filename;
- }
-
- public void setSize(int size) {
- this.size = size;
- }
-
- @Override
- public String toString() {
- return filename;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComment.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComment.java
deleted file mode 100644
index 1a87bae75..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.util.Date;
-
-/**
- * @author Steffen Pingel
- */
-public class TracComment {
-
- private String author;
-
- private Date created;
-
- private String field;
-
- private String newValue;
-
- private String oldValue;
-
- private boolean permanent;
-
- public TracComment() {
- }
-
- public String getAuthor() {
- return author;
- }
-
- public Date getCreated() {
- return created;
- }
-
- public String getField() {
- return field;
- }
-
- public String getNewValue() {
- return newValue;
- }
-
- public String getOldValue() {
- return oldValue;
- }
-
- public boolean isPermanent() {
- return permanent;
- }
-
- public void setAuthor(String author) {
- this.author = author;
- }
-
- public void setCreated(Date created) {
- this.created = created;
- }
-
- public void setField(String field) {
- this.field = field;
- }
-
- public void setNewValue(String newValue) {
- this.newValue = newValue;
- }
-
- public void setOldValue(String oldValue) {
- this.oldValue = oldValue;
- }
-
- public void setPermanent(boolean permanent) {
- this.permanent = permanent;
- }
-
- @Override
- public String toString() {
- return "[" + field + "] " + author + ": " + oldValue + " -> " + newValue; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComponent.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComponent.java
deleted file mode 100644
index 5c4cf5d5d..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracComponent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-/**
- * @author Steffen Pingel
- */
-public class TracComponent extends TracRepositoryAttribute {
-
- private static final long serialVersionUID = -6181067219323677076L;
-
- private String owner;
-
- private String description;
-
- public TracComponent(String name) {
- super(name);
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getOwner() {
- return owner;
- }
-
- public void setOwner(String owner) {
- this.owner = owner;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracMilestone.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracMilestone.java
deleted file mode 100644
index e34007d1a..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracMilestone.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * @author Steffen Pingel
- */
-public class TracMilestone extends TracRepositoryAttribute implements Serializable {
-
- private static final long serialVersionUID = 6648558552508886484L;
-
- private Date due;
-
- private Date completed;
-
- private String description;
-
- public TracMilestone(String name) {
- super(name);
- }
-
- public Date getCompleted() {
- return completed;
- }
-
- public void setCompleted(Date completed) {
- this.completed = completed;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public Date getDue() {
- return due;
- }
-
- public void setDue(Date due) {
- this.due = due;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracPriority.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracPriority.java
deleted file mode 100644
index 6d5f72440..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracPriority.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-/**
- * @author Steffen Pingel
- */
-public class TracPriority extends TracTicketAttribute {
-
- private static final long serialVersionUID = 3617078252773178266L;
-
- public TracPriority(String name, int value) {
- super(name, value);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracRepositoryAttribute.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracRepositoryAttribute.java
deleted file mode 100644
index ece1b7c04..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracRepositoryAttribute.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.io.Serializable;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @author Steffen Pingel
- */
-public class TracRepositoryAttribute implements Serializable {
-
- private static final long serialVersionUID = -4535033208999685315L;
-
- private String name;
-
- public TracRepositoryAttribute(String name) {
- Assert.isNotNull(name);
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public String toString() {
- // FIXME serialization can restore null values here
- return (name != null) ? name : ""; //$NON-NLS-1$
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java
deleted file mode 100644
index bad670bde..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter.CompareOperator;
-
-/**
- * Represents a Trac search. A search can have multiple {@link TracSearchFilter}s that all need to match.
- *
- * @author Steffen Pingel
- */
-public class TracSearch {
-
- /** Stores search criteria in the order entered by the user. */
- private final Map<String, TracSearchFilter> filterByFieldName = new LinkedHashMap<String, TracSearchFilter>();
-
- /** The field the result is ordered by. */
- private String orderBy;
-
- private boolean ascending = true;
-
- public TracSearch(String queryParameter) {
- fromUrl(queryParameter);
- }
-
- public TracSearch() {
- }
-
- public void addFilter(String key, String value) {
- TracSearchFilter filter = filterByFieldName.get(key);
- if (filter == null) {
- filter = new TracSearchFilter(key);
- CompareOperator operator = CompareOperator.fromUrl(value);
- filter.setOperator(operator);
- filterByFieldName.put(key, filter);
- }
-
- filter.addValue(value.substring(filter.getOperator().getQueryValue().length()));
- }
-
- public void addFilter(TracSearchFilter filter) {
- filterByFieldName.put(filter.getFieldName(), filter);
- }
-
- public List<TracSearchFilter> getFilters() {
- return new ArrayList<TracSearchFilter>(filterByFieldName.values());
- }
-
- public void setAscending(boolean ascending) {
- this.ascending = ascending;
- }
-
- public boolean isAscending() {
- return ascending;
- }
-
- public void setOrderBy(String orderBy) {
- this.orderBy = orderBy;
- }
-
- public String getOrderBy() {
- return orderBy;
- }
-
- /**
- * Returns a Trac query string that conforms to the format defined at {@link http
- * ://projects.edgewall.com/trac/wiki/TracQuery#QueryLanguage}.
- *
- * @return the empty string, if no search order and criteria are defined; a string that starts with &amp;, otherwise
- */
- public String toQuery() {
- StringBuilder sb = new StringBuilder();
- if (orderBy != null) {
- sb.append("&order="); //$NON-NLS-1$
- sb.append(orderBy);
- if (!ascending) {
- sb.append("&desc=1"); //$NON-NLS-1$
- }
- }
- for (TracSearchFilter filter : filterByFieldName.values()) {
- sb.append("&"); //$NON-NLS-1$
- sb.append(filter.getFieldName());
- sb.append(filter.getOperator().getQueryValue());
- sb.append("="); //$NON-NLS-1$
- List<String> values = filter.getValues();
- for (Iterator<String> it = values.iterator(); it.hasNext();) {
- sb.append(it.next());
- if (it.hasNext()) {
- sb.append("|"); //$NON-NLS-1$
- }
- }
- }
- return sb.toString();
- }
-
- /**
- * Returns a URL encoded string that can be passed as an argument to the Trac query script.
- *
- * @return the empty string, if no search order and criteria are defined; a string that starts with &amp;, otherwise
- */
- public String toUrl() {
- StringBuilder sb = new StringBuilder();
- if (orderBy != null) {
- sb.append("&order="); //$NON-NLS-1$
- sb.append(orderBy);
- if (!ascending) {
- sb.append("&desc=1"); //$NON-NLS-1$
- }
- } else if (filterByFieldName.isEmpty()) {
- // TODO figure out why search must be ordered when logged in (otherwise
- // no results will be returned)
- sb.append("&order=id"); //$NON-NLS-1$
- }
-
- for (TracSearchFilter filter : filterByFieldName.values()) {
- for (String value : filter.getValues()) {
- sb.append("&"); //$NON-NLS-1$
- sb.append(filter.getFieldName());
- sb.append("="); //$NON-NLS-1$
- try {
- sb.append(URLEncoder.encode(filter.getOperator().getQueryValue(), ITracClient.CHARSET));
- sb.append(URLEncoder.encode(value, ITracClient.CHARSET));
- } catch (UnsupportedEncodingException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "Unexpected exception while decoding URL", e)); //$NON-NLS-1$
- }
- }
- }
- return sb.toString();
- }
-
- public void fromUrl(String url) {
- StringTokenizer t = new StringTokenizer(url, "&"); //$NON-NLS-1$
- while (t.hasMoreTokens()) {
- String token = t.nextToken();
- int i = token.indexOf("="); //$NON-NLS-1$
- if (i != -1) {
- try {
- String key = URLDecoder.decode(token.substring(0, i), ITracClient.CHARSET);
- String value = URLDecoder.decode(token.substring(i + 1), ITracClient.CHARSET);
-
- if ("order".equals(key)) { //$NON-NLS-1$
- setOrderBy(value);
- } else if ("desc".equals(key)) { //$NON-NLS-1$
- setAscending(!"1".equals(value)); //$NON-NLS-1$
- } else if ("group".equals(key) || "groupdesc".equals(key) || "verbose".equals(key)) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // ignore these parameters
- } else {
- addFilter(key, value);
- }
- } catch (UnsupportedEncodingException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracCorePlugin.ID_PLUGIN,
- "Unexpected exception while decoding URL", e)); //$NON-NLS-1$
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearchFilter.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearchFilter.java
deleted file mode 100644
index 0af4a646f..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearchFilter.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents a search criterion. Each criterion is applied to a field such as milestone or priority. It has a compare
- * operator and a list of values. The compare mode is <code>OR</code> for the operators <code>contains</code>,
- * <code>starts with</code>, <code>ends with</code> and <code>is</code>. The compare mode is <code>AND</code> for all
- * other (negated) operators.
- *
- * @author Steffen Pingel
- */
-public class TracSearchFilter {
-
- public enum CompareOperator {
- CONTAINS("~"), CONTAINS_NOT("!~"), BEGINS_WITH("^"), NOT_BEGINS_WITH("!^"), ENDS_WITH("$"), NOT_ENDS_WITH("!$"), IS( //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- ""), IS_NOT("!"); //$NON-NLS-1$ //$NON-NLS-2$
-
- public static CompareOperator fromUrl(String value) {
- for (CompareOperator operator : values()) {
- if (operator != IS && operator != IS_NOT && value.startsWith(operator.queryValue)) {
- return operator;
- }
- }
- if (value.startsWith(IS_NOT.queryValue)) {
- return IS_NOT;
- }
- return IS;
- }
-
- /** The string that represent the operator in a Trac query. */
- private String queryValue;
-
- CompareOperator(String queryValue) {
- this.queryValue = queryValue;
- }
-
- public String getQueryValue() {
- return queryValue;
- }
-
- @Override
- public String toString() {
- switch (this) {
- case CONTAINS:
- return "contains"; //$NON-NLS-1$
- case CONTAINS_NOT:
- return "does not contain"; //$NON-NLS-1$
- case BEGINS_WITH:
- return "begins with"; //$NON-NLS-1$
- case NOT_BEGINS_WITH:
- return "does not begin with"; //$NON-NLS-1$
- case ENDS_WITH:
- return "ends with"; //$NON-NLS-1$
- case NOT_ENDS_WITH:
- return "does not end with"; //$NON-NLS-1$
- case IS_NOT:
- return "is not"; //$NON-NLS-1$
- default:
- return "is"; //$NON-NLS-1$
- }
- }
-
- }
-
- private final String fieldName;
-
- private CompareOperator operator;
-
- private final List<String> values = new ArrayList<String>();
-
- public TracSearchFilter(String fieldName) {
- this.fieldName = fieldName;
- }
-
- public void addValue(String value) {
- values.add(value);
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- public CompareOperator getOperator() {
- return operator;
- }
-
- public List<String> getValues() {
- return values;
- }
-
- public void setOperator(CompareOperator operator) {
- this.operator = operator;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSeverity.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSeverity.java
deleted file mode 100644
index 88a934e47..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSeverity.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-/**
- * @author Steffen Pingel
- */
-public class TracSeverity extends TracTicketAttribute {
-
- private static final long serialVersionUID = 2173932517704827316L;
-
- public TracSeverity(String name, int value) {
- super(name, value);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicket.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicket.java
deleted file mode 100644
index 4fe44673c..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicket.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.mylyn.internal.trac.core.client.InvalidTicketException;
-
-/**
- * Represents a Trac ticket as it is retrieved from a Trac repository.
- *
- * @author Steffen Pingel
- */
-public class TracTicket {
-
- /**
- * Represents the key of a string propertiy of a ticket.
- *
- * @author Steffen Pingel
- */
- public enum Key {
- CC("cc"), CHANGE_TIME("changetime"), COMPONENT("component"), DESCRIPTION("description"), ID("id"), KEYWORDS( //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- "keywords"), MILESTONE("milestone"), OWNER("owner"), PRIORITY("priority"), REPORTER("reporter"), RESOLUTION( //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- "resolution"), STATUS("status"), SEVERITY("severity"), SUMMARY("summary"), TIME("time"), TYPE("type"), VERSION( //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "version"); //$NON-NLS-1$
-
- public static Key fromKey(String name) {
- for (Key key : Key.values()) {
- if (key.getKey().equals(name)) {
- return key;
- }
- }
- return null;
- }
-
- private String key;
-
- Key(String key) {
- this.key = key;
- }
-
- @Override
- public String toString() {
- return key;
- }
-
- public String getKey() {
- return key;
- }
- }
-
- public static final int INVALID_ID = -1;
-
- private Date created;
-
- /**
- * User defined custom ticket fields.
- *
- * @see http://projects.edgewall.com/trac/wiki/TracTicketsCustomFields
- */
- private Map<String, String> customValueByKey;
-
- private int id = INVALID_ID;
-
- private Date lastChanged;
-
- /** Trac's built-in ticket properties. */
- private final Map<Key, String> valueByKey = new HashMap<Key, String>();
-
- private List<TracComment> comments;
-
- private List<TracAttachment> attachments;
-
- private String[] actions;
-
- private String[] resolutions;
-
- public TracTicket() {
- }
-
- /**
- * Constructs a Trac ticket.
- *
- * @param id
- * the numeric Trac ticket id
- */
- public TracTicket(int id) {
- this.id = id;
- }
-
- public Date getCreated() {
- return created;
- }
-
- public int getId() {
- return id;
- }
-
- public Date getLastChanged() {
- return lastChanged;
- }
-
- public String getCustomValue(String key) {
- if (customValueByKey == null) {
- return null;
- }
- return customValueByKey.get(key);
- }
-
- public String getValue(Key key) {
- return valueByKey.get(key);
- }
-
- public Map<String, String> getValues() {
- Map<String, String> result = new HashMap<String, String>();
- for (Key key : valueByKey.keySet()) {
- result.put(key.getKey(), valueByKey.get(key));
- }
- if (customValueByKey != null) {
- result.putAll(customValueByKey);
- }
- return result;
- }
-
- public boolean isValid() {
- return getId() != TracTicket.INVALID_ID;
- }
-
- public void putBuiltinValue(Key key, String value) throws InvalidTicketException {
- valueByKey.put(key, value);
- }
-
- public void putCustomValue(String key, String value) {
- if (customValueByKey == null) {
- customValueByKey = new HashMap<String, String>();
- }
- customValueByKey.put(key, value);
- }
-
- /**
- * Stores a value as it is retrieved from the repository.
- *
- * @throws InvalidTicketException
- * thrown if the type of <code>value</code> is not valid
- */
- public boolean putValue(String keyName, String value) throws InvalidTicketException {
- Key key = Key.fromKey(keyName);
- if (key != null) {
- if (key == Key.ID || key == Key.TIME || key == Key.CHANGE_TIME) {
- return false;
- }
- putBuiltinValue(key, value);
- } else if (value != null) {
- putCustomValue(keyName, value);
- } else {
- throw new InvalidTicketException("Expected string value for custom key '" + keyName + "', got '" + value //$NON-NLS-1$ //$NON-NLS-2$
- + "'"); //$NON-NLS-1$
- }
- return true;
- }
-
- public void setCreated(Date created) {
- this.created = created;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public void setLastChanged(Date lastChanged) {
- this.lastChanged = lastChanged;
- }
-
- public void addComment(TracComment comment) {
- if (comments == null) {
- comments = new ArrayList<TracComment>();
- }
- comments.add(comment);
- }
-
- public void addAttachment(TracAttachment attachment) {
- if (attachments == null) {
- attachments = new ArrayList<TracAttachment>();
- }
- attachments.add(attachment);
- }
-
- public TracComment[] getComments() {
- return (comments != null) ? comments.toArray(new TracComment[0]) : null;
- }
-
- public TracAttachment[] getAttachments() {
- return (attachments != null) ? attachments.toArray(new TracAttachment[0]) : null;
- }
-
- public void setActions(String[] actions) {
- this.actions = actions;
- }
-
- public String[] getActions() {
- return actions;
- }
-
- public void setResolutions(String[] resolutions) {
- this.resolutions = resolutions;
- }
-
- public String[] getResolutions() {
- return resolutions;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketAttribute.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketAttribute.java
deleted file mode 100644
index 905cbc873..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketAttribute.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.io.Serializable;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTicketAttribute implements Comparable<TracTicketAttribute>, Serializable {
-
- private static final long serialVersionUID = -8611030780681519787L;
-
- private final String name;
-
- private final int value;
-
- public TracTicketAttribute(String name, int value) {
- this.name = name;
- this.value = value;
- }
-
- public int compareTo(TracTicketAttribute o) {
- return value - o.value;
- }
-
- public String getName() {
- return name;
- }
-
- public int getValue() {
- return value;
- }
-
- @Override
- public String toString() {
- return name;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketField.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketField.java
deleted file mode 100644
index 6148af40b..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketField.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.io.Serializable;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTicketField implements Serializable {
-
- private static final long serialVersionUID = -640983268404073300L;
-
- public enum Type {
- TEXT, CHECKBOX, SELECT, RADIO, TEXTAREA;
-
- public static Type fromString(String value) {
- value = value.toLowerCase();
- if ("text".equals(value)) { //$NON-NLS-1$
- return TEXT;
- } else if ("checkbox".equals(value)) { //$NON-NLS-1$
- return CHECKBOX;
- } else if ("select".equals(value)) { //$NON-NLS-1$
- return SELECT;
- } else if ("radio".equals(value)) { //$NON-NLS-1$
- return RADIO;
- } else if ("textarea".equals(value)) { //$NON-NLS-1$
- return TEXTAREA;
- }
- return TEXT;
- }
-
- }
-
- public static final int DEFAULT_SIZE = -1;
-
- private String name;
-
- private Type type;
-
- private String label;
-
- private String[] options;
-
- private String defaultValue;
-
- private boolean custom;
-
- private int order;
-
- private boolean optional;
-
- private int width = DEFAULT_SIZE;
-
- private int height = DEFAULT_SIZE;
-
- public TracTicketField(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Type getType() {
- return type;
- }
-
- public void setType(Type type) {
- this.type = type;
- }
-
- public String getLabel() {
- return label;
- }
-
- public void setLabel(String label) {
- this.label = label;
- }
-
- public String[] getOptions() {
- return options;
- }
-
- public void setOptions(String[] options) {
- this.options = options;
- }
-
- public int getOrder() {
- return order;
- }
-
- public void setOrder(int order) {
- this.order = order;
- }
-
- public boolean isOptional() {
- return optional;
- }
-
- public void setOptional(boolean optional) {
- this.optional = optional;
- }
-
- public int getWidth() {
- return width;
- }
-
- public void setWidth(int width) {
- this.width = width;
- }
-
- public int getHeight() {
- return height;
- }
-
- public void setHeight(int height) {
- this.height = height;
- }
-
- public String getDefaultValue() {
- return defaultValue;
- }
-
- public void setDefaultValue(String defaultValue) {
- this.defaultValue = defaultValue;
- }
-
- public boolean isCustom() {
- return custom;
- }
-
- public void setCustom(boolean custom) {
- this.custom = custom;
- }
-
- @Override
- public String toString() {
- return name;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketResolution.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketResolution.java
deleted file mode 100644
index e766268e4..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketResolution.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTicketResolution extends TracTicketAttribute {
-
- private static final long serialVersionUID = -6933211257044813716L;
-
- public TracTicketResolution(String name, int value) {
- super(name, value);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketStatus.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketStatus.java
deleted file mode 100644
index 682ebb27b..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketStatus.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTicketStatus extends TracTicketAttribute {
-
- private static final long serialVersionUID = -8844909853931772506L;
-
- public TracTicketStatus(String name, int value) {
- super(name, value);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketType.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketType.java
deleted file mode 100644
index 47d04589a..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracTicketType.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTicketType extends TracTicketAttribute {
-
- private static final long serialVersionUID = -3157354751904259304L;
-
- public TracTicketType(String name, int value) {
- super(name, value);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracVersion.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracVersion.java
deleted file mode 100644
index 38e34a649..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracVersion.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.util.Date;
-
-/**
- * @author Steffen Pingel
- */
-public class TracVersion extends TracRepositoryAttribute {
-
- private static final long serialVersionUID = 9018237956062697410L;
-
- private Date time;
-
- private String description;
-
- public TracVersion(String name) {
- super(name);
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public Date getTime() {
- return time;
- }
-
- public void setTime(Date time) {
- this.time = time;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPage.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPage.java
deleted file mode 100644
index 922f80d5c..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPage.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.model;
-
-/**
- * Represents a Trac Wiki page at a specific version.
- *
- * @author Xiaoyang Guan
- */
-public class TracWikiPage {
-
- private TracWikiPageInfo pageInfo;
-
- private String content;
-
- private String pageHTML;
-
- public TracWikiPage() {
- }
-
- public TracWikiPageInfo getPageInfo() {
- return pageInfo;
- }
-
- public void setPageInfo(TracWikiPageInfo pageInfo) {
- this.pageInfo = pageInfo;
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public String getPageHTML() {
- return pageHTML;
- }
-
- public void setPageHTML(String pageHTML) {
- this.pageHTML = pageHTML;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- } else if (this == obj) {
- return true;
- } else if (getClass() != obj.getClass()) {
- return false;
- } else {
- TracWikiPage other = (TracWikiPage) obj;
- return content.equals(other.content) && pageInfo.toString().equals(other.pageInfo.toString());
- }
- }
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPageInfo.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPageInfo.java
deleted file mode 100644
index 4c15b0f1e..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracWikiPageInfo.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.model;
-
-import java.util.Date;
-
-/**
- * Information about a Trac Wiki page at a specific version
- *
- * @author Xiaoyang Guan
- */
-public class TracWikiPageInfo {
-
- private String pageName;
-
- private String author;
-
- private Date lastModified;
-
- private int version;
-
- private String comment;
-
- public TracWikiPageInfo() {
- }
-
- public String getPageName() {
- return pageName;
- }
-
- public void setPageName(String pageName) {
- this.pageName = pageName;
- }
-
- public String getAuthor() {
- return author;
- }
-
- public void setAuthor(String author) {
- this.author = author;
- }
-
- public Date getLastModified() {
- return lastModified;
- }
-
- public void setLastModified(Date lastModified) {
- this.lastModified = lastModified;
- }
-
- public int getVersion() {
- return version;
- }
-
- public void setVersion(int version) {
- this.version = version;
- }
-
- public String getComment() {
- return comment;
- }
-
- public void setComment(String comment) {
- this.comment = comment;
- }
-
- @Override
- public String toString() {
- return pageName + ": version " + version + " by " + author + " last modified at " + lastModified; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/HttpMethodInterceptor.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/HttpMethodInterceptor.java
deleted file mode 100644
index e1b263320..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/HttpMethodInterceptor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.core.util;
-
-import org.apache.commons.httpclient.HttpMethod;
-
-/**
- * @author Steffen Pingel
- */
-public interface HttpMethodInterceptor {
-
- public abstract void processRequest(HttpMethod method);
-
- public abstract void processResponse(HttpMethod method);
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/Messages.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/Messages.java
deleted file mode 100644
index 9f71e5adb..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.core.util;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages {
-
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.trac.core.util.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TracUtil_Permission_denied;
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracHttpClientTransportFactory.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracHttpClientTransportFactory.java
deleted file mode 100644
index b78a68622..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracHttpClientTransportFactory.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.util;
-
-import java.io.BufferedOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpVersion;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.RequestEntity;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.XmlRpcRequest;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientException;
-import org.apache.xmlrpc.client.XmlRpcHttpClientConfig;
-import org.apache.xmlrpc.client.XmlRpcHttpTransport;
-import org.apache.xmlrpc.client.XmlRpcTransport;
-import org.apache.xmlrpc.client.XmlRpcTransportFactory;
-import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
-import org.apache.xmlrpc.util.HttpUtil;
-import org.apache.xmlrpc.util.XmlRpcIOException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.WebUtil;
-import org.xml.sax.SAXException;
-
-/**
- * A custom transport factory used to establish XML-RPC connections. Uses the Mylyn proxy settings.
- *
- * @author Steffen Pingel
- */
-public class TracHttpClientTransportFactory implements XmlRpcTransportFactory {
-
- /**
- * A transport that uses the Apache HttpClient library.
- */
- public static class TracHttpClientTransport extends XmlRpcHttpTransport {
-
- private final HttpClient httpClient;
-
- private final AbstractWebLocation location;
-
- private PostMethod method;
-
- private int contentLength = -1;
-
- private XmlRpcHttpClientConfig config;
-
- private IProgressMonitor monitor;
-
- private HostConfiguration hostConfiguration;
-
- private final HttpMethodInterceptor interceptor;
-
- public TracHttpClientTransport(XmlRpcClient client, HttpClient httpClient, AbstractWebLocation location,
- HttpMethodInterceptor interceptor) {
- super(client, ""); //$NON-NLS-1$
- this.httpClient = httpClient;
- this.location = location;
- this.interceptor = interceptor;
- }
-
- @Override
- protected void close() throws XmlRpcClientException {
- method.releaseConnection();
- }
-
- public int getContentLength() {
- return contentLength;
- }
-
- @Override
- protected InputStream getInputStream() throws XmlRpcException {
- int responseCode = method.getStatusCode();
- if (responseCode != HttpURLConnection.HTTP_OK) {
- throw new TracHttpException(responseCode);
- }
-
- try {
- return method.getResponseBodyAsStream();
- } catch (HttpException e) {
- throw new XmlRpcClientException("Error in HTTP transport: " + e.getMessage(), e); //$NON-NLS-1$
- } catch (IOException e) {
- throw new XmlRpcClientException("I/O error in server communication: " + e.getMessage(), e); //$NON-NLS-1$
- }
- }
-
- @Override
- protected String getUserAgent() {
- return WebUtil.getUserAgent(""); //$NON-NLS-1$
- }
-
- @Override
- protected void initHttpHeaders(XmlRpcRequest request) throws XmlRpcClientException {
- config = (XmlRpcHttpClientConfig) request.getConfig();
-
- if (request instanceof TracXmlRpcClientRequest) {
- TracXmlRpcClientRequest tracRequest = (TracXmlRpcClientRequest) request;
- monitor = tracRequest.getProgressMonitor();
- } else {
- monitor = null;
- }
-
- String url = config.getServerURL().toString();
- hostConfiguration = WebUtil.createHostConfiguration(httpClient, location, monitor);
- method = new PostMethod(WebUtil.getRequestPath(url));
-
- super.initHttpHeaders(request);
-
- if (config.getConnectionTimeout() != 0) {
- httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(config.getConnectionTimeout());
- }
-
- if (config.getReplyTimeout() != 0) {
- httpClient.getHttpConnectionManager().getParams().setSoTimeout(config.getConnectionTimeout());
- }
-
- method.getParams().setVersion(HttpVersion.HTTP_1_1);
-
- if (interceptor != null) {
- interceptor.processRequest(method);
- }
- }
-
- @Override
- protected boolean isResponseGzipCompressed(XmlRpcStreamRequestConfig config) {
- Header header = method.getResponseHeader("Content-Encoding"); //$NON-NLS-1$
- return header != null && HttpUtil.isUsingGzipEncoding(header.getValue());
- }
-
- @Override
- protected void setContentLength(int contentLength) {
- this.contentLength = contentLength;
- }
-
- @Override
- protected void setCredentials(XmlRpcHttpClientConfig config) throws XmlRpcClientException {
- // handled by TracXmlRpcClient
- }
-
- @Override
- protected void setRequestHeader(String header, String value) {
- method.setRequestHeader(new Header(header, value));
- }
-
- @Override
- protected void writeRequest(final ReqWriter writer) throws XmlRpcException {
- method.setRequestEntity(new RequestEntity() {
- public long getContentLength() {
- return TracHttpClientTransport.this.getContentLength();
- }
-
- public String getContentType() {
- return "text/xml"; //$NON-NLS-1$
- }
-
- public boolean isRepeatable() {
- return getContentLength() != -1;
- }
-
- public void writeRequest(OutputStream pOut) throws IOException {
- try {
- /* Make sure, that the socket is not closed by replacing it with our
- * own BufferedOutputStream.
- */
- OutputStream ostream;
- if (isUsingByteArrayOutput(config)) {
- // No need to buffer the output.
- ostream = new FilterOutputStream(pOut) {
- @Override
- public void close() throws IOException {
- flush();
- }
- };
- } else {
- ostream = new BufferedOutputStream(pOut) {
- @Override
- public void close() throws IOException {
- flush();
- }
- };
- }
- writer.write(ostream);
- } catch (XmlRpcException e) {
- throw new XmlRpcIOException(e);
- } catch (SAXException e) {
- throw new XmlRpcIOException(e);
- }
- }
- });
-
- try {
- WebUtil.execute(httpClient, hostConfiguration, method, monitor);
- if (interceptor != null) {
- interceptor.processResponse(method);
- }
- } catch (XmlRpcIOException e) {
- Throwable t = e.getLinkedException();
- if (t instanceof XmlRpcException) {
- throw (XmlRpcException) t;
- } else {
- throw new XmlRpcException("Unexpected exception: " + t.getMessage(), t); //$NON-NLS-1$
- }
- } catch (IOException e) {
- throw new XmlRpcException("I/O error while communicating with HTTP server: " + e.getMessage(), e); //$NON-NLS-1$
- }
- }
-
- }
-
- public static class TracHttpException extends XmlRpcException {
-
- private static final long serialVersionUID = 9032521978140685830L;
-
- public TracHttpException(int responseCode) {
- super(responseCode, "HTTP Error " + responseCode); //$NON-NLS-1$
- }
-
- }
-
- protected static final String USER_AGENT = "TracConnector Apache XML-RPC/3.0"; //$NON-NLS-1$
-
- private final XmlRpcClient xmlRpcClient;
-
- private AbstractWebLocation location;
-
- private final HttpClient httpClient;
-
- private HttpMethodInterceptor interceptor;
-
- public TracHttpClientTransportFactory(XmlRpcClient xmlRpcClient, HttpClient httpClient) {
- this.xmlRpcClient = xmlRpcClient;
- this.httpClient = httpClient;
- }
-
- public AbstractWebLocation getLocation() {
- return location;
- }
-
- public XmlRpcTransport getTransport() {
- return new TracHttpClientTransport(xmlRpcClient, httpClient, location, interceptor);
- }
-
- public void setLocation(AbstractWebLocation location) {
- this.location = location;
- }
-
- public HttpMethodInterceptor getInterceptor() {
- return interceptor;
- }
-
- public void setInterceptor(HttpMethodInterceptor interceptor) {
- this.interceptor = interceptor;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracUtil.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracUtil.java
deleted file mode 100644
index 782956bb0..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracUtil.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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
- * Jorrit Schippers - fix for bug 254862
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.util;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.Date;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-
-/**
- * Provides static helper methods.
- *
- * @author Steffen Pingel
- */
-public class TracUtil {
-
- public static Date parseDate(String time) {
- if (time != null) {
- try {
- return TracUtil.parseDate(Long.valueOf(time));
- } catch (NumberFormatException e) {
- }
- }
- return null;
- }
-
- public static Date parseDate(long seconds) {
- return new Date(seconds * 1000l);
-// Calendar c = Calendar.getInstance();
-// c.setTimeZone(TimeZone.getTimeZone(ITracClient.TIME_ZONE));
-// c.setTimeInMillis(seconds * 1000l);
-// return c.getTime();
- }
-
- public static long toTracTime(Date date) {
-// Calendar c = Calendar.getInstance();
-// c.setTime(date);
-// c.setTimeZone(TimeZone.getTimeZone(ITracClient.TIME_ZONE));
-// return c.getTimeInMillis() / 1000l;
- return date.getTime() / 1000l;
- }
-
- private static String getQueryParameter(IRepositoryQuery query) {
- String url = query.getUrl();
- int i = url.indexOf(ITracClient.QUERY_URL);
- if (i == -1) {
- return null;
- }
- return url.substring(i + ITracClient.QUERY_URL.length());
- }
-
- /**
- * Creates a <code>TracSearch</code> object from this query.
- */
- public static TracSearch toTracSearch(IRepositoryQuery query) {
- String url = getQueryParameter(query);
- if (url != null) {
- TracSearch search = new TracSearch();
- search.fromUrl(url);
- return search;
- }
- return null;
- }
-
- public static IStatus createPermissionDeniedError(String repositoryUrl, String pluginId) {
- return new RepositoryStatus(repositoryUrl, IStatus.ERROR, TracCorePlugin.ID_PLUGIN,
- RepositoryStatus.ERROR_PERMISSION_DENIED, Messages.TracUtil_Permission_denied);
- }
-
- public static String encodeUrl(String string) {
- try {
- return URLEncoder.encode(string, ITracClient.CHARSET).replaceAll("\\+", "%20"); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (UnsupportedEncodingException e) {
- return string;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracXmlRpcClientRequest.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracXmlRpcClientRequest.java
deleted file mode 100644
index f3ac2c710..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/TracXmlRpcClientRequest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.core.util;
-
-import org.apache.xmlrpc.XmlRpcRequestConfig;
-import org.apache.xmlrpc.client.XmlRpcClientRequestImpl;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * @author Steffen Pingel
- */
-public class TracXmlRpcClientRequest extends XmlRpcClientRequestImpl {
-
- private final IProgressMonitor progressMonitor;
-
- public TracXmlRpcClientRequest(XmlRpcRequestConfig config, String methodName, Object[] params,
- IProgressMonitor monitor) {
- super(config, methodName, params);
- this.progressMonitor = monitor;
- }
-
- public IProgressMonitor getProgressMonitor() {
- return progressMonitor;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/messages.properties b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/messages.properties
deleted file mode 100644
index e0f3fdbc4..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/util/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-TracUtil_Permission_denied=Permission denied.
diff --git a/org.eclipse.mylyn.trac.tests/.classpath b/org.eclipse.mylyn.trac.tests/.classpath
deleted file mode 100644
index d7d62759f..000000000
--- a/org.eclipse.mylyn.trac.tests/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.trac.tests/.cvsignore b/org.eclipse.mylyn.trac.tests/.cvsignore
deleted file mode 100644
index b0b9ecf46..000000000
--- a/org.eclipse.mylyn.trac.tests/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-credentials.properties
-credentials.properties
diff --git a/org.eclipse.mylyn.trac.tests/.project b/org.eclipse.mylyn.trac.tests/.project
deleted file mode 100644
index 1f3b6278e..000000000
--- a/org.eclipse.mylyn.trac.tests/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.trac.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 01d52eaf4..000000000
--- a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:44 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26af..000000000
--- a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.trac.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.trac.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.trac.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index cd4faf7a7..000000000
--- a/org.eclipse.mylyn.trac.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,28 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Trac Connector Tests
-Bundle-SymbolicName: org.eclipse.mylyn.trac.tests;singleton:=true
-Bundle-Version: 0.0.0
-Require-Bundle: org.apache.xmlrpc;bundle-version="3.0.0",
- org.junit,
- org.eclipse.core.runtime,
- org.eclipse.jface.text,
- org.eclipse.search,
- org.eclipse.ui,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.mylyn.commons.net,
- org.eclipse.mylyn.context.core,
- org.eclipse.mylyn.context.tests,
- org.eclipse.mylyn.tasks.ui,
- org.eclipse.mylyn.tasks.core,
- org.eclipse.mylyn.tasks.tests,
- org.eclipse.mylyn.trac.ui,
- org.eclipse.mylyn.trac.core
-Export-Package: org.eclipse.mylyn.internal.trac.ui;x-internal:=true,
- org.eclipse.mylyn.trac.tests;x-internal:=true,
- org.eclipse.mylyn.trac.tests.client;x-internal:=true,
- org.eclipse.mylyn.trac.tests.core;x-internal:=true,
- org.eclipse.mylyn.trac.tests.support;x-internal:=true,
- org.eclipse.mylyn.trac.tests.ui;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Vendor: Eclipse Mylyn
diff --git a/org.eclipse.mylyn.trac.tests/about.html b/org.eclipse.mylyn.trac.tests/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.trac.tests/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.tests/build.properties b/org.eclipse.mylyn.trac.tests/build.properties
deleted file mode 100644
index 6af7dc4a4..000000000
--- a/org.eclipse.mylyn.trac.tests/build.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 Mylyn project committers 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html
-src.includes = META-INF/
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtilStandaloneTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtilStandaloneTest.java
deleted file mode 100644
index f6a8dd079..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtilStandaloneTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green 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:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.ui;
-
-import java.util.regex.Matcher;
-
-import junit.framework.TestCase;
-
-/**
- * @author David Green
- */
-public class TracHyperlinkUtilStandaloneTest extends TestCase {
-
- public void testWikiPattern2SinglePositiveMatch() {
- Matcher matcher = TracHyperlinkUtil.wikiPattern2.matcher("a HyperLink there");
- assertTrue(matcher.find());
- assertEquals(matcher.group(0), "HyperLink");
- assertFalse(matcher.find());
- }
-
- public void testWikiPattern2MultiplePositiveMatch() {
- Matcher matcher = TracHyperlinkUtil.wikiPattern2.matcher("a HyperLink there and ThereIsAnother");
- assertTrue(matcher.find());
- assertEquals(matcher.group(0), "HyperLink");
- assertTrue(matcher.find());
- assertEquals(matcher.group(0), "ThereIsAnother");
- assertFalse(matcher.find());
- }
-
- public void testWikiPattern2SingleNegativeMatch() {
- Matcher matcher = TracHyperlinkUtil.wikiPattern2.matcher("no !HyperLink there");
- assertFalse(matcher.find());
- }
-
- public void testWikiPattern2SinglePositiveMatchAtStartOfLine() {
- Matcher matcher = TracHyperlinkUtil.wikiPattern2.matcher("HyperLink there");
- assertTrue(matcher.find());
- assertEquals(matcher.group(0), "HyperLink");
- assertFalse(matcher.find());
- }
-
- public void testWikiPattern2SingleNegativeMatchAtStartOfLine() {
- Matcher matcher = TracHyperlinkUtil.wikiPattern2.matcher("!HyperLink there");
- assertFalse(matcher.find());
- }
-
- public void testWikiPattern2MixedPositiveNegativeMatch() {
- Matcher matcher = TracHyperlinkUtil.wikiPattern2.matcher("a HyperLink there and ThereIsAnother but !NotHere");
- assertTrue(matcher.find());
- assertEquals(matcher.group(0), "HyperLink");
- assertTrue(matcher.find());
- assertEquals(matcher.group(0), "ThereIsAnother");
- assertFalse(matcher.find());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracHeadlessStandaloneTests.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracHeadlessStandaloneTests.java
deleted file mode 100644
index feb77b6a3..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracHeadlessStandaloneTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.mylyn.trac.tests.client.TracClientFactoryTest;
-import org.eclipse.mylyn.trac.tests.client.TracClientProxyTest;
-import org.eclipse.mylyn.trac.tests.client.TracSearchTest;
-import org.eclipse.mylyn.trac.tests.client.TracTicketTest;
-import org.eclipse.mylyn.trac.tests.client.TracWebClientSearchTest;
-import org.eclipse.mylyn.trac.tests.client.TracWebClientTest;
-import org.eclipse.mylyn.trac.tests.client.TracXmlRpcClientSearchTest;
-import org.eclipse.mylyn.trac.tests.client.TracXmlRpcClientTest;
-import org.eclipse.mylyn.trac.tests.core.TracClientManagerTest;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class AllTracHeadlessStandaloneTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Headless Standalone Tests for org.eclipse.mylyn.trac.tests");
- // other
- suite.addTestSuite(TracClientManagerTest.class);
- // client
- suite.addTestSuite(TracSearchTest.class);
- suite.addTestSuite(TracTicketTest.class);
- suite.addTestSuite(TracXmlRpcClientTest.class);
- suite.addTestSuite(TracXmlRpcClientSearchTest.class);
- suite.addTestSuite(TracWebClientTest.class);
- suite.addTestSuite(TracWebClientSearchTest.class);
- suite.addTestSuite(TracClientFactoryTest.class);
- suite.addTestSuite(TracClientProxyTest.class);
- return suite;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java
deleted file mode 100644
index 0a524b9f6..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.mylyn.trac.tests.core.RepositorySearchTest;
-import org.eclipse.mylyn.trac.tests.core.TracAttachmentHandlerTest;
-import org.eclipse.mylyn.trac.tests.core.TracRepositoryConnectorTest;
-import org.eclipse.mylyn.trac.tests.core.TracRepositoryQueryTest;
-import org.eclipse.mylyn.trac.tests.core.TracTaskDataHandlerTest;
-import org.eclipse.mylyn.trac.tests.core.TracUtilTest;
-import org.eclipse.mylyn.trac.tests.ui.TracHyperlinkUtilTest;
-import org.eclipse.mylyn.trac.tests.ui.TracRepositorySettingsPageTest;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class AllTracTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Tests for org.eclipse.mylyn.trac.tests");
- suite.addTest(AllTracHeadlessStandaloneTests.suite());
- suite.addTestSuite(TracRepositoryConnectorTest.class);
- suite.addTestSuite(TracUtilTest.class);
- suite.addTestSuite(TracRepositoryQueryTest.class);
- suite.addTestSuite(TracAttachmentHandlerTest.class);
- suite.addTestSuite(RepositorySearchTest.class);
- suite.addTestSuite(TracTaskDataHandlerTest.class);
- // XXX fails when run from continuous build: suite.addTestSuite(TracTaskEditorTest.class);
- suite.addTestSuite(TracRepositorySettingsPageTest.class);
- suite.addTestSuite(TracHyperlinkUtilTest.class);
- return suite;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientRepositoryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientRepositoryTest.java
deleted file mode 100644
index e90fdee4d..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientRepositoryTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.net.InetSocketAddress;
-import java.net.Proxy;
-import java.net.Proxy.Type;
-
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.TracLoginException;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * Test cases for classes that implement {@link ITracClient}.
- *
- * @author Steffen Pingel
- */
-public class AbstractTracClientRepositoryTest extends AbstractTracClientTest {
-
- public AbstractTracClientRepositoryTest(Version version) {
- super(version);
- }
-
- public void testValidate010() throws Exception {
- validate(TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public void testValidate010DigestAuth() throws Exception {
- validate(TracTestConstants.TEST_TRAC_010_DIGEST_AUTH_URL);
- }
-
- public void testValidate011() throws Exception {
- validate(TracTestConstants.TEST_TRAC_011_URL);
- }
-
- public void testValidate010FormAuth() throws Exception {
- validate(TracTestConstants.TEST_TRAC_010_FORM_AUTH_URL);
- }
-
- protected void validate(String url) throws Exception {
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
-
- // standard connect
- connect(url);
- repository.validate(callback);
-
- // invalid url
- connect("http://non.existant/repository");
- try {
- repository.validate(callback);
- fail("Expected TracException");
- } catch (TracException e) {
- }
-
- // invalid password
- connect(url, credentials.username, "wrongpassword");
- try {
- repository.validate(callback);
- fail("Expected TracLoginException");
- } catch (TracLoginException e) {
- }
-
- // invalid username
- connect(url, "wrongusername", credentials.password);
- try {
- repository.validate(callback);
- fail("Expected TracLoginException");
- } catch (TracLoginException e) {
- }
- }
-
- public void testProxy() throws Exception {
- connect(TracTestConstants.TEST_TRAC_010_URL, "", "", new Proxy(Type.HTTP, new InetSocketAddress(
- "invalidhostname", 8080)));
- try {
- repository.validate(callback);
- fail("Expected IOException");
- } catch (TracException e) {
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientSearchTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientSearchTest.java
deleted file mode 100644
index 575706444..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientSearchTest.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.trac.tests.support.TestFixture;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.Ticket;
-
-/**
- * Test cases that validate search results for classes that implement {@link ITracClient}.
- *
- * @author Steffen Pingel
- */
-public abstract class AbstractTracClientSearchTest extends AbstractTracClientTest {
-
- protected List<Ticket> tickets;
-
- private TestData data;
-
- public AbstractTracClientSearchTest(Version version) {
- super(version);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- data = TestFixture.init010();
- tickets = data.tickets;
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- // TestFixture.cleanupRepository1();
- }
-
- protected void assertTicketEquals(Ticket ticket, TracTicket tracTicket) throws Exception {
- assertTrue(tracTicket.isValid());
-
- Map<?, ?> expectedValues = ticket.getValues();
- Map<String, String> values = tracTicket.getValues();
- for (String key : values.keySet()) {
- assertEquals("Values for key '" + key + "' did not match", expectedValues.get(key), values.get(key));
- }
- }
-
- public void testGetTicket096() throws Exception {
- if (version == Version.XML_RPC) {
- return;
- }
-
- connect096();
- getTicket();
- }
-
- public void testGetTicket010() throws Exception {
- connect010();
- getTicket();
- }
-
- public void testGetTicket011() throws Exception {
- if (version == Version.TRAC_0_9) {
- // XXX web mode is broken for Trac 0.11: need to fix bug 175211
- return;
- }
-
- connect011();
- getTicket();
- }
-
- private void getTicket() throws Exception {
- TracTicket ticket = repository.getTicket(tickets.get(0).getId(), null);
- assertTicketEquals(tickets.get(0), ticket);
-
- ticket = repository.getTicket(tickets.get(1).getId(), null);
- assertTicketEquals(tickets.get(1), ticket);
- }
-
- public void testGetTicketInvalidId096() throws Exception {
- if (version == Version.XML_RPC) {
- return;
- }
-
- connect096();
- getTicketInvalidId();
- }
-
- public void testGetTicketInvalidId010() throws Exception {
- connect010();
- getTicketInvalidId();
- }
-
- public void testGetTicketInvalidId011() throws Exception {
- connect011();
- getTicketInvalidId();
- }
-
- private void getTicketInvalidId() throws Exception {
- try {
- repository.getTicket(Integer.MAX_VALUE, null);
- fail("Expected TracException");
- } catch (TracException e) {
- }
- }
-
- public void testGetTicketUmlaute010() throws Exception {
- connect010();
- getTicketUmlaute();
- }
-
- public void testGetTicketUmlaute011() throws Exception {
- if (version == Version.TRAC_0_9) {
- // XXX need to fix bug 175211
- return;
- }
-
- connect011();
- getTicketUmlaute();
- }
-
- private void getTicketUmlaute() throws Exception {
- TracTicket ticket = repository.getTicket(data.htmlEntitiesTicketId, null);
- assertEquals("test html entities: \u00E4\u00F6\u00FC", ticket.getValue(Key.SUMMARY));
- if (version == Version.XML_RPC) {
- assertEquals("\u00C4\u00D6\u00DC\n\nmulti\nline\n\n'''bold'''\n", ticket.getValue(Key.DESCRIPTION));
- } else {
- assertEquals(null, ticket.getValue(Key.DESCRIPTION));
- }
- }
-
- public void testSearchAll010() throws Exception {
- connect010();
- searchAll();
- }
-
- public void testSearchAll011() throws Exception {
- connect011();
- searchAll();
- }
-
- private void searchAll() throws Exception {
- TracSearch search = new TracSearch();
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- //assertEquals(tickets.size(), result.size());
- assertTrue(result.size() >= tickets.size());
- }
-
- public void testSearchEmpty010() throws Exception {
- connect010();
- searchEmpty();
- }
-
- public void testSearchEmpty011() throws Exception {
- connect011();
- searchEmpty();
- }
-
- private void searchEmpty() throws Exception {
- TracSearch search = new TracSearch();
- search.addFilter("milestone", "does not exist");
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- assertEquals(0, result.size());
- }
-
- public void testSearchMilestone1010() throws Exception {
- connect010();
- searchMilestone1();
- }
-
- public void testSearchMilestone1011() throws Exception {
- connect011();
- searchMilestone1();
- }
-
- private void searchMilestone1() throws Exception {
- TracSearch search = new TracSearch();
- search.addFilter("milestone", "milestone1");
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- assertEquals(1, result.size());
- assertTicketEquals(tickets.get(0), result.get(0));
- }
-
- public void testSearchMilestone2010() throws Exception {
- connect010();
- searchMilestone2();
- }
-
- public void testSearchMilestone2011() throws Exception {
- connect011();
- searchMilestone2();
- }
-
- private void searchMilestone2() throws Exception {
- TracSearch search = new TracSearch();
- search.addFilter("milestone", "milestone1");
- search.addFilter("milestone", "milestone2");
- search.setOrderBy("id");
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- assertEquals(3, result.size());
- assertTicketEquals(tickets.get(0), result.get(0));
- assertTicketEquals(tickets.get(1), result.get(1));
- assertTicketEquals(tickets.get(2), result.get(2));
- }
-
- public void testSearchExactMatch010() throws Exception {
- connect010();
- searchExactMatch();
- }
-
- public void testSearchExactMatch011() throws Exception {
- connect011();
- searchExactMatch();
- }
-
- private void searchExactMatch() throws Exception {
- TracSearch search = new TracSearch();
- search.addFilter("milestone", "milestone1");
- search.addFilter("summary", "summary1");
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- assertEquals(1, result.size());
- assertTicketEquals(tickets.get(0), result.get(0));
- assertEquals("milestone1", result.get(0).getValue(Key.MILESTONE));
- assertEquals("summary1", result.get(0).getValue(Key.SUMMARY));
- }
-
- public void testStatusClosed010() throws Exception {
- connect010();
- statusClosed();
- }
-
- public void testStatusClosed011() throws Exception {
- connect011();
- statusClosed();
- }
-
- protected void statusClosed() throws Exception {
- TracTicket ticket = repository.getTicket(data.offlineHandlerTicketId, null);
- assertEquals("closed", ticket.getValue(Key.STATUS));
- assertEquals("fixed", ticket.getValue(Key.RESOLUTION));
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientTest.java
deleted file mode 100644
index 0d3a526fa..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/AbstractTracClientTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.net.Proxy;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.IProxyProvider;
-import org.eclipse.mylyn.commons.net.WebLocation;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.trac.core.TracClientFactory;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * Provides a base implementation for test cases that access trac repositories.
- *
- * @author Steffen Pingel
- */
-public abstract class AbstractTracClientTest extends TestCase {
-
- public String repositoryUrl;
-
- public ITracClient repository;
-
- public String username;
-
- public String password;
-
- public Version version;
-
- private final PrivilegeLevel level;
-
- final IProgressMonitor callback = new NullProgressMonitor();
-
- public AbstractTracClientTest(Version version, PrivilegeLevel level) {
- this.version = version;
- this.level = level;
- }
-
- public AbstractTracClientTest(Version version) {
- this(version, PrivilegeLevel.USER);
- }
-
- public AbstractTracClientTest() {
- this(null, PrivilegeLevel.USER);
- }
-
- public ITracClient connect096() throws Exception {
- return connect(TracTestConstants.TEST_TRAC_096_URL);
- }
-
- public ITracClient connect010() throws Exception {
- return connect(TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public ITracClient connect010DigestAuth() throws Exception {
- return connect(TracTestConstants.TEST_TRAC_010_DIGEST_AUTH_URL);
- }
-
- public ITracClient connect011() throws Exception {
- return connect(TracTestConstants.TEST_TRAC_011_URL);
- }
-
- public ITracClient connect(String url) throws Exception {
- return connect(url, Proxy.NO_PROXY);
- }
-
- public ITracClient connect(String url, Proxy proxy) throws Exception {
- Credentials credentials = TestUtil.readCredentials(level);
- return connect(url, credentials.username, credentials.password, proxy);
- }
-
- public ITracClient connect(String url, String username, String password) throws Exception {
- return connect(url, username, password, Proxy.NO_PROXY);
- }
-
- public ITracClient connect(String url, String username, String password, Proxy proxy) throws Exception {
- return connect(url, username, password, proxy, version);
- }
-
- public ITracClient connect(String url, String username, String password, final Proxy proxy, Version version)
- throws Exception {
- this.repositoryUrl = url;
- this.username = username;
- this.password = password;
-
- WebLocation location = new WebLocation(url, username, password, new IProxyProvider() {
- public Proxy getProxyForHost(String host, String proxyType) {
- return proxy;
- }
- });
- this.repository = TracClientFactory.createClient(location, version);
-
- return this.repository;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientFactoryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientFactoryTest.java
deleted file mode 100644
index 74d45ac7e..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientFactoryTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.commons.net.WebLocation;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.trac.core.TracClientFactory;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.TracLoginException;
-import org.eclipse.mylyn.internal.trac.core.client.TracWebClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracXmlRpcClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * @author Steffen Pingel
- */
-public class TracClientFactoryTest extends TestCase {
-
- public void testCreateClient() throws Exception {
- WebLocation location = new WebLocation(TracTestConstants.TEST_TRAC_010_URL, "user", "password");
- ITracClient client = TracClientFactory.createClient(location, Version.TRAC_0_9);
- assertTrue(client instanceof TracWebClient);
-
- location = new WebLocation(TracTestConstants.TEST_TRAC_010_SSL_URL, "user", "password");
- client = TracClientFactory.createClient(location, Version.TRAC_0_9);
- assertTrue(client instanceof TracWebClient);
-
- location = new WebLocation(TracTestConstants.TEST_TRAC_010_URL, "user", "password");
- client = TracClientFactory.createClient(location, Version.XML_RPC);
- assertTrue(client instanceof TracXmlRpcClient);
-
- location = new WebLocation(TracTestConstants.TEST_TRAC_010_SSL_URL, "user", "password");
- client = TracClientFactory.createClient(location, Version.XML_RPC);
- assertTrue(client instanceof TracXmlRpcClient);
- }
-
- public void testCreateClientNull() throws Exception {
- try {
- WebLocation location = new WebLocation(TracTestConstants.TEST_TRAC_010_URL, "user", "password");
- TracClientFactory.createClient(location, null);
- fail("Expected Exception");
- } catch (Exception e) {
- }
- }
-
- public void testProbeClient096() throws Exception {
- probeClient(TracTestConstants.TEST_TRAC_096_URL, false);
- }
-
- public void testProbeClient010() throws Exception {
- probeClient(TracTestConstants.TEST_TRAC_010_URL, true);
- }
-
- public void testProbeClient010DigestAuth() throws Exception {
- probeClient(TracTestConstants.TEST_TRAC_010_DIGEST_AUTH_URL, true);
- }
-
- protected void probeClient(String url, boolean xmlrpcInstalled) throws Exception {
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
- WebLocation location = new WebLocation(url, credentials.username, credentials.password);
- Version version = TracClientFactory.probeClient(location);
- if (xmlrpcInstalled) {
- assertEquals(Version.XML_RPC, version);
- } else {
- assertEquals(Version.TRAC_0_9, version);
- }
-
- location = new WebLocation(url, "", "");
- version = TracClientFactory.probeClient(location);
- assertEquals(Version.TRAC_0_9, version);
-
- try {
- location = new WebLocation(url, "invaliduser", "password");
- version = TracClientFactory.probeClient(location);
- fail("Expected TracLoginException, got " + version);
- } catch (TracLoginException e) {
- }
-
- try {
- location = new WebLocation(url + "/nonexistant", "", "");
- version = TracClientFactory.probeClient(location);
- fail("Expected TracException, got " + version);
- } catch (TracException e) {
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientProxyTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientProxyTest.java
deleted file mode 100644
index 7f2643ed1..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracClientProxyTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.net.InetSocketAddress;
-import java.net.Proxy;
-import java.net.Proxy.Type;
-
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.trac.tests.support.TestProxy;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-public class TracClientProxyTest extends AbstractTracClientTest {
-
- private TestProxy testProxy;
-
- private Proxy proxy;
-
- private int proxyPort;
-
- public TracClientProxyTest() {
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- testProxy = new TestProxy();
- proxyPort = testProxy.startAndWait();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- testProxy.stop();
- }
-
- public void testConnectProxyWeb() throws Exception {
- version = Version.TRAC_0_9;
- connectProxy(TracTestConstants.TEST_TRAC_010_URL, "GET");
- }
-
- public void testConnectProxyXmlRpc() throws Exception {
- version = Version.XML_RPC;
- connectProxy(TracTestConstants.TEST_TRAC_010_URL, "POST");
- }
-
- public void testConnectProxySslWeb() throws Exception {
- version = Version.TRAC_0_9;
- connectProxy(TracTestConstants.TEST_TRAC_010_SSL_URL, "CONNECT");
- }
-
- public void testConnectProxySslXmlRpc() throws Exception {
- version = Version.XML_RPC;
- connectProxy(TracTestConstants.TEST_TRAC_010_SSL_URL, "CONNECT");
- }
-
- private void connectProxy(String url, String expectedMethod) throws Exception {
- testProxy.setResponse(TestProxy.NOT_FOUND);
- proxy = new Proxy(Type.HTTP, new InetSocketAddress("localhost", proxyPort));
- ITracClient client = connect(url, proxy);
- try {
- client.validate(callback);
- } catch (TracException e) {
- }
-
- assertEquals(expectedMethod, testProxy.getRequest().getMethod());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracSearchTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracSearchTest.java
deleted file mode 100644
index 538f6cd81..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracSearchTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-
-/**
- * @author Steffen Pingel
- */
-public class TracSearchTest extends TestCase {
-
- private static final String QUERY1 = "&status=new|assigned|reopened&milestone~=0.1";
-
- private static final String URL1 = "&status=new&status=assigned&status=reopened&milestone=%7E0.1";
-
- private TracSearch search1;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- search1 = new TracSearch();
- search1.addFilter("status", "new");
- search1.addFilter("status", "assigned");
- search1.addFilter("status", "reopened");
- search1.addFilter("milestone", "~0.1");
- }
-
- public void testToQuery() {
- assertEquals(QUERY1, search1.toQuery());
- }
-
- public void testToQueryEmpty() {
- assertEquals("", new TracSearch().toQuery());
- }
-
- public void testToQueryOperators1() {
- TracSearch search = new TracSearch();
- search.addFilter("is", "a");
- search.addFilter("contains", "~b");
- search.addFilter("starts", "^c");
- search.addFilter("ends", "$d");
- search.addFilter("nis", "!e");
- search.addFilter("ncontains", "!~f");
- search.addFilter("nstarts", "!^g");
- search.addFilter("nends", "!$h");
-
- assertEquals("&is=a&contains~=b&starts^=c&ends$=d&nis!=e&ncontains!~=f&nstarts!^=g&nends!$=h", search.toQuery());
- }
-
- public void testToQueryOperators2() {
- TracSearch search = new TracSearch();
- search.addFilter("nstarts", "!^g");
- search.addFilter("nis", "!e");
- search.addFilter("is", "a");
-
- assertEquals("&nstarts!^=g&nis!=e&is=a", search.toQuery());
- }
-
- public void testToQuerySortOrder() {
- search1.setOrderBy("id");
- assertEquals("&order=id" + QUERY1, search1.toQuery());
-
- search1.setAscending(false);
- assertEquals("&order=id&desc=1" + QUERY1, search1.toQuery());
-
- search1.setOrderBy("summary");
- search1.setAscending(true);
- assertEquals("&order=summary" + QUERY1, search1.toQuery());
- }
-
- public void testToUrl() {
- assertEquals(URL1, search1.toUrl());
- }
-
- public void testToUrlEmpty() {
- // assertEquals("", new TracSearch().toUrl());
- // returns non-empty string to work around a strange Trac behaviour, see
- // TracSearch.toUrl()
- assertEquals("&order=id", new TracSearch().toUrl());
- }
-
- public void testToUrlEncoding() {
- search1.addFilter("encoded", "&");
- assertEquals(URL1 + "&encoded=%26", search1.toUrl());
- }
-
- public void testToUrlOperators1() {
- TracSearch search = new TracSearch();
- search.addFilter("is", "a");
- search.addFilter("contains", "~b");
- search.addFilter("starts", "^c");
- search.addFilter("ends", "$d");
- search.addFilter("nis", "!e");
- search.addFilter("ncontains", "!~f");
- search.addFilter("nstarts", "!^g");
- search.addFilter("nends", "!$h");
-
- assertEquals(
- "&is=a&contains=%7Eb&starts=%5Ec&ends=%24d&nis=%21e&ncontains=%21%7Ef&nstarts=%21%5Eg&nends=%21%24h",
- search.toUrl());
- }
-
- public void testToUrlOperators2() {
- TracSearch search = new TracSearch();
- search.addFilter("nstarts", "!^g");
- search.addFilter("nis", "!e");
- search.addFilter("is", "a");
-
- assertEquals("&nstarts=%21%5Eg&nis=%21e&is=a", search.toUrl());
- }
-
- public void testToUrlSortOrder() {
- search1.setOrderBy("id");
- assertEquals("&order=id" + QUERY1, search1.toQuery());
-
- search1.setAscending(false);
- assertEquals("&order=id&desc=1" + QUERY1, search1.toQuery());
-
- search1.setOrderBy("summary");
- search1.setAscending(true);
- assertEquals("&order=summary" + QUERY1, search1.toQuery());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java
deleted file mode 100644
index 9c55e077d..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.trac.core.client.InvalidTicketException;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTicketTest extends TestCase {
-
- public void testValid() {
- TracTicket ticket = new TracTicket();
- assertFalse(ticket.isValid());
-
- ticket.setId(1);
- assertTrue(ticket.isValid());
- }
-
- public void testPutTracValue() throws InvalidTicketException {
- TracTicket ticket = new TracTicket(1);
- ticket.putValue("summary", "a");
- assertEquals("a", ticket.getValue(Key.SUMMARY));
- assertEquals(null, ticket.getCustomValue("summary"));
- assertEquals(null, ticket.getCustomValue("a"));
-
- ticket.putValue("summary", "b");
- ticket.putValue("custom", "c");
- assertEquals("b", ticket.getValue(Key.SUMMARY));
- assertEquals(null, ticket.getCustomValue("summary"));
- assertEquals("c", ticket.getCustomValue("custom"));
- }
-
- public void testPutTracValueId() throws InvalidTicketException {
- TracTicket ticket = new TracTicket();
- assertFalse(ticket.putValue("id", "1"));
- }
-
- public void testSetCreated() throws InvalidTicketException {
- TracTicket ticket = new TracTicket(1);
- ticket.setCreated(TracUtil.parseDate(0));
- assertEquals(TimeZone.getTimeZone("GMT").getOffset(0) * 1000, ticket.getCreated().getTime());
-
- Date date = new Date();
- Calendar utc = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
- utc.setTime(date);
- ticket.setCreated(TracUtil.parseDate((int) (utc.getTimeInMillis() / 1000)));
-
- assertEquals(date.getTime() / 1000, ticket.getCreated().getTime() / 1000);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientSearchTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientSearchTest.java
deleted file mode 100644
index 5cb7a4627..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientSearchTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-
-/**
- * @author Steffen Pingel
- */
-public class TracWebClientSearchTest extends AbstractTracClientSearchTest {
-
- public TracWebClientSearchTest() {
- super(Version.TRAC_0_9);
- }
-
- // TODO move this test to AbstracTracClientTest when bug 162094 is resolved
- public void testSearchMilestoneAmpersand010() throws Exception {
- connect010();
- searchMilestoneAmpersand();
- }
-
- public void testSearchMilestoneAmpersand011() throws Exception {
- connect011();
- searchMilestoneAmpersand();
- }
-
- private void searchMilestoneAmpersand() throws Exception {
- TracSearch search = new TracSearch();
- search.addFilter("milestone", "mile&stone");
- search.setOrderBy("id");
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- assertEquals(1, result.size());
- assertTicketEquals(tickets.get(7), result.get(0));
- }
-
- public void testStatusClosed096() throws Exception {
- connect096();
- statusClosed();
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientTest.java
deleted file mode 100644
index c5784c49a..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracWebClientTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * @author Steffen Pingel
- */
-public class TracWebClientTest extends AbstractTracClientRepositoryTest {
-
- public TracWebClientTest() {
- super(Version.TRAC_0_9);
- }
-
- public void testValidate096() throws Exception {
- validate(TracTestConstants.TEST_TRAC_096_URL);
- }
-
- @Override
- public void testValidate011() throws Exception {
- try {
- validate(TracTestConstants.TEST_TRAC_011_URL);
- } catch (TracException e) {
- }
- }
-
- public void testValidateAnyPage() throws Exception {
- connect("http://mylyn.eclipse.org/");
- try {
- repository.validate(callback);
- fail("Expected TracException");
- } catch (TracException e) {
- }
- }
-
- public void testValidateAnonymousLogin() throws Exception {
- connect(TracTestConstants.TEST_TRAC_010_URL, "", "");
- repository.validate(callback);
-
- connect(TracTestConstants.TEST_TRAC_096_URL, "", "");
- repository.validate(callback);
- }
-
- public void testUpdateAttributesAnonymous096() throws Exception {
- connect(TracTestConstants.TEST_TRAC_096_URL, "", "");
- updateAttributes();
- }
-
- public void testUpdateAttributesAnonymous010() throws Exception {
- connect(TracTestConstants.TEST_TRAC_010_URL, "", "");
- updateAttributes();
- }
-
- private void updateAttributes() throws TracException {
- assertNull(repository.getMilestones());
- repository.updateAttributes(new NullProgressMonitor(), true);
- TracVersion[] versions = repository.getVersions();
- assertEquals(2, versions.length);
- Arrays.sort(versions, new Comparator<TracVersion>() {
- public int compare(TracVersion o1, TracVersion o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
- assertEquals("1.0", versions[0].getName());
- assertEquals("2.0", versions[1].getName());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientSearchTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientSearchTest.java
deleted file mode 100644
index 904d8f077..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientSearchTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-
-/**
- * @author Steffen Pingel
- */
-public class TracXmlRpcClientSearchTest extends AbstractTracClientSearchTest {
-
- public TracXmlRpcClientSearchTest() {
- super(Version.XML_RPC);
- }
-
- public void testSearchValidateTicket010() throws Exception {
- connect010();
- searchValidateTicket();
- }
-
- public void testSearchValidateTicket011() throws Exception {
- connect011();
- searchValidateTicket();
- }
-
- public void searchValidateTicket() throws Exception {
- TracSearch search = new TracSearch();
- search.addFilter("summary", "summary1");
- List<TracTicket> result = new ArrayList<TracTicket>();
- repository.search(search, result, null);
- assertEquals(1, result.size());
- assertTicketEquals(tickets.get(0), result.get(0));
- assertEquals("component1", result.get(0).getValue(Key.COMPONENT));
- assertEquals("description1", result.get(0).getValue(Key.DESCRIPTION));
- assertEquals("milestone1", result.get(0).getValue(Key.MILESTONE));
- assertEquals("anonymous", result.get(0).getValue(Key.REPORTER));
- assertEquals("summary1", result.get(0).getValue(Key.SUMMARY));
- // assertEquals("", result.get(0).getValue(Key.VERSION));
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java
deleted file mode 100644
index 4297dc52d..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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
- * Xiaoyang Guan - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests.client;
-
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.client.TracPermissionDeniedException;
-import org.eclipse.mylyn.internal.trac.core.client.TracRemoteException;
-import org.eclipse.mylyn.internal.trac.core.client.TracXmlRpcClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPage;
-import org.eclipse.mylyn.internal.trac.core.model.TracWikiPageInfo;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * @author Steffen Pingel
- * @author Xiaoyang Guan
- */
-public class TracXmlRpcClientTest extends AbstractTracClientRepositoryTest {
-
- public TracXmlRpcClientTest() {
- super(Version.XML_RPC);
- }
-
- @Override
- public void testValidate011() throws Exception {
- validate(TracTestConstants.TEST_TRAC_011_URL);
- }
-
- public void testValidateFailNoAuth() throws Exception {
- connect(TracTestConstants.TEST_TRAC_010_URL, "", "");
- try {
- repository.validate(callback);
- fail("Expected TracPermissiongDeniedException");
- } catch (TracPermissionDeniedException e) {
- }
- }
-
- public void testMulticallExceptions() throws Exception {
- connect010();
- try {
- ((TracXmlRpcClient) repository).getTickets(new int[] { 1, Integer.MAX_VALUE }, null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
- }
-
- public void testUpdateAttributes010() throws Exception {
- connect010();
- updateAttributes();
- }
-
- public void testUpdateAttributes011() throws Exception {
- connect011();
- updateAttributes();
- }
-
- public void updateAttributes() throws Exception {
- assertNull(repository.getMilestones());
- repository.updateAttributes(new NullProgressMonitor(), true);
- TracVersion[] versions = repository.getVersions();
- assertEquals(2, versions.length);
- Arrays.sort(versions, new Comparator<TracVersion>() {
- public int compare(TracVersion o1, TracVersion o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
- assertEquals("1.0", versions[0].getName());
- assertEquals("", versions[0].getDescription());
- assertEquals(new Date(0), versions[0].getTime());
- assertEquals("2.0", versions[1].getName());
- assertEquals("", versions[1].getDescription());
- assertEquals(new Date(0), versions[1].getTime());
- }
-
- public void testWikiToHtml010() throws Exception {
- connect010();
- wikiToHtml(TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public void testWikiToHtml011() throws Exception {
- connect011();
- wikiToHtml("/trac011");
- }
-
- public void wikiToHtml(String tracUrl) throws Exception {
- String html = ((TracXmlRpcClient) repository).wikiToHtml("", null);
- assertEquals("", html);
-
- html = ((TracXmlRpcClient) repository).wikiToHtml("A simple line of text.", null);
- assertEquals("<p>\nA simple line of text.\n</p>\n", html);
-
- String source = "= WikiFormattingTesting =\n" + " * '''bold''', '''!''' can be bold too''', and '''! '''\n"
- + " * ''italic''\n" + " * '''''bold italic'''''\n" + " * __underline__\n"
- + " * {{{monospace}}} or `monospace`\n" + " * ~~strike-through~~\n" + " * ^superscript^ \n"
- + " * ,,subscript,,\n" + "= Heading =\n" + "== Subheading ==\n";
-
- String expectedHtml = "<h1 id=\"WikiFormattingTesting\"><a class=\"missing wiki\" href=\""
- + tracUrl
- + "/wiki/WikiFormattingTesting\" rel=\"nofollow\">WikiFormattingTesting?</a></h1>\n<ul><li><strong>bold</strong>, <strong>\'\'\' can be bold too</strong>, and <strong>! </strong>\n</li><li><i>italic</i>\n</li><li><strong><i>bold italic</i></strong>\n</li><li><span class=\"underline\">underline</span>\n</li><li><tt>monospace</tt> or <tt>monospace</tt>\n</li><li><del>strike-through</del>\n</li><li><sup>superscript</sup> \n</li><li><sub>subscript</sub>\n</li></ul><h1 id=\"Heading\">Heading</h1>\n<h2 id=\"Subheading\">Subheading</h2>\n";
-
- html = ((TracXmlRpcClient) repository).wikiToHtml(source, null);
- assertEquals(expectedHtml, html);
- }
-
- public void testValidateWikiAPI010() throws Exception {
- connect010();
- ((TracXmlRpcClient) repository).validateWikiRpcApi(null);
- }
-
- public void testValidateWikiAPI011() throws Exception {
- connect011();
- ((TracXmlRpcClient) repository).validateWikiRpcApi(null);
- }
-
- public void testGetAllWikiPageNames010() throws Exception {
- connect010();
- getAllWikiPageNames();
- }
-
- public void testGetAllWikiPageNames011() throws Exception {
- connect011();
- getAllWikiPageNames();
- }
-
- private void getAllWikiPageNames() throws Exception {
- String[] names = ((TracXmlRpcClient) repository).getAllWikiPageNames(null);
- List<String> all = Arrays.asList(names);
- assertTrue(all.contains("Test"));
- }
-
- public void testGetWikiPage010() throws Exception {
- connect010();
- getWikiPage();
- }
-
- public void testGetWikiPage011() throws Exception {
- connect011();
- getWikiPage();
- }
-
- private void getWikiPage() throws Exception {
- TracWikiPage page = ((TracXmlRpcClient) repository).getWikiPage("TestGetPage", null);
- assertEquals("TestGetPage", page.getPageInfo().getPageName());
- assertEquals("tests@mylyn.eclipse.org", page.getPageInfo().getAuthor());
- assertEquals(2, page.getPageInfo().getVersion());
- // XXX The Date returned from Wiki API seems to have a problem with the Time Zone
- //String date = "Sat Nov 11 18:10:56 EST 2006";
- //assertEquals(date, page.getPageVersion().getLastModified().toString());
- assertEquals("Version 2", page.getContent());
- assertTrue(page.getPageHTML().startsWith("<html>"));
-
- page = ((TracXmlRpcClient) repository).getWikiPage("TestGetPage", 1, null);
- assertEquals("TestGetPage", page.getPageInfo().getPageName());
- assertEquals("anonymous", page.getPageInfo().getAuthor());
- assertEquals(1, page.getPageInfo().getVersion());
- assertEquals("Version 1", page.getContent());
- assertTrue(page.getPageHTML().startsWith("<html>"));
- }
-
- public void testGetWikiPageInvalid010() throws Exception {
- connect010();
- getWikiPageInvalid();
- }
-
- public void testGetWikiPageInvalid011() throws Exception {
- connect011();
- getWikiPageInvalid();
- }
-
- private void getWikiPageInvalid() throws Exception {
- // get info -- non-existing version
- try {
- ((TracXmlRpcClient) repository).getWikiPageInfo("Test", 10, null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get info -- non-existing page name
- try {
- ((TracXmlRpcClient) repository).getWikiPageInfo("NoSuchPage", null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get info -- null parameter
- try {
- ((TracXmlRpcClient) repository).getWikiPageInfo(null, null);
- fail("Expected RuntimeException");
- } catch (IllegalArgumentException e) {
- }
-
- // get content -- non-existing version
- try {
- ((TracXmlRpcClient) repository).getWikiPageContent("Test", 10, null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get content -- non-existing page name
- try {
- ((TracXmlRpcClient) repository).getWikiPageContent("NoSuchPage", null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get content -- null parameter
- try {
- ((TracXmlRpcClient) repository).getWikiPageContent(null, null);
- fail("Expected RuntimeException");
- } catch (IllegalArgumentException e) {
- }
-
- // get HTML -- non-existing version
- try {
- ((TracXmlRpcClient) repository).getWikiPageHtml("Test", 10, null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get HTML -- non-existing page name
- try {
- ((TracXmlRpcClient) repository).getWikiPageHtml("NoSuchPage", null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get HTML -- null parameter
- try {
- ((TracXmlRpcClient) repository).getWikiPageHtml(null, null);
- fail("Expected RuntimeException");
- } catch (IllegalArgumentException e) {
- }
-
- // get a page -- non-existing version
- try {
- ((TracXmlRpcClient) repository).getWikiPage("Test", 10, null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get a page -- non-existing page name
- try {
- ((TracXmlRpcClient) repository).getWikiPage("NoSuchPage", null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get a page -- null parameter
- try {
- ((TracXmlRpcClient) repository).getWikiPage(null, null);
- fail("Expected RuntimeException");
- } catch (IllegalArgumentException e) {
- }
-
- // get all versions of a page -- non-existing page name
- try {
- ((TracXmlRpcClient) repository).getWikiPageInfoAllVersions("NoSuchPage", null);
- fail("Expected TracRemoteException");
- } catch (TracRemoteException e) {
- }
-
- // get all versions of a page -- null parameter
- try {
- ((TracXmlRpcClient) repository).getWikiPageInfoAllVersions(null, null);
- fail("Expected RuntimeException");
- } catch (IllegalArgumentException e) {
- }
- }
-
- public void testGetWikiPageInfoAllVersions010() throws Exception {
- connect010();
- getWikiPageInfoAllVersions();
- }
-
- public void testGetWikiPageInfoAllVersions011() throws Exception {
- connect011();
- getWikiPageInfoAllVersions();
- }
-
- private void getWikiPageInfoAllVersions() throws Exception {
- String pageName = "Test";
-
- TracWikiPageInfo[] versions = ((TracXmlRpcClient) repository).getWikiPageInfoAllVersions(pageName, null);
- assertTrue(versions.length >= 1);
- int counter = 1;
- for (TracWikiPageInfo version : versions) {
- assertTrue(version.getPageName().equals(pageName));
- assertTrue(version.getVersion() == counter++); // assuming versions are ordered increasingly
- }
- }
-
- public void testGetRecentWikiChanges010() throws Exception {
- connect010();
- getRecentWikiChanges();
- }
-
- public void testGetRecentWikiChanges011() throws Exception {
- connect011();
- getRecentWikiChanges();
- }
-
- private void getRecentWikiChanges() throws Exception {
- TracWikiPageInfo[] changes = ((TracXmlRpcClient) repository).getRecentWikiChanges(new Date(0), null);
- TracWikiPageInfo testPage = null;
- for (TracWikiPageInfo item : changes) {
- assertTrue(item.getPageName() != null);
- if (item.getPageName().equals("Test")) {
- testPage = item;
- }
- }
- assertTrue(testPage != null);
- }
-
- public void testPutWikiPage010() throws Exception {
- connect010();
- putWikiPage();
- }
-
- public void testPutWikiPage011() throws Exception {
- connect011();
- putWikiPage();
- }
-
- private void putWikiPage() throws Exception {
- // TODO testing wiki.putPage()
- }
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java
deleted file mode 100644
index 160e6c2ad..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.client;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.trac.core.util.TracHttpClientTransportFactory;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * Test cases for <a href="http://trac-hacks.org/wiki/XmlRpcPlugin">Trac XML-RPC Plugin</a> (revision 1188 or higher is
- * required).
- *
- * <p>
- * This class does not depend on any Mylyn (connector) classes except for TracHttpClientTransportFactory which is needed
- * for initialization of HttpClient.
- *
- * @author Steffen Pingel
- */
-public class TracXmlRpcTest extends TestCase {
-
- public static final String XMLRPC_URL = "/login/xmlrpc";
-
- private XmlRpcClient xmlrpc;
-
- private String username;
-
- // private String password;
-
- private Random random;
-
- private ArrayList<Integer> tickets;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- random = new Random();
-
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.ADMIN);
- createConnection(new URL(TracTestConstants.TEST_TRAC_010_URL + XMLRPC_URL), credentials.username,
- credentials.password);
-
- tickets = new ArrayList<Integer>();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- for (int id : tickets) {
- call("ticket.delete", id);
- }
- }
-
- private void createConnection(URL url, String username, String password) throws Exception {
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setEncoding("UTF-8");
- config.setBasicUserName(username);
- config.setBasicPassword(password);
- config.setServerURL(url);
-
- xmlrpc = new XmlRpcClient();
- xmlrpc.setConfig(config);
-
- TracHttpClientTransportFactory factory = new TracHttpClientTransportFactory(xmlrpc, new HttpClient());
- xmlrpc.setTransportFactory(factory);
-
- this.username = username;
- // this.password = password;
- }
-
- private int createTicket(String summary, String description, Map<String, Object> attributes)
- throws XmlRpcException, IOException {
- int id = (Integer) call("ticket.create", summary, description, attributes);
- tickets.add(id);
- return id;
- }
-
- private Object call(String method, Object... parameters) throws XmlRpcException, IOException {
- Object result = xmlrpc.execute(method, parameters);
- if (result instanceof XmlRpcException) {
- throw (XmlRpcException) result;
- }
- return result;
- }
-
- public Map<String, Object> createMultiCall(String methodName, Object... parameters) throws XmlRpcException,
- IOException {
- Map<String, Object> table = new Hashtable<String, Object>();
- table.put("methodName", methodName);
- table.put("params", parameters);
- return table;
- }
-
- private void internalTestCrud(String module) throws XmlRpcException, IOException {
- try {
- call(module + ".delete", "foo");
- } catch (XmlRpcException e) {
- }
-
- call(module + ".create", "foo", "bar");
- try {
- assertHasValue((Object[]) call(module + ".getAll"), "foo");
- assertEquals("bar", (String) (call(module + ".get", "foo")));
-
- call(module + ".update", "foo", "baz");
- assertEquals("baz", (String) (call(module + ".get", "foo")));
- } finally {
- call(module + ".delete", "foo");
- }
- }
-
- private Object createValue(Object fieldName, Object clazz) {
- if (clazz == String.class) {
- return fieldName.toString() + random.nextInt();
- } else if (clazz == Date.class) {
- return new Date();
- } else if (clazz == Boolean.class) {
- return random.nextBoolean();
- } else if (clazz == Double.class) {
- return random.nextDouble();
- } else if (clazz == Integer.class) {
- return random.nextInt();
- }
-
- throw new RuntimeException("Invalid test data: " + fieldName + ", " + clazz);
- }
-
- private void internalTestComponent(String module, Object... fields) throws XmlRpcException, IOException {
- try {
- call(module + ".delete", "foo");
- } catch (XmlRpcException e) {
- }
-
- Map<String, Object> attributes = new Hashtable<String, Object>();
- for (int i = 0; i < fields.length; i += 2) {
- attributes.put((String) fields[i], createValue(fields[i], fields[i + 1]));
- }
-
- call(module + ".create", "foo", attributes);
-
- try {
- assertHasValue((Object[]) call(module + ".getAll"), "foo");
- Map<?, ?> values = (Map<?, ?>) call(module + ".get", "foo");
- for (String attribute : attributes.keySet()) {
- assertEquals(attributes.get(attribute), values.get(attribute));
- }
-
- for (int i = 0; i < fields.length; i += 2) {
- attributes.put((String) fields[i], createValue(fields[i], fields[i + 1]));
- }
-
- call(module + ".update", "foo", attributes);
- values = (Map<?, ?>) call(module + ".get", "foo");
- for (String attribute : attributes.keySet()) {
- assertEquals(attributes.get(attribute), values.get(attribute));
- }
- } finally {
- call(module + ".delete", "foo");
- }
- }
-
- public void testMilestoneDate() throws XmlRpcException, IOException {
- try {
- call("ticket.milestone.delete", "foo");
- } catch (XmlRpcException e) {
- }
-
- int due = (int) (System.currentTimeMillis() / 1000) + 1000;
- int completed = (int) (System.currentTimeMillis() / 1000);
-
- Map<String, Object> attributes = new Hashtable<String, Object>();
- attributes.put("description", "description");
- attributes.put("due", due);
- attributes.put("completed", completed);
-
- call("ticket.milestone.create", "foo", attributes);
-
- Map<?, ?> values = (Map<?, ?>) call("ticket.milestone.get", "foo");
- assertEquals(new Integer(due), values.get("due"));
- assertEquals(new Integer(completed), values.get("completed"));
-
- call("ticket.milestone.delete", "foo");
- }
-
- private void assertHasValue(Object[] items, Object value) {
- for (Object item : items) {
- if (item.equals(value)) {
- return;
- }
- }
- fail("Could not find expected value: " + value);
- }
-
- private void assertTicketHasAttributes(Map<String, Object> attributes, int id, Object[] ticket) {
- assertTicketHasAttributes(attributes, id, ticket, true);
- }
-
- private void assertTicketHasAttributes(Map<String, Object> attributes, int id, Object[] ticket, boolean newTicket) {
- assertEquals(id, ticket[0]);
- assertTrue(ticket[1] instanceof Integer); // time created
- // time changed
- if (newTicket) {
- assertEquals(ticket[1], ticket[2]);
- } else {
- assertTrue((Integer) ticket[2] >= (Integer) ticket[1]);
- }
- Map<?, ?> values = (Map<?, ?>) ticket[3];
- for (String attribute : attributes.keySet()) {
- assertEquals(attributes.get(attribute), values.get(attribute));
- }
- }
-
- public void testGetTicket() throws XmlRpcException, IOException {
- Map<String, Object> attributes = new Hashtable<String, Object>();
- attributes.put("type", "task");
- attributes.put("status", "closed");
- int id = createTicket("summary", "description", attributes);
-
- attributes.put("summary", "summary");
- attributes.put("description", "description");
-
- Object[] ticket = (Object[]) call("ticket.get", id);
- assertTicketHasAttributes(attributes, id, ticket);
- }
-
- public void testGetTicketNonExistant() throws XmlRpcException, IOException {
- try {
- call("ticket.delete", Integer.MAX_VALUE);
- } catch (Exception e) {
- // ignore
- }
-
- try {
- List<?> ticket = (List<?>) call("ticket.get", Integer.MAX_VALUE);
- fail("Expected XmlRpcException, got ticket instead: " + ticket);
- } catch (XmlRpcException e) {
- // ignore
- }
- }
-
- public void testGetTicketUmlaute() throws XmlRpcException, IOException {
- Map<String, Object> attributes = new Hashtable<String, Object>();
- int id = createTicket("summarya\u0308O\u030b", "\u00d8", attributes);
-
- attributes.put("summary", "summarya\u0308O\u030b");
- attributes.put("description", "\u00d8");
-
- Object[] ticket = (Object[]) call("ticket.get", id);
- assertTicketHasAttributes(attributes, id, ticket);
- }
-
- public void testUpdateTicket() throws XmlRpcException, IOException {
- int id = createTicket("summary", "description", new Hashtable<String, Object>());
-
- Map<String, Object> attributes = new Hashtable<String, Object>();
- attributes.put("summary", "changed");
- call("ticket.update", id, "my comment", attributes);
-
- attributes.put("description", "description");
-
- Object[] ticket = (Object[]) call("ticket.get", id);
- Map<?, ?> values = (Map<?, ?>) ticket[3];
- for (String attribute : attributes.keySet()) {
- assertEquals(attributes.get(attribute), values.get(attribute));
- }
- }
-
- public void testTicketCustomFields() throws XmlRpcException, IOException {
- Map<String, Object> attributes = new Hashtable<String, Object>();
- attributes.put("custom_text_field", "myvalue");
- int id = createTicket("summary", "description", attributes);
-
- // check for default values
- attributes.put("custom_checkbox_field", "1");
- attributes.put("custom_select_field", "two");
- attributes.put("custom_radio_field", "baz");
- attributes.put("custom_textarea_field", "default text");
-
- Object[] ticket = (Object[]) call("ticket.get", id);
- assertTicketHasAttributes(attributes, id, ticket);
-
- attributes.put("custom_text_field", "myvalue2");
- attributes.put("custom_checkbox_field", "0");
- attributes.put("custom_select_field", "one");
- attributes.put("custom_radio_field", "foo");
- attributes.put("custom_textarea_field", "mytext");
-
- call("ticket.update", id, "my comment", attributes);
-
- ticket = (Object[]) call("ticket.get", id);
- assertTicketHasAttributes(attributes, id, ticket, false);
- }
-
- public void testGetChangeLog() throws XmlRpcException, IOException {
- int id = createTicket("summary", "description", new Hashtable<String, Object>());
-
- Map<String, Object> attributes = new Hashtable<String, Object>();
- attributes.put("summary", "changed");
- call("ticket.update", id, "my comment", attributes);
-
- Object[] log = (Object[]) call("ticket.changeLog", id, 0);
- Object[] entry = (Object[]) log[0];
- assertTrue(entry[0] instanceof Integer); // time
- assertEquals(username, entry[1]); // author
- assertEquals("summary", entry[2]); // field
- assertEquals("summary", entry[3]); // old value
- assertEquals("changed", entry[4]); // new value
- }
-
- public void testMultiGetTicket() throws XmlRpcException, IOException {
- int id1 = createTicket("summary1", "description1", new Hashtable<String, Object>());
- int id2 = createTicket("summary2", "description2", new Hashtable<String, Object>());
-
- List<Map<?, ?>> calls = new ArrayList<Map<?, ?>>();
- calls.add(createMultiCall("ticket.get", id1));
- calls.add(createMultiCall("ticket.get", id2));
- Object[] ret = (Object[]) call("system.multicall", calls);
-
- Object[] ticket = (Object[]) ((Object[]) ret[0])[0];
- Map<String, Object> attributes = new Hashtable<String, Object>();
- attributes.put("summary", "summary1");
- attributes.put("description", "description1");
- assertTicketHasAttributes(attributes, id1, ticket);
-
- ticket = (Object[]) ((Object[]) ret[1])[0];
- attributes.clear();
- attributes.put("summary", "summary2");
- attributes.put("description", "description2");
- assertTicketHasAttributes(attributes, id2, ticket);
- }
-
- public void testAttachment() throws XmlRpcException, IOException {
- int id = createTicket("summary", "description", new Hashtable<String, Object>());
-
- String filename = (String) call("ticket.putAttachment", id, "attach.txt", "description", "data".getBytes(),
- true);
- // the returned filename may differ, since another ticket may have an
- // attachment named "attach.txt"
- // assertEquals("attach.txt", filename);
-
- Object[] ret = (Object[]) call("ticket.listAttachments", id);
- assertEquals(1, ret.length);
- Object[] attachment = (Object[]) ret[0];
- assertEquals("attach.txt", attachment[0]);
- assertEquals("description", attachment[1]);
- assertEquals(4, attachment[2]);
- // date
- assertEquals(username, attachment[4]);
-
- byte[] bytes = (byte[]) call("ticket.getAttachment", id, filename);
- String data = new String(bytes);
- assertEquals("data", data);
-
- // test override
-
- String filename2 = (String) call("ticket.putAttachment", id, filename, "newdescription", "newdata".getBytes(),
- true);
- assertEquals(filename, filename2);
- ret = (Object[]) call("ticket.listAttachments", id);
- assertEquals(1, ret.length);
- attachment = (Object[]) ret[0];
- assertEquals("attach.txt", attachment[0]);
- assertEquals("newdescription", attachment[1]);
- assertEquals(7, attachment[2]);
- // date
- assertEquals(username, attachment[4]);
- bytes = (byte[]) call("ticket.getAttachment", id, filename);
- data = new String(bytes);
- assertEquals("newdata", data);
-
- String filename3 = (String) call("ticket.putAttachment", id, "attach.txt", "description", "data".getBytes(),
- false);
- assertFalse("attach.txt".equals(filename3));
- ret = (Object[]) call("ticket.listAttachments", id);
- assertEquals(2, ret.length);
- }
-
- public void testDeleteAttachment() throws XmlRpcException, IOException {
- int id = createTicket("summary", "description", new Hashtable<String, Object>());
-
- String filename = (String) call("ticket.putAttachment", id, "attach.txt", "description", "data".getBytes(),
- true);
-
- Object[] ret = (Object[]) call("ticket.listAttachments", id);
- assertEquals(1, ret.length);
-
- call("ticket.deleteAttachment", id, filename);
-
- ret = (Object[]) call("ticket.listAttachments", id);
- assertEquals(0, ret.length);
- }
-
- public void testDuplicateAttachment() throws XmlRpcException, IOException {
- int id1 = createTicket("summary", "description", new Hashtable<String, Object>());
- int id2 = createTicket("summary", "description", new Hashtable<String, Object>());
-
- String filename1 = (String) call("ticket.putAttachment", id1, "attach.txt", "description", "data".getBytes(),
- true);
- String filename2 = (String) call("ticket.putAttachment", id2, "attach.txt", "description", "data2".getBytes(),
- true);
- assertEquals("attach.txt", filename1);
- assertEquals(filename1, filename2);
-
- byte[] bytes = (byte[]) call("ticket.getAttachment", id1, "attach.txt");
- String data = new String(bytes);
- assertEquals("data", data);
-
- bytes = (byte[]) call("ticket.getAttachment", id2, "attach.txt");
- data = new String(bytes);
- assertEquals("data2", data);
- }
-
- public void testQuery() throws XmlRpcException, IOException {
- Object[] ret = (Object[]) call("ticket.query", "summary~=foo|bar|baz");
- for (Object id : ret) {
- call("ticket.delete", (Integer) id);
- }
-
- int id1 = createTicket("foobarsum1", "description", new Hashtable<String, Object>());
- int id2 = createTicket("foobaz sum2", "description", new Hashtable<String, Object>());
- int id3 = createTicket("foobarbaz3", "foobarbaz description3", new Hashtable<String, Object>());
-
- ret = (Object[]) call("ticket.query", "summary=foobarsum1|foobaz sum2");
- assertEquals(2, ret.length);
- assertEquals(id1, ret[0]);
- assertEquals(id2, ret[1]);
-
- // the first criterium is ignored
- ret = (Object[]) call("ticket.query", "summary~=foobarsum1&summary~=foobaz sum2");
- assertEquals(1, ret.length);
- assertEquals(id2, ret[0]);
-
- ret = (Object[]) call("ticket.query", "summary~=bar|baz");
- assertEquals(3, ret.length);
-
- ret = (Object[]) call("ticket.query", "description~=foobarbaz description3");
- assertEquals(1, ret.length);
- assertEquals(id3, ret[0]);
- }
-
- public void testQueryAll() throws XmlRpcException, IOException {
- int id = createTicket("foo", "description", new Hashtable<String, Object>());
-
- Object[] ret = (Object[]) call("ticket.query", "order=id");
- assertTrue(ret.length > 0);
- assertHasValue(ret, id);
- }
-
- public void testPriorities() throws XmlRpcException, IOException {
- internalTestCrud("ticket.priority");
- }
-
- public void testSeverities() throws XmlRpcException, IOException {
- internalTestCrud("ticket.severity");
- }
-
- public void testType() throws XmlRpcException, IOException {
- internalTestCrud("ticket.type");
- }
-
- public void testStatus() throws XmlRpcException, IOException {
- internalTestCrud("ticket.status");
- }
-
- public void testResolutions() throws XmlRpcException, IOException {
- internalTestCrud("ticket.resolution");
- }
-
- public void testVersions() throws XmlRpcException, IOException {
- internalTestComponent("ticket.version", "time", Integer.class, "description", String.class);
- }
-
- public void testComponents() throws XmlRpcException, IOException {
- internalTestComponent("ticket.component", "owner", String.class, "description", String.class);
- }
-
- public void testMilestones() throws XmlRpcException, IOException {
- internalTestComponent("ticket.milestone", "due", Integer.class, "completed", Integer.class, "description",
- String.class);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/RepositorySearchTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/RepositorySearchTest.java
deleted file mode 100644
index 8412b899d..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/RepositorySearchTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.search.RepositorySearchResult;
-import org.eclipse.mylyn.internal.tasks.ui.search.SearchHitCollector;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.trac.tests.support.TestFixture;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
-
-/**
- * @author Steffen Pingel
- */
-public class RepositorySearchTest extends TestCase {
-
- private TestData data;
-
- private TaskRepositoryManager manager;
-
- private TaskRepository repository;
-
- public RepositorySearchTest() {
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- data = TestFixture.init010();
- manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
- }
-
- protected void init(String url, Version version) {
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
-
- repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, url);
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- repository.setTimeZoneId(ITracClient.TIME_ZONE);
- repository.setCharacterEncoding(ITracClient.CHARSET);
- repository.setVersion(version.name());
-
- manager.addRepository(repository);
- }
-
- public void testSearch() {
- init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
-
- TracSearch search = new TracSearch();
- String queryUrl = repository.getRepositoryUrl() + ITracClient.QUERY_URL + search.toUrl();
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
- query.setUrl(queryUrl);
- SearchHitCollector collector = new SearchHitCollector(TasksUiPlugin.getTaskList(), repository, query);
- collector.run(new NullProgressMonitor());
- RepositorySearchResult searchResult = (RepositorySearchResult) collector.getSearchResult();
- assertEquals(data.tickets.size(), searchResult.getMatchCount());
- for (Object match : searchResult.getElements()) {
- ITask task = (ITask) match;
- assertEquals(TracTestConstants.TEST_TRAC_096_URL, task.getRepositoryUrl());
- }
- }
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracAttachmentHandlerTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracAttachmentHandlerTest.java
deleted file mode 100644
index 5e5888cf3..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracAttachmentHandlerTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.trac.tests.support.TestFixture;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
-
-/**
- * @author Steffen Pingel
- */
-public class TracAttachmentHandlerTest extends TestCase {
-
- private TaskRepository repository;
-
- private TracRepositoryConnector connector;
-
- private AbstractTaskAttachmentHandler attachmentHandler;
-
- private TestData data;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- data = TestFixture.init010();
- connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- attachmentHandler = connector.getTaskAttachmentHandler();
- }
-
- protected void init(String url, Version version) {
- repository = TracTestUtil.init(url, version);
- }
-
- public void testDownloadAttachmentXmlRpc010() throws Exception {
- downloadAttachmentXmlRpc(TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public void testDownloadAttachmentXmlRpc011() throws Exception {
- downloadAttachmentXmlRpc(TracTestConstants.TEST_TRAC_011_URL);
- }
-
- private void downloadAttachmentXmlRpc(String url) throws Exception {
- init(url, Version.XML_RPC);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
- assertTrue(attachments.size() > 0);
- InputStream in = attachmentHandler.getContent(repository, task, attachments.get(0).getTaskAttribute(), null);
- try {
- byte[] result = new byte[6];
- in.read(result);
- assertEquals("Mylar\n", new String(result));
- assertEquals(-1, in.read());
- } finally {
- in.close();
- }
- }
-
- public void testGetAttachmentDataXmlRpc010() throws Exception {
- getAttachmentDataXmlRpc(TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public void testGetAttachmentDataXmlRpc011() throws Exception {
- getAttachmentDataXmlRpc(TracTestConstants.TEST_TRAC_011_URL);
- }
-
- private void getAttachmentDataXmlRpc(String url) throws Exception {
- init(url, Version.XML_RPC);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
- assertTrue(attachments.size() > 0);
- InputStream in = attachmentHandler.getContent(repository, task, attachments.get(0).getTaskAttribute(), null);
- byte[] result = new byte[6];
- try {
- in.read(result);
- } finally {
- in.close();
- }
- assertEquals("Mylar\n", new String(result));
- }
-
- public void testUploadAttachmentXmlRpc010() throws Exception {
- uploadAttachmentXmlRpc(TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public void testUploadAttachmentXmlRpc011() throws Exception {
- uploadAttachmentXmlRpc(TracTestConstants.TEST_TRAC_011_URL);
- }
-
- private void uploadAttachmentXmlRpc(String url) throws Exception {
- init(url, Version.XML_RPC);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- File file = File.createTempFile("attachment", null);
- file.deleteOnExit();
- OutputStream out = new FileOutputStream(file);
- try {
- out.write("Mylar".getBytes());
- } finally {
- out.close();
- }
- attachmentHandler.postContent(repository, task, new FileTaskAttachmentSource(file), "comment", null, null);
-
- ITracClient client = connector.getClientManager().getTracClient(repository);
- InputStream in = client.getAttachmentData(data.attachmentTicketId, file.getName(), null);
- try {
- byte[] result = new byte[5];
- in.read(result);
- assertEquals("Mylar", new String(result));
- } finally {
- in.close();
- }
- }
-
- public void testCanUploadAttachmentXmlRpc() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- assertTrue(attachmentHandler.canPostContent(repository, task));
- }
-
- public void testCanUploadAttachmentWeb() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- assertFalse(attachmentHandler.canPostContent(repository, task));
- }
-
- public void testCanDownloadAttachmentXmlRpc() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- assertTrue(attachmentHandler.canGetContent(repository, task));
- }
-
- public void testCanDownloadAttachmentWeb() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- assertFalse(attachmentHandler.canGetContent(repository, task));
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracClientManagerTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracClientManagerTest.java
deleted file mode 100644
index 0b4368528..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracClientManagerTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import java.io.File;
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.trac.core.TracClientManager;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracMilestone;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * @author Steffen Pingel
- */
-public class TracClientManagerTest extends TestCase {
-
- public void testNullCache() throws Exception {
- TaskRepository taskRepository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND,
- TracTestConstants.TEST_TRAC_096_URL);
- taskRepository.setVersion(Version.TRAC_0_9.name());
-
- TracClientManager manager = new TracClientManager(null, new TaskRepositoryLocationFactory());
- ITracClient client = manager.getTracClient(taskRepository);
- assertNull(client.getMilestones());
-
- manager.writeCache();
- assertNull(client.getMilestones());
- }
-
- public void testReadCache() throws Exception {
- TaskRepository taskRepository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND,
- TracTestConstants.TEST_TRAC_096_URL);
- taskRepository.setVersion(Version.TRAC_0_9.name());
-
- File file = File.createTempFile("mylyn", null);
- file.deleteOnExit();
-
- TracClientManager manager = new TracClientManager(file, new TaskRepositoryLocationFactory());
- ITracClient client = manager.getTracClient(taskRepository);
- assertNull(client.getMilestones());
- }
-
- public void testWriteCache() throws Exception {
- TaskRepository taskRepository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND,
- TracTestConstants.TEST_TRAC_096_URL);
- taskRepository.setVersion(Version.TRAC_0_9.name());
- taskRepository.setCredentials(AuthenticationType.REPOSITORY, null, false);
-
- File file = File.createTempFile("mylyn", null);
- file.deleteOnExit();
-
- TracClientManager manager = new TracClientManager(file, new TaskRepositoryLocationFactory());
- ITracClient client = manager.getTracClient(taskRepository);
- assertNull(client.getMilestones());
-
- client.updateAttributes(new NullProgressMonitor(), false);
- assertTrue(client.getMilestones().length > 0);
- TracMilestone[] milestones = client.getMilestones();
-
- manager.writeCache();
- manager = new TracClientManager(file, new TaskRepositoryLocationFactory());
- assertEquals(Arrays.asList(milestones), Arrays.asList(client.getMilestones()));
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryConnectorTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryConnectorTest.java
deleted file mode 100644
index e129d717b..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryConnectorTest.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.TracTaskDataHandler;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.trac.tests.support.TestFixture;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class TracRepositoryConnectorTest extends TestCase {
-
- private TestData data;
-
- private TaskRepository repository;
-
- private TracRepositoryConnector connector;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- data = TestFixture.init010();
- connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- }
-
- protected void init(String url, Version version) {
- repository = TracTestUtil.init(url, version);
- }
-
- public void testGetRepositoryUrlFromTaskUrl() {
- assertEquals("http://host/repo", connector.getRepositoryUrlFromTaskUrl("http://host/repo/ticket/1"));
- assertEquals("http://host", connector.getRepositoryUrlFromTaskUrl("http://host/ticket/2342"));
- assertEquals(null, connector.getRepositoryUrlFromTaskUrl("http://host/repo/2342"));
- assertEquals(null, connector.getRepositoryUrlFromTaskUrl("http://host/repo/ticket-2342"));
- }
-
- public void testCreateTaskFromExistingKeyXmlRpc011() throws CoreException {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- createTaskFromExistingKey();
- }
-
- public void testCreateTaskFromExistingKeyXmlRpc010() throws CoreException {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- createTaskFromExistingKey();
- }
-
- public void testCreateTaskFromExistingKeyTracWeb011() throws CoreException {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- createTaskFromExistingKey();
- }
-
- public void testCreateTaskFromExistingKeyTracWeb010() throws CoreException {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- createTaskFromExistingKey();
- }
-
- public void testCreateTaskFromExistingKeyTracWeb096() throws CoreException {
- init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- createTaskFromExistingKey();
- }
-
- protected void createTaskFromExistingKey() throws CoreException {
- String taskId = data.tickets.get(0).getId() + "";
- TaskData taskData = connector.getTaskData(repository, taskId, null);
- ITask task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
- assertNotNull(task);
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertEquals(TaskTask.class, task.getClass());
- assertTrue(task.getSummary().contains("summary1"));
- assertEquals(repository.getRepositoryUrl() + ITracClient.TICKET_URL + taskId, task.getUrl());
- }
-
- public void testClientManagerChangeTaskRepositorySettings() throws MalformedURLException {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- ITracClient client = connector.getClientManager().getTracClient(repository);
- assertEquals(Version.TRAC_0_9, client.getVersion());
-
- EditRepositoryWizard wizard = new EditRepositoryWizard(repository);
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- WizardDialog dialog = new WizardDialog(shell, wizard);
- try {
- dialog.create();
-
- ((TracRepositorySettingsPage) wizard.getSettingsPage()).setTracVersion(Version.XML_RPC);
- assertTrue(wizard.performFinish());
-
- client = connector.getClientManager().getTracClient(repository);
- assertEquals(Version.XML_RPC, client.getVersion());
- } finally {
- dialog.close();
- }
- }
-
- public void testPerformQueryXmlRpc011() {
- performQuery(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- }
-
- public void testPerformQueryXmlRpc010() {
- performQuery(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- }
-
- public void testPerformQueryWeb011() {
- performQuery(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- }
-
- public void testPerformQueryWeb010() {
- performQuery(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- }
-
- public void testPerformQueryWeb096() {
- performQuery(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- }
-
- protected void performQuery(String url, Version version) {
- init(url, version);
-
- TracSearch search = new TracSearch();
- search.addFilter("milestone", "milestone1");
- search.addFilter("milestone", "milestone2");
- search.setOrderBy("id");
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
- query.setUrl(url + ITracClient.QUERY_URL + search.toUrl());
-
- final List<TaskData> result = new ArrayList<TaskData>();
- TaskDataCollector hitCollector = new TaskDataCollector() {
- @Override
- public void accept(TaskData hit) {
- result.add(hit);
- }
- };
- IStatus queryStatus = connector.performQuery(repository, query, hitCollector, null, new NullProgressMonitor());
- assertTrue(queryStatus.isOK());
- assertEquals(3, result.size());
- assertEquals(data.tickets.get(0).getId() + "", result.get(0).getTaskId());
- assertEquals(data.tickets.get(1).getId() + "", result.get(1).getTaskId());
- assertEquals(data.tickets.get(2).getId() + "", result.get(2).getTaskId());
- }
-
- public void testUpdateAttributesWeb011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.TRAC_0_9);
- updateAttributes();
- }
-
- public void testUpdateAttributesWeb010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- updateAttributes();
- }
-
- public void testUpdateAttributesWeb096() throws Exception {
- init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- updateAttributes();
- }
-
- public void testUpdateAttributesXmlRpc011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- updateAttributes();
- }
-
- public void testUpdateAttributesXmlRpc010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- updateAttributes();
- }
-
- protected void updateAttributes() throws Exception {
- connector.updateRepositoryConfiguration(repository, new NullProgressMonitor());
-
- ITracClient server = connector.getClientManager().getTracClient(repository);
- TracVersion[] versions = server.getVersions();
- assertEquals(2, versions.length);
- Arrays.sort(versions, new Comparator<TracVersion>() {
- public int compare(TracVersion o1, TracVersion o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
- assertEquals("1.0", versions[0].getName());
- assertEquals("2.0", versions[1].getName());
- }
-
- public void testContextXmlRpc010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- String taskId = data.attachmentTicketId + "";
- ITask task = TracTestUtil.createTask(repository, taskId);
- File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- sourceContextFile.createNewFile();
- sourceContextFile.deleteOnExit();
-
- boolean result = AttachmentUtil.postContext(connector, repository, task, "", null, null);
- assertTrue(result);
-
- task = TracTestUtil.createTask(repository, taskId);
- List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
- // TODO attachment may have been overridden therefore size may not have changed
- //assertEquals(size + 1, task.getTaskData().getAttachments().size());
- ITaskAttachment attachment = attachments.get(attachments.size() - 1);
- result = AttachmentUtil.downloadContext(task, attachment, PlatformUI.getWorkbench().getProgressService());
- assertTrue(result);
- assertTrue(task.isActive());
- }
-
- public void testContextWeb096() throws Exception {
- init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- String taskId = data.attachmentTicketId + "";
- ITask task = TracTestUtil.createTask(repository, taskId);
- File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
- sourceContextFile.createNewFile();
- sourceContextFile.deleteOnExit();
-
- try {
- AttachmentUtil.postContext(connector, repository, task, "", null, null);
- fail("expected CoreException"); // operation should not be supported
- } catch (CoreException e) {
- }
- }
-
- public void testIsCompleted() {
- assertTrue(TracRepositoryConnector.isCompleted("closed"));
- assertFalse(TracRepositoryConnector.isCompleted("Closed"));
- assertFalse(TracRepositoryConnector.isCompleted("new"));
- assertFalse(TracRepositoryConnector.isCompleted("assigned"));
- assertFalse(TracRepositoryConnector.isCompleted("reopened"));
- assertFalse(TracRepositoryConnector.isCompleted("foobar"));
- assertFalse(TracRepositoryConnector.isCompleted(""));
- assertFalse(TracRepositoryConnector.isCompleted(null));
- }
-
- public void testGetTaskPriority() {
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("blocker").toString());
- assertEquals("P2", TracRepositoryConnector.getTaskPriority("critical").toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("major").toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority(null).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("").toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("foo bar").toString());
- assertEquals("P4", TracRepositoryConnector.getTaskPriority("minor").toString());
- assertEquals("P5", TracRepositoryConnector.getTaskPriority("trivial").toString());
- }
-
- public void testGetTaskPriorityFromTracPriorities() {
- TracPriority p1 = new TracPriority("a", 1);
- TracPriority p2 = new TracPriority("b", 2);
- TracPriority p3 = new TracPriority("c", 3);
- TracPriority[] priorities = new TracPriority[] { p1, p2, p3 };
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("a", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("b", priorities).toString());
- assertEquals("P5", TracRepositoryConnector.getTaskPriority("c", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("foo", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority(null, priorities).toString());
-
- p1 = new TracPriority("a", 10);
- priorities = new TracPriority[] { p1 };
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("a", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("b", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority(null, priorities).toString());
-
- p1 = new TracPriority("1", 10);
- p2 = new TracPriority("2", 20);
- p3 = new TracPriority("3", 30);
- TracPriority p4 = new TracPriority("4", 40);
- TracPriority p5 = new TracPriority("5", 70);
- TracPriority p6 = new TracPriority("6", 100);
- priorities = new TracPriority[] { p1, p2, p3, p4, p5, p6 };
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("1", priorities).toString());
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("2", priorities).toString());
- assertEquals("P2", TracRepositoryConnector.getTaskPriority("3", priorities).toString());
- assertEquals("P2", TracRepositoryConnector.getTaskPriority("4", priorities).toString());
- assertEquals("P4", TracRepositoryConnector.getTaskPriority("5", priorities).toString());
- assertEquals("P5", TracRepositoryConnector.getTaskPriority("6", priorities).toString());
- }
-
- public void testUpdateTaskFromTaskData() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
-
- TracTicket ticket = new TracTicket(123);
- ticket.putBuiltinValue(Key.DESCRIPTION, "mydescription");
- ticket.putBuiltinValue(Key.PRIORITY, "mypriority");
- ticket.putBuiltinValue(Key.SUMMARY, "mysummary");
- ticket.putBuiltinValue(Key.TYPE, "mytype");
-
- TracTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- ITracClient client = connector.getClientManager().getTracClient(repository);
- TaskData taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
- ITask task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
-
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getUrl());
- assertEquals("123", task.getTaskKey());
- assertEquals("mysummary", task.getSummary());
- assertEquals("P3", task.getPriority());
- assertEquals("mytype", task.getTaskKind());
- }
-
- public void testUpdateTaskFromTaskDataSummaryOnly() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
-
- TracTicket ticket = new TracTicket(456);
- ticket.putBuiltinValue(Key.SUMMARY, "mysummary");
-
- TracTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- ITracClient client = connector.getClientManager().getTracClient(repository);
- TaskData taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
- ITask task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
-
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "456", task.getUrl());
- assertEquals("456", task.getTaskKey());
- assertEquals("mysummary", task.getSummary());
- assertEquals("P3", task.getPriority());
- assertEquals(AbstractTask.DEFAULT_TASK_KIND, task.getTaskKind());
- }
-
- public void testUpdateTaskFromTaskDataClosed() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- TracTaskDataHandler taskDataHandler = connector.getTaskDataHandler();
- ITracClient client = connector.getClientManager().getTracClient(repository);
- ITask task = TasksUi.getRepositoryModel().createTask(repository, "1");
-
- TracTicket ticket = new TracTicket(123);
- ticket.putBuiltinValue(Key.STATUS, "resolved");
- TaskData taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertEquals(null, task.getCompletionDate());
-
- ticket.putBuiltinValue(Key.STATUS, "closed");
- taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertEquals(new Date(0), task.getCompletionDate());
-
- ticket.putBuiltinValue(Key.STATUS, "closed");
- ticket.putBuiltinValue(Key.CHANGE_TIME, "123");
- taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertEquals(new Date(123 * 1000), task.getCompletionDate());
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryQueryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryQueryTest.java
deleted file mode 100644
index e361711c3..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracRepositoryQueryTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.tasks.ui.RefactorRepositoryUrlOperation;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class TracRepositoryQueryTest extends TestCase {
-
- public void testChangeRepositoryUrl() throws Exception {
- TaskRepository repository = TracTestUtil.init(TracTestConstants.TEST_TRAC_096_URL, Version.XML_RPC);
-
- TracSearch search = new TracSearch();
- String queryUrl = repository.getRepositoryUrl() + ITracClient.QUERY_URL + search.toUrl();
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
- query.setUrl(queryUrl);
- TasksUiPlugin.getTaskList().addQuery((RepositoryQuery) query);
-
- String taskId = "123";
- ITask task = TasksUi.getRepositoryModel().createTask(repository, taskId);
- task.setUrl(repository.getRepositoryUrl() + ITracClient.TICKET_URL + taskId);
- TasksUiPlugin.getTaskList().addTask(task);
-
- String oldUrl = repository.getRepositoryUrl();
- String newUrl = TracTestConstants.TEST_TRAC_010_URL;
- new RefactorRepositoryUrlOperation(oldUrl, newUrl).run(new NullProgressMonitor());
- repository.setRepositoryUrl(newUrl);
-
- assertEquals(newUrl, query.getRepositoryUrl());
- assertEquals(newUrl + ITracClient.QUERY_URL + search.toUrl(), query.getUrl());
- assertEquals(newUrl + ITracClient.TICKET_URL + taskId, task.getUrl());
- }
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java
deleted file mode 100644
index b75a03650..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.internal.tasks.core.TaskTask;
-import org.eclipse.mylyn.internal.tasks.core.data.TextTaskAttachmentSource;
-import org.eclipse.mylyn.internal.tasks.core.sync.SynchronizationSession;
-import org.eclipse.mylyn.internal.trac.core.TracAttribute;
-import org.eclipse.mylyn.internal.trac.core.TracAttributeMapper;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.TracTaskDataHandler;
-import org.eclipse.mylyn.internal.trac.core.TracTaskMapper;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskRelation;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.trac.tests.support.TestFixture;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskDataHandlerTest extends TestCase {
-
- private TracRepositoryConnector connector;
-
- private TaskRepository repository;
-
- private TestData data;
-
- private TracTaskDataHandler taskDataHandler;
-
- private ITracClient client;
-
- public TracTaskDataHandlerTest() {
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- data = TestFixture.init010();
- connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- taskDataHandler = connector.getTaskDataHandler();
- }
-
- protected void init(String url, Version version) {
- repository = TracTestUtil.init(url, version);
- client = connector.getClientManager().getTracClient(repository);
- }
-
- private SynchronizationSession createSession(ITask... tasks) {
- SynchronizationSession session = new SynchronizationSession();
- session.setNeedsPerformQueries(true);
- session.setTaskRepository(repository);
- session.setFullSynchronization(true);
- session.setTasks(new HashSet<ITask>(Arrays.asList(tasks)));
- return session;
- }
-
- public void testPreSynchronizationWeb096() throws Exception {
- init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
-
- Set<ITask> tasks = new HashSet<ITask>();
- tasks.add(task);
- SynchronizationSession session = createSession();
- session.setTasks(tasks);
-
- assertEquals(null, repository.getSynchronizationTimeStamp());
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(null, repository.getSynchronizationTimeStamp());
- // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
- assertEquals(null, session.getStaleTasks());
-
- int time = (int) (System.currentTimeMillis() / 1000) + 1;
- repository.setSynchronizationTimeStamp(time + "");
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
- assertEquals(null, session.getStaleTasks());
- }
-
- public void testMarkStaleTasksXmlRpc010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- markStaleTasks();
- }
-
- public void testMarkStaleTasksXmlRpc011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- markStaleTasks();
- }
-
- private void markStaleTasks() throws Exception {
- SynchronizationSession session;
- TracTicket ticket = TracTestUtil.createTicket(client, "markStaleTasks");
- ITask task = TracTestUtil.createTask(repository, ticket.getId() + "");
- long lastModified = TracUtil.toTracTime(task.getModificationDate());
-
- // an empty set should not cause contact to the repository
- repository.setSynchronizationTimeStamp(null);
- session = createSession(task);
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertNull(repository.getSynchronizationTimeStamp());
-
- repository.setSynchronizationTimeStamp(null);
- session = createSession(task);
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(Collections.singleton(task), session.getStaleTasks());
-
- // always returns the ticket because time comparison mode is >=
- repository.setSynchronizationTimeStamp(lastModified + "");
- session = createSession(task);
- connector.preSynchronization(session, null);
- // TODO this was fixed so it returns false now but only if the
- // query returns a single task
- assertFalse(session.needsPerformQueries());
- // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
- assertEquals(null, session.getStaleTasks());
-
- repository.setSynchronizationTimeStamp((lastModified + 1) + "");
- session = createSession(task);
- connector.preSynchronization(session, null);
- assertFalse(session.needsPerformQueries());
- // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
- assertEquals(null, session.getStaleTasks());
-
- // change ticket making sure it gets a new change time
- Thread.sleep(1000);
- ticket.putBuiltinValue(Key.DESCRIPTION, lastModified + "");
- client.updateTicket(ticket, "comment", null);
-
- repository.setSynchronizationTimeStamp((lastModified + 1) + "");
- session = createSession(task);
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(Collections.singleton(task), session.getStaleTasks());
- }
-
- public void testMarkStaleTasksNoTimeStampXmlRpc010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- markStaleTasksNoTimeStamp();
- }
-
- public void testMarkStaleTasksNoTimeStampXmlRpc011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- markStaleTasksNoTimeStamp();
- }
-
- private void markStaleTasksNoTimeStamp() throws Exception {
- SynchronizationSession session;
- ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
-
- session = createSession(task);
- repository.setSynchronizationTimeStamp(null);
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(Collections.singleton(task), session.getStaleTasks());
-
- session = createSession(task);
- repository.setSynchronizationTimeStamp("");
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(Collections.singleton(task), session.getStaleTasks());
-
- session = createSession(task);
- repository.setSynchronizationTimeStamp("0");
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(Collections.singleton(task), session.getStaleTasks());
-
- session = createSession(task);
- repository.setSynchronizationTimeStamp("abc");
- connector.preSynchronization(session, null);
- assertTrue(session.needsPerformQueries());
- assertEquals(Collections.singleton(task), session.getStaleTasks());
- }
-
- public void testNonNumericTaskId() {
- try {
- connector.getTaskData(repository, "abc", null);
- fail("Expected CoreException");
- } catch (CoreException e) {
- }
- }
-
- public void testAttachmentChangesLastModifiedDate010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- attachmentChangesLastModifiedDate();
- }
-
- public void testAttachmentChangesLastModifiedDate011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- attachmentChangesLastModifiedDate();
- }
-
- private void attachmentChangesLastModifiedDate() throws Exception {
- AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- Date lastModified = task.getModificationDate();
- // XXX the test case fails when comment == null
- attachmentHandler.postContent(repository, task, new TextTaskAttachmentSource("abc"), "comment", null, null);
-
- task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
- Date newLastModified = task.getModificationDate();
- assertTrue("Expected " + newLastModified + " to be more recent than " + lastModified,
- newLastModified.after(lastModified));
- }
-
- public void testAttachmentUrlEncoding010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- attachmentUrlEncoding();
- }
-
- public void testAttachmentUrlEncoding011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- attachmentUrlEncoding();
- }
-
- private void attachmentUrlEncoding() throws Exception {
- AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- TracTicket ticket = TracTestUtil.createTicket(client, "attachment url test");
- ITask task = TracTestUtil.createTask(repository, ticket.getId() + "");
- attachmentHandler.postContent(repository, task, new TextTaskAttachmentSource("abc") {
- @Override
- public String getName() {
- return "https%3A%2F%2Fbugs.eclipse.org%2Fbugs.xml.zip";
- }
- }, "comment", null, null);
-
- task = TracTestUtil.createTask(repository, ticket.getId() + "");
- List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
- assertEquals(1, attachments.size());
- assertEquals(repository.getUrl() + "/attachment/ticket/" + ticket.getId()
- + "/https%253A%252F%252Fbugs.eclipse.org%252Fbugs.xml.zip", attachments.get(0).getUrl());
- }
-
- public void testPostTaskDataInvalidCredentials010() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- postTaskDataInvalidCredentials();
- }
-
- public void testPostTaskDataInvalidCredentials011() throws Exception {
- init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
- postTaskDataInvalidCredentials();
- }
-
- private void postTaskDataInvalidCredentials() throws Exception {
- ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
- TaskData taskData = TasksUi.getTaskDataManager().getTaskData(task);
- taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW).setValue("new comment");
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("foo", "bar"), false);
- try {
- taskDataHandler.postTaskData(repository, taskData, null, null);
- } catch (CoreException expected) {
- assertEquals(RepositoryStatus.ERROR_REPOSITORY_LOGIN, expected.getStatus().getCode());
- }
- assertEquals("new comment", taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW).getValue());
- }
-
- public void testCanInitializeTaskData() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-
- ITask task = new TaskTask(TracCorePlugin.CONNECTOR_KIND, "", "");
- assertFalse(taskDataHandler.canInitializeSubTaskData(repository, task));
- task.setAttribute(TracRepositoryConnector.TASK_KEY_SUPPORTS_SUBTASKS, Boolean.TRUE.toString());
- assertTrue(taskDataHandler.canInitializeSubTaskData(repository, task));
-
- task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
- TaskData taskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "", null);
- assertFalse(taskDataHandler.canInitializeSubTaskData(repository, task));
-
- taskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertTrue(taskDataHandler.canInitializeSubTaskData(repository, task));
-
- task.setAttribute(TracRepositoryConnector.TASK_KEY_SUPPORTS_SUBTASKS, Boolean.FALSE.toString());
- connector.updateTaskFromTaskData(repository, task, taskData);
- assertTrue(taskDataHandler.canInitializeSubTaskData(repository, task));
- }
-
- public void testInitializeSubTaskDataInvalidParent() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- TaskData parentTaskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "",
- new NullProgressMonitor());
- try {
- taskDataHandler.initializeSubTaskData(repository, parentTaskData, parentTaskData, null);
- fail("expected CoreException");
- } catch (CoreException expected) {
- }
- }
-
- public void testInitializeSubTaskData() throws Exception {
- init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- TaskData parentTaskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "", null);
- TaskMapper parentTaskMapper = new TracTaskMapper(parentTaskData, null);
- parentTaskMapper.setSummary("abc");
- parentTaskMapper.setDescription("def");
- String component = parentTaskData.getRoot()
- .getMappedAttribute(TracAttribute.COMPONENT.getTracKey())
- .getOptions()
- .get(0);
- parentTaskMapper.setComponent(component);
- parentTaskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
- TaskData subTaskData = new TaskData(parentTaskData.getAttributeMapper(), TracCorePlugin.CONNECTOR_KIND, "", "");
- subTaskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKING);
- taskDataHandler.initializeSubTaskData(repository, subTaskData, parentTaskData, new NullProgressMonitor());
- TaskMapper subTaskMapper = new TracTaskMapper(subTaskData, null);
- assertEquals("", subTaskMapper.getSummary());
- assertEquals("", subTaskMapper.getDescription());
- assertEquals(component, subTaskMapper.getComponent());
- assertEquals(parentTaskData.getTaskId(), subTaskData.getRoot().getMappedAttribute(
- TracTaskDataHandler.ATTRIBUTE_BLOCKING).getValue());
- assertEquals("", parentTaskData.getRoot()
- .getMappedAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY)
- .getValue());
- }
-
- public void testGetSubTaskIds() throws Exception {
- TaskData taskData = new TaskData(new TracAttributeMapper(new TaskRepository("", "")),
- TracCorePlugin.CONNECTOR_KIND, "", "");
- TaskAttribute blockedBy = taskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
- Collection<String> subTaskIds;
-
- blockedBy.setValue("123 456");
- subTaskIds = getSubTaskIds(taskData);
- assertEquals(2, subTaskIds.size());
- assertTrue(subTaskIds.contains("123"));
- assertTrue(subTaskIds.contains("456"));
-
- blockedBy.setValue("7,8");
- subTaskIds = getSubTaskIds(taskData);
- assertEquals(2, subTaskIds.size());
- assertTrue(subTaskIds.contains("7"));
- assertTrue(subTaskIds.contains("8"));
-
- blockedBy.setValue(" 7 , 8, ");
- subTaskIds = getSubTaskIds(taskData);
- assertEquals(2, subTaskIds.size());
- assertTrue(subTaskIds.contains("7"));
- assertTrue(subTaskIds.contains("8"));
-
- blockedBy.setValue("7");
- subTaskIds = getSubTaskIds(taskData);
- assertEquals(1, subTaskIds.size());
- assertTrue(subTaskIds.contains("7"));
-
- blockedBy.setValue("");
- subTaskIds = getSubTaskIds(taskData);
- assertEquals(0, subTaskIds.size());
-
- blockedBy.setValue(" ");
- subTaskIds = getSubTaskIds(taskData);
- assertEquals(0, subTaskIds.size());
- }
-
- private Collection<String> getSubTaskIds(TaskData taskData) {
- List<String> subTaskIds = new ArrayList<String>();
- Collection<TaskRelation> relations = connector.getTaskRelations(taskData);
- for (TaskRelation taskRelation : relations) {
- subTaskIds.add(taskRelation.getTaskId());
- }
- return subTaskIds;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracUtilTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracUtilTest.java
deleted file mode 100644
index b00729a13..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracUtilTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.core;
-
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-
-/**
- * @author Steffen Pingel
- */
-public class TracUtilTest extends TestCase {
-
- private TaskRepository taskRepository;
-
- @Override
- protected void setUp() throws Exception {
- taskRepository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, TracTestConstants.TEST_TRAC_010_URL);
- }
-
- public void testToTracSearch() {
- String queryParameter = "&order=priority&status=new&status=assigned&status=reopened&milestone=M1&owner=%7E%C3%A4%C3%B6%C3%BC";
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(taskRepository);
- query.setUrl(taskRepository.getRepositoryUrl() + ITracClient.QUERY_URL + queryParameter);
-
- TracSearch search = TracUtil.toTracSearch(query);
- assertNotNull(search);
- assertEquals(queryParameter, search.toUrl());
- }
-
- public void testToTracSearchFilterList() {
- String parameterUrl = "&status=new&status=assigned&status=reopened&milestone=0.1";
- String queryUrl = taskRepository.getRepositoryUrl() + ITracClient.QUERY_URL + parameterUrl;
- IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(taskRepository);
- query.setUrl(queryUrl);
-
- TracSearch filterList = TracUtil.toTracSearch(query);
- assertEquals(parameterUrl, filterList.toUrl());
- assertEquals("&status=new|assigned|reopened&milestone=0.1", filterList.toQuery());
-
- List<TracSearchFilter> list = filterList.getFilters();
- TracSearchFilter filter = list.get(0);
- assertEquals("status", filter.getFieldName());
- assertEquals(Arrays.asList("new", "assigned", "reopened"), filter.getValues());
- filter = list.get(1);
- assertEquals("milestone", filter.getFieldName());
- assertEquals(Arrays.asList("0.1"), filter.getValues());
- }
-
- public void testEncodeUrl() {
- assertEquals("encode", TracUtil.encodeUrl("encode"));
- assertEquals("sp%20ace%20", TracUtil.encodeUrl("sp ace "));
- assertEquals("%2B%2B", TracUtil.encodeUrl("++"));
- assertEquals("%2520", TracUtil.encodeUrl("%20"));
- assertEquals("%2Fslash", TracUtil.encodeUrl("/slash"));
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestFixture.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestFixture.java
deleted file mode 100644
index 88dcdb40d..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestFixture.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.support;
-
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-
-/**
- * Initializes Trac repositories to a defined state. This is done once per test run, since cleaning and initializing the
- * repository for each test method would take too long.
- *
- * @author Steffen Pingel
- */
-public class TestFixture {
-
- public static XmlRpcServer.TestData data010;
-
- /**
- * Adds the existing repository content to the test data of <code>server</code>.
- */
- private static void initializeTestData(XmlRpcServer server) throws Exception {
- server.ticketMilestone("milestone1").itemCreated();
- server.ticketMilestone("milestone2").itemCreated();
- server.ticketMilestone("milestone3").itemCreated();
- server.ticketMilestone("milestone4").itemCreated();
- server.ticketMilestone("mile&stone").itemCreated();
-
- server.ticketVersion("1.0").itemCreated();
- server.ticketVersion("2.0").itemCreated();
-
- server.ticket(1).itemCreated();
- server.ticket(2).itemCreated();
- server.ticket(3).itemCreated();
- server.ticket(4).itemCreated();
- server.ticket(5).itemCreated();
- server.ticket(6).itemCreated();
- server.ticket(7).itemCreated();
- server.ticket(8).itemCreated();
- }
-
-// private static void initializeRepository(XmlRpcServer server) throws Exception {
-// server.ticketVersion(null).deleteAll();
-// server.ticketVersion("1.0").create(0, "");
-// server.ticketVersion("2.0").create(0, "");
-//
-// server.ticketMilestone(null).deleteAll();
-// server.ticketMilestone("milestone1").create();
-// server.ticketMilestone("milestone2").create();
-// server.ticketMilestone("milestone3").create();
-// server.ticketMilestone("milestone4").create();
-//
-// server.ticket().deleteAll();
-// Ticket ticket = server.ticket().create("summary1", "description1");
-// ticket.update("comment", "milestone", "milestone1");
-// ticket = server.ticket().create("summary2", "description2");
-// ticket.update("comment", "milestone", "milestone2");
-// ticket = server.ticket().create("summary3", "description3");
-// ticket.update("comment", "milestone", "milestone2");
-// ticket = server.ticket().create("summary4", "description4");
-//
-// ticket = server.ticket().create("test html entities: ���", "���\n\nmulti\nline\n\n'''bold'''\n");
-// ticket = server.ticket().create("offline handler test", "");
-// }
-
- public static XmlRpcServer.TestData init010() throws Exception {
- if (data010 == null) {
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
- XmlRpcServer server = new XmlRpcServer(TracTestConstants.TEST_TRAC_010_URL, credentials.username,
- credentials.password);
-
- initializeTestData(server);
- data010 = server.getData();
- }
- return data010;
- }
-
- public static void cleanup010() throws Exception {
- if (data010 != null) {
- // data010.cleanup();
- data010 = null;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestProxy.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestProxy.java
deleted file mode 100644
index e3e3d231c..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TestProxy.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.support;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.InterruptedIOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-public class TestProxy implements Runnable {
-
- public static final String NOT_FOUND = "HTTP/1.1 404 Not Found";
-
- private int listenPort;
-
- private Message request;
-
- private Message response;
-
- private Thread runner;
-
- private IOException exception;
-
- private volatile boolean stopped = false;
-
- public TestProxy(int listenPort) {
- this.listenPort = listenPort;
- }
-
- public TestProxy() {
- }
-
- public synchronized int getListenPort() throws InterruptedException {
- while (listenPort == 0) {
- wait();
- }
- return listenPort;
- }
-
- public void start() {
- runner = new Thread(this, "TestProxy :" + listenPort);
- runner.start();
- }
-
- public int startAndWait() throws InterruptedException {
- start();
- int port = getListenPort();
- // wait for socket to enter accept call
- Thread.sleep(100);
- return port;
- }
-
- public void run() {
- ServerSocket serverSocket = null;
- try {
- serverSocket = new ServerSocket(listenPort);
- synchronized (this) {
- listenPort = serverSocket.getLocalPort();
- notifyAll();
- }
- while (!stopped) {
- Socket socket = serverSocket.accept();
- try {
- Message request = readMessage(socket.getInputStream());
- setRequest(request);
-
- Message response = waitForResponse();
- writeMessage(response, socket.getOutputStream());
- } finally {
- try {
- socket.close();
- } catch (IOException e1) {
- }
- }
- }
- } catch (InterruptedIOException e) {
- } catch (IOException e) {
- setException(e);
- } catch (InterruptedException e) {
- } finally {
- if (serverSocket != null) {
- try {
- serverSocket.close();
- } catch (IOException e) {
- }
- }
- }
-
- }
-
- private void writeMessage(Message message, OutputStream out) throws IOException {
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out));
- writer.write(message.toString());
- }
-
- private synchronized void setException(IOException exception) {
- this.exception = exception;
- notifyAll();
- }
-
- public synchronized void checkForException() throws IOException {
- if (exception != null) {
- throw exception;
- }
- }
-
- private Message readMessage(InputStream in) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- Message message = null;
- String line;
- while ((line = reader.readLine()) != null) {
- if (line.length() == 0) {
- if (message == null) {
- throw new IOException("Incomplete message");
- }
- return message;
- }
-
- if (message == null) {
- message = new Message(line);
- } else {
- StringTokenizer t = new StringTokenizer(line, ":");
- message.headers.put(t.nextToken(), t.nextToken().trim());
- }
- }
- throw new EOFException();
- }
-
- public void stop() {
- stopped = true;
- runner.interrupt();
- try {
- runner.join(500);
- } catch (InterruptedException e) {
- }
- }
-
- public Message getRequest() {
- return request;
- }
-
- public synchronized Message waitForRequest() throws InterruptedException {
- while (request == null) {
- wait();
- }
- return request;
- }
-
- public synchronized Message waitForResponse() throws InterruptedException {
- while (response == null) {
- wait();
- }
- return response;
- }
-
- public synchronized void setResponse(Message response) {
- this.response = response;
- notifyAll();
- }
-
- public synchronized void setResponse(String response) {
- this.response = new Message(response);
- notifyAll();
- }
-
- public synchronized void setRequest(Message request) {
- this.request = request;
- notifyAll();
- }
-
- public static class Message {
-
- public Message(String request) {
- this.request = request;
- }
-
- public String request;
-
- public Map<String, String> headers = new HashMap<String, String>();
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(request);
- sb.append("\n");
- if (headers != null) {
- for (String key : headers.keySet()) {
- sb.append(key + ": " + headers.get(key));
- sb.append("\n");
- }
- }
- sb.append("\n");
- return sb.toString();
- }
-
- public String getMethod() {
- int i = request.indexOf(" ");
- return (i != -1) ? request.substring(0, i) : request;
- }
-
- }
-
- public static void main(String[] args) {
- TestProxy proxy = new TestProxy(8080);
- proxy.start();
- try {
- proxy.setResponse(new Message("404 / HTTP 1.1"));
- try {
- System.out.println(proxy.waitForRequest());
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- } finally {
- proxy.stop();
- }
-
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestCleanupUtil.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestCleanupUtil.java
deleted file mode 100644
index de8a4c90e..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestCleanupUtil.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.support;
-
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracAttachment;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.trac.tests.client.AbstractTracClientTest;
-import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
-
-/**
- * Utility that cleans up artifacts created by the Trac test suite. This class should be run periodically to speed up
- * execution of (attachment) tests.
- *
- * @author Steffen Pingel
- */
-public class TracTestCleanupUtil extends AbstractTracClientTest {
-
- private TestData data;
-
- public TracTestCleanupUtil() {
- super(Version.XML_RPC, PrivilegeLevel.ADMIN);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- data = TestFixture.init010();
- }
-
- public void testCleanup010() throws Exception {
- connect010();
- cleanup();
- }
-
- public void testCleanup011() throws Exception {
- connect011();
- cleanup();
- }
-
- private void cleanup() throws TracException {
- TracTicket ticket = repository.getTicket(data.attachmentTicketId, null);
- TracAttachment[] attachments = ticket.getAttachments();
- // skips the first attachment
- for (int i = 1; i < attachments.length; i++) {
- repository.deleteAttachment(data.attachmentTicketId, attachments[i].getFilename(), null);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestConstants.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestConstants.java
deleted file mode 100644
index 5df0e5bd6..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestConstants.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.support;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTestConstants {
-
- public static final String SERVER = System.getProperty("mylyn.trac.server", "mylyn.eclipse.org");
-
- public static final String TEST_TRAC_096_URL = "http://" + SERVER + "/trac096";
-
- public static final String TEST_TRAC_010_URL = "http://" + SERVER + "/trac010";
-
- public static final String TEST_TRAC_010_SSL_URL = "https://" + SERVER + "/trac010";
-
- public static final String TEST_TRAC_010_DIGEST_AUTH_URL = "http://" + SERVER + "/trac010digest";
-
- public static final String TEST_TRAC_010_FORM_AUTH_URL = "http://" + SERVER + "/trac010formauth";
-
- public static final String TEST_TRAC_011_URL = "http://" + SERVER + "/trac011";
-
- public static final String TEST_TRAC_INVALID_URL = "http://" + SERVER + "/doesnotexist";
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java
deleted file mode 100644
index 57532b13c..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.support;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskAttachment;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTestUtil {
-
- public static TracTicket createTicket(ITracClient client, String summary) throws Exception {
- TracTicket ticket = new TracTicket();
- ticket.putBuiltinValue(Key.SUMMARY, summary);
- ticket.putBuiltinValue(Key.DESCRIPTION, "");
- int id = client.createTicket(ticket, null);
- return client.getTicket(id, null);
- }
-
- public static ITask createTask(TaskRepository taskRepository, String taskId) throws Exception {
- AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- TaskData taskData = connector.getTaskData(taskRepository, taskId, null);
- ITask task = TasksUi.getRepositoryModel().createTask(taskRepository, taskData.getTaskId());
- TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true);
- return task;
- }
-
- public static TaskRepository init(String repositoryUrl, Version version) {
- TracCorePlugin.getDefault().getConnector().getClientManager().writeCache();
- TaskRepositoryManager manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
- TaskRepository repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, repositoryUrl);
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- repository.setTimeZoneId(ITracClient.TIME_ZONE);
- repository.setCharacterEncoding(ITracClient.CHARSET);
- repository.setVersion(version.name());
-
- manager.addRepository(repository);
- TracCorePlugin.getDefault().getConnector().getClientManager().readCache();
-
- return repository;
- }
-
- public static List<ITaskAttachment> getTaskAttachments(ITask task) throws CoreException {
- TaskData taskData = TasksUi.getTaskDataManager().getTaskData(task);
- List<ITaskAttachment> attachments = new ArrayList<ITaskAttachment>();
- List<TaskAttribute> attributes = taskData.getAttributeMapper().getAttributesByType(taskData,
- TaskAttribute.TYPE_ATTACHMENT);
- if (attributes != null) {
- for (TaskAttribute taskAttribute : attributes) {
- ITaskAttachment taskAttachment = TasksUiPlugin.getRepositoryModel().createTaskAttachment(taskAttribute);
- taskData.getAttributeMapper().updateTaskAttachment(taskAttachment, taskAttribute);
- attachments.add(taskAttachment);
- }
- }
- return attachments;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/XmlRpcServer.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/XmlRpcServer.java
deleted file mode 100644
index 8acb55813..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/XmlRpcServer.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.support;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.eclipse.mylyn.commons.net.WebLocation;
-import org.eclipse.mylyn.internal.trac.core.client.TracXmlRpcClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-
-/**
- * @author Steffen Pingel
- */
-public class XmlRpcServer {
-
- public abstract class AbstractTracItem {
-
- public abstract void delete() throws Exception;
-
- void itemCreated() {
- data.items.add(this);
- }
-
- void itemDeleted() {
- data.items.remove(this);
- }
-
- }
-
- /**
- * Represents a Trac type with multiple attributes such as a milestone.
- */
- public class ModelEnum extends AbstractTracItem {
-
- private final String[] attributes;
-
- private final String id;
-
- private final String module;
-
- public ModelEnum(String module, String id, String... attributes) {
- this.module = module;
- this.id = id;
- this.attributes = attributes;
- }
-
- public ModelEnum create(Object... params) throws Exception {
- call(module + ".create", id, toMap(params));
- itemCreated();
- return this;
- }
-
- @Override
- public void delete() throws Exception {
- call(module + ".delete", id);
- itemDeleted();
- }
-
- public void deleteAll() throws Exception {
- String[] ids = getAll();
- for (String id : ids) {
- call(module + ".delete", id);
- }
- }
-
- public ModelEnum deleteAndCreate(Object... params) throws Exception {
- if (Arrays.asList(getAll()).contains(id)) {
- delete();
- }
-
- return create(params);
- }
-
- @SuppressWarnings("unchecked")
- public Object[] get() throws Exception {
- Hashtable values = (Hashtable) call(module + ".get", id);
- Object[] result = new Object[values.size()];
- for (int i = 0; i < result.length && i < attributes.length; i++) {
- result[i] = values.get(attributes[i]);
- }
- return result;
- }
-
- public String[] getAll() throws Exception {
- return Arrays.asList((Object[]) call(module + ".getAll")).toArray(new String[0]);
- }
-
- private Hashtable<String, Object> toMap(Object... params) {
- Hashtable<String, Object> attrs = new Hashtable<String, Object>();
- for (int i = 0; i < attributes.length && i < params.length; i++) {
- attrs.put(attributes[i], params[i]);
- }
- return attrs;
- }
-
- public ModelEnum update(Object... params) throws Exception {
- call(module + ".update", id, toMap(params));
- return this;
- }
-
- }
-
- /**
- * Records changes to the repository.
- */
- public class TestData {
-
- // all created items
- List<AbstractTracItem> items = new ArrayList<AbstractTracItem>();
-
- // all created tickets
- public List<Ticket> tickets = new ArrayList<Ticket>();
-
- public int attachmentTicketId = 5;
-
- public int htmlEntitiesTicketId = 6;
-
- public int offlineHandlerTicketId = 7;
-
- /**
- * Undo all changes.
- */
- public void cleanup() throws Exception {
- while (!items.isEmpty()) {
- items.get(0).delete();
- }
- }
-
- }
-
- /**
- * Represents a Trac ticket.
- */
- public class Ticket extends AbstractTracItem {
-
- private Integer id;
-
- public Ticket(Integer id) {
- this.id = id;
- }
-
- public Ticket create(String summary, String description) throws Exception {
- this.id = (Integer) call("ticket.create", summary, description, new Hashtable<String, Object>());
- if (id == null) {
- throw new RuntimeException("Could not create ticket: " + summary);
- }
- itemCreated();
- return this;
- }
-
- @Override
- public void delete() throws Exception {
- call("ticket.delete", id);
- itemDeleted();
- }
-
- public void deleteAll() throws Exception {
- Integer[] ids = getAll();
- for (Integer id : ids) {
- call("ticket.delete", id);
- }
- }
-
- public Object getValue(String key) throws Exception {
- return getValues().get(key);
- }
-
- public Map<?, ?> getValues() throws Exception {
- return (Map<?, ?>) ((Object[]) call("ticket.get", id))[3];
- }
-
- public Integer[] getAll() throws Exception {
- return Arrays.asList((Object[]) call("ticket.query", "order=id")).toArray(new Integer[0]);
- }
-
- public int getId() {
- return id;
- }
-
- @Override
- protected void itemCreated() {
- super.itemCreated();
- data.tickets.add(this);
- }
-
- @Override
- protected void itemDeleted() {
- super.itemDeleted();
- data.tickets.remove(this);
- }
-
- public Ticket update(String comment, String key, String value) throws Exception {
- Hashtable<String, Object> attrs = new Hashtable<String, Object>();
- attrs.put(key, value);
- call("ticket.update", id, comment, attrs);
- return this;
- }
-
- }
-
- /**
- * Represents a Trac type that has a single attribute such as a priority.
- */
- public class TicketEnum extends AbstractTracItem {
-
- private final String id;
-
- private final String module;
-
- public TicketEnum(String module, String id) {
- this.module = module;
- this.id = id;
- }
-
- public TicketEnum create(String param) throws Exception {
- call(module + ".create", id, param);
- itemCreated();
- return this;
- }
-
- @Override
- public void delete() throws Exception {
- call(module + ".delete", id);
- itemDeleted();
- }
-
- public void deleteAll() throws Exception {
- String[] ids = getAll();
- for (String id : ids) {
- call(module + ".delete", id);
- }
- }
-
- public TicketEnum deleteAndCreate(String param) throws Exception {
- if (Arrays.asList(getAll()).contains(id)) {
- delete();
- }
-
- return create(param);
- }
-
- public String get() throws Exception {
- return (String) call(module + ".get", id);
- }
-
- public String[] getAll() throws Exception {
- return Arrays.asList((Object[]) call(module + ".getAll")).toArray(new String[0]);
- }
-
- public TicketEnum update(String param) throws Exception {
- call(module + ".update", id, param);
- return this;
- }
-
- }
-
- private final XmlRpcClient client;
-
- private final TestData data;
-
- private final String password;
-
- private final TracXmlRpcClient repository;
-
- private final String url;
-
- private final String username;
-
- public XmlRpcServer(String url, String username, String password) throws Exception {
- this.url = url;
- this.username = username;
- this.password = password;
-
- this.data = new TestData();
-
- this.repository = new TracXmlRpcClient(new WebLocation(url, username, password), Version.XML_RPC);
- this.client = repository.getClient();
- }
-
- private Object call(String method, Object... parameters) throws XmlRpcException, IOException {
- Vector<Object> params = new Vector<Object>(parameters.length);
- for (Object parameter : parameters) {
- params.add(parameter);
- }
-
- Object result = client.execute(method, params);
- if (result instanceof XmlRpcException) {
- throw (XmlRpcException) result;
- }
- return result;
- }
-
- public TestData getData() {
- return data;
- }
-
- public String getPassword() {
- return password;
- }
-
- public TracXmlRpcClient getRepository() throws MalformedURLException {
- return repository;
- }
-
- public String getUrl() {
- return url;
- }
-
- public String getUsername() {
- return username;
- }
-
- public Ticket ticket() throws Exception {
- return new Ticket(null);
- }
-
- public Ticket ticket(int id) throws Exception {
- return new Ticket(id);
- }
-
- public ModelEnum ticketComponent(String id) throws Exception {
- return new ModelEnum("ticket.component", id, "owner", "description");
- }
-
- public ModelEnum ticketMilestone(String id) throws Exception {
- return new ModelEnum("ticket.milestone", id, "due", "completed", "description");
- }
-
- public TicketEnum ticketPriority(String id) throws Exception {
- return new TicketEnum("ticket.priority", id);
- }
-
- public TicketEnum ticketSeverity(String id) throws Exception {
- return new TicketEnum("ticket.severity", id);
- }
-
- public TicketEnum ticketStatus(String id) throws Exception {
- return new TicketEnum("ticket.status", id);
- }
-
- public TicketEnum ticketType(String id) throws Exception {
- return new TicketEnum("ticket.type", id);
- }
-
- public ModelEnum ticketVersion(String id) throws Exception {
- return new ModelEnum("ticket.version", id, "time", "description");
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracHyperlinkUtilTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracHyperlinkUtilTest.java
deleted file mode 100644
index 39fe79a62..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracHyperlinkUtilTest.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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
- * David Green - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests.ui;
-
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.ui.TracHyperlinkUtil;
-import org.eclipse.mylyn.internal.trac.ui.WebHyperlink;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-
-/**
- * @author Steffen Pingel
- * @author David Green
- * @see http://trac.edgewall.org/wiki/TracLinks
- */
-public class TracHyperlinkUtilTest extends TestCase {
-
- private TaskRepository repository;
-
- @Override
- protected void setUp() throws Exception {
- repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, "http://localhost");
- }
-
- public void testFindHyperlinksComment() {
- IHyperlink[] links = findTracHyperlinks(repository, "comment:ticket:12:34", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 20), links[0].getHyperlinkRegion());
- assertEquals("12", ((TaskHyperlink) links[0]).getTaskId());
- }
-
- public void testFindHyperlinksTicket() {
- IHyperlink[] links = TracHyperlinkUtil.findTicketHyperlinks(repository, "#11", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 3), links[0].getHyperlinkRegion());
- assertEquals("11", ((TaskHyperlink) links[0]).getTaskId());
-
- links = TracHyperlinkUtil.findTicketHyperlinks(repository, "#11, #234", 6, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("234", ((TaskHyperlink) links[0]).getTaskId());
-
- links = TracHyperlinkUtil.findTicketHyperlinks(repository, " ticket:123 ", 2, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(new Region(2, 10), links[0].getHyperlinkRegion());
- assertEquals("123", ((TaskHyperlink) links[0]).getTaskId());
- }
-
- public void testFindHyperlinksNoTicket() {
- IHyperlink[] links = findTracHyperlinks(repository, "#11", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "#11, #234", 6, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, " ticket:123 ", 2, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "#123 report:123", -1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/report/123", ((WebHyperlink) links[0]).getURLString());
- }
-
- public void testFindHyperlinksReport() {
- IHyperlink[] links = findTracHyperlinks(repository, "report:123", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 10), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/report/123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "{123}", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 5), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/report/123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "{{123}}", -1, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(1, 5), links[0].getHyperlinkRegion());
-
- links = findTracHyperlinks(repository, "{abc}", -1, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "{{abc}}", -1, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "{{{123}}}", -1, 0);
- assertNull(links);
- }
-
- public void testFindHyperlinksChangeset() {
- IHyperlink[] links = findTracHyperlinks(repository, "r123", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 4), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/changeset/123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "alr123", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "[123]", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 5), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/changeset/123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "![123]", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "![123]", 1, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "changeset:123", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 13), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/changeset/123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "[123/trunk]", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 11), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/changeset/123/trunk", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "changeset:123/trunk", 0, 0);
- assertEquals(1, links.length);
- assertEquals(new Region(0, 19), links[0].getHyperlinkRegion());
- assertEquals("http://localhost/changeset/123/trunk", ((WebHyperlink) links[0]).getURLString());
- }
-
- public void testFindHyperlinksRevisionLog() {
- IHyperlink[] links = findTracHyperlinks(repository, "r123:456", 0, 0);
- assertEquals(2, links.length);
- assertEquals("http://localhost/log/?rev=123&stop_rev=456", ((WebHyperlink) links[0]).getURLString());
- assertEquals(new Region(0, 8), links[0].getHyperlinkRegion());
-
- links = findTracHyperlinks(repository, "[123:456]", 0, 0);
- assertEquals(1, links.length);
- assertEquals("http://localhost/log/?rev=123&stop_rev=456", ((WebHyperlink) links[0]).getURLString());
- assertEquals(new Region(0, 9), links[0].getHyperlinkRegion());
-
- links = findTracHyperlinks(repository, "log:@123:456", 0, 0);
- assertEquals(1, links.length);
- assertEquals("http://localhost/log/?rev=123&stop_rev=456", ((WebHyperlink) links[0]).getURLString());
- assertEquals(new Region(0, 12), links[0].getHyperlinkRegion());
-
- links = findTracHyperlinks(repository, "log:trunk@123:456", 0, 0);
- assertEquals(1, links.length);
- assertEquals("http://localhost/log/trunk?rev=123&stop_rev=456", ((WebHyperlink) links[0]).getURLString());
- assertEquals(new Region(0, 17), links[0].getHyperlinkRegion());
- }
-
- public void testFindHyperlinksDiff() {
- IHyperlink[] links = findTracHyperlinks(repository, "diff:@123:456", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/changeset/?new=456&old=123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "diff:trunk/trac@3538//sandbox/vc-refactoring/trac@3539", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(
- "http://localhost/changeset/?new_path=sandbox%2Fvc-refactoring%2Ftrac&old_path=trunk%2Ftrac&new=3539&old=3538",
- ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals(
- "http://localhost/changeset/?new_path=tags%2Ftrac-0.9.3%2Fwiki-default&old_path=tags%2Ftrac-0.9.2%2Fwiki-default",
- ((WebHyperlink) links[0]).getURLString());
- }
-
- public void testFindHyperlinksWiki() {
- IHyperlink[] links = findTracHyperlinks(repository, "[wiki:page]", 1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/wiki/page", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "wiki:page", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/wiki/page", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "Page", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "!Page", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "ab Page dc", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "paGe", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "WikiPage", 0, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/wiki/WikiPage", ((WebHyperlink) links[0]).getURLString());
- assertEquals(new Region(0, 8), links[0].getHyperlinkRegion());
-
- links = findTracHyperlinks(repository, "!WikiPage", 0, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "!WikiPage", 1, 0);
- assertNull(links);
-
- links = findTracHyperlinks(repository, "a WikiPage is here", 4, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/wiki/WikiPage", ((WebHyperlink) links[0]).getURLString());
- assertEquals(new Region(2, 8), links[0].getHyperlinkRegion());
-
- links = findTracHyperlinks(repository, "a !WikiPage is here", 4, 0);
- assertNull(links);
- }
-
- public void testFindHyperlinksMilestone() {
- IHyperlink[] links = findTracHyperlinks(repository, "milestone:1.0", 1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/milestone/1.0", ((WebHyperlink) links[0]).getURLString());
- }
-
- public void testFindHyperlinksAttachment() {
- IHyperlink[] links = findTracHyperlinks(repository, "attachment:ticket:123:foo.bar", 1, 0);
- assertNotNull(links);
- assertEquals("123", ((TaskHyperlink) links[0]).getTaskId());
- }
-
- public void testFindHyperlinksFiles() {
- IHyperlink[] links = findTracHyperlinks(repository, "source:trunk/foo", 1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/browser/trunk/foo", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "source:trunk/foo@123", 1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/browser/trunk/foo?rev=123", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "source:trunk/foo@123#L456", 1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/browser/trunk/foo?rev=123#L456", ((WebHyperlink) links[0]).getURLString());
-
- links = findTracHyperlinks(repository, "source:/tags/foo_bar-1.1", 1, 0);
- assertNotNull(links);
- assertEquals(1, links.length);
- assertEquals("http://localhost/browser/tags/foo_bar-1.1", ((WebHyperlink) links[0]).getURLString());
- }
-
- private IHyperlink[] findTracHyperlinks(TaskRepository repository, String text, int offsetInText, int textOffset) {
- List<IHyperlink> links = TracHyperlinkUtil.findTracHyperlinks(repository, text, offsetInText, textOffset);
- return (links.isEmpty()) ? null : links.toArray(new IHyperlink[0]);
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracRepositorySettingsPageTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracRepositorySettingsPageTest.java
deleted file mode 100644
index 8e730b2ae..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracRepositorySettingsPageTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.ui;
-
-import java.net.Proxy;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage;
-import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage.TracValidator;
-import org.eclipse.mylyn.trac.tests.client.AbstractTracClientTest;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Steffen Pingel
- */
-public class TracRepositorySettingsPageTest extends AbstractTracClientTest {
-
- private TracRepositorySettingsPage page;
-
- private TracValidator validator;
-
- public TracRepositorySettingsPageTest() {
- super(null);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- page = new TracRepositorySettingsPage(null);
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- page.createControl(shell);
- page.setVisible(true);
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- // TestFixture.cleanupRepository1();
- }
-
- @Override
- public ITracClient connect(String url, String username, String password, Proxy proxy, Version version)
- throws Exception {
- page.setAnonymous(false);
- page.setUrl(url);
- page.setUserId(username);
- page.setPassword(password);
- page.setTracVersion(version);
- validator = page.new TracValidator(page.createTaskRepository(), version);
- return null;
- }
-
- public void testValidateXmlRpc() throws Exception {
- version = Version.XML_RPC;
- connect010();
-
- validator.run(new NullProgressMonitor());
- assertNull(validator.getResult());
- assertNull(validator.getStatus());
- }
-
- public void testValidateWeb() throws Exception {
- version = Version.TRAC_0_9;
- connect010();
-
- validator.run(new NullProgressMonitor());
- assertNull(validator.getResult());
- assertNull(validator.getStatus());
- }
-
- public void testValidateAutomaticUser() throws Exception {
- version = null;
- connect010();
-
- validator.run(new NullProgressMonitor());
- assertEquals(Version.XML_RPC, validator.getResult());
- assertNull(validator.getStatus());
- }
-
- public void testValidateAutomaticAnonymous() throws Exception {
- version = null;
- connect(TracTestConstants.TEST_TRAC_010_URL, "", "");
-
- validator.run(new NullProgressMonitor());
- assertEquals(Version.TRAC_0_9, validator.getResult());
- assertNotNull(validator.getStatus());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracTaskEditorTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracTaskEditorTest.java
deleted file mode 100644
index d90cd6942..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracTaskEditorTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.tests.ui;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
-import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskEditorTest extends TestCase {
-
- @Override
- protected void setUp() throws Exception {
- TaskTestUtil.resetTaskList();
- }
-
- public void testGetSelectedRepository() throws Exception {
- TaskRepository repository = TracTestUtil.init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-
- ITask task = TracTestUtil.createTask(repository, "1");
- TasksUiPlugin.getTaskList().addTask(task);
- TasksUiUtil.openTask(task);
-
- TaskListView taskListView = TaskListView.getFromActivePerspective();
- // force refresh since automatic refresh is delayed
- taskListView.getViewer().refresh();
- taskListView.getViewer().expandAll();
- taskListView.getViewer().setSelection(new StructuredSelection(task));
-
- assertFalse(taskListView.getViewer().getSelection().isEmpty());
- assertEquals(repository, TasksUiUtil.getSelectedRepository(taskListView.getViewer()));
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/.classpath b/org.eclipse.mylyn.trac.ui/.classpath
deleted file mode 100644
index 304e86186..000000000
--- a/org.eclipse.mylyn.trac.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.trac.ui/.cvsignore b/org.eclipse.mylyn.trac.ui/.cvsignore
deleted file mode 100644
index c5e82d745..000000000
--- a/org.eclipse.mylyn.trac.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.ui/.project b/org.eclipse.mylyn.trac.ui/.project
deleted file mode 100644
index 6c9ffc283..000000000
--- a/org.eclipse.mylyn.trac.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.trac.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index fbac23913..000000000
--- a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:44 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb69..000000000
--- a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 7ab03bdac..000000000
--- a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Jun 02 15:30:09 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true
diff --git a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26af..000000000
--- a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e8f2d5620..000000000
--- a/org.eclipse.mylyn.trac.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Tue Apr 15 11:07:59 PDT 2008
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 0ccb80d11..000000000
--- a/org.eclipse.mylyn.trac.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.trac.ui;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.trac.ui.TracUiPlugin
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.jface.text,
- org.eclipse.ui,
- org.eclipse.ui.forms,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.trac.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.mylyn.internal.trac.ui;x-internal:=true,
- org.eclipse.mylyn.internal.trac.ui.editor;x-internal:=true,
- org.eclipse.mylyn.internal.trac.ui.wizard;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.trac.ui/about.html b/org.eclipse.mylyn.trac.ui/about.html
deleted file mode 100644
index d774b07c7..000000000
--- a/org.eclipse.mylyn.trac.ui/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 25, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.ui/build.properties b/org.eclipse.mylyn.trac.ui/build.properties
deleted file mode 100644
index 34b05847d..000000000
--- a/org.eclipse.mylyn.trac.ui/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 Mylyn project committers 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- icons/,\
- about.html,\
- plugin.properties
-src.includes = about.html
diff --git a/org.eclipse.mylyn.trac.ui/icons/etool16/task-repository.gif b/org.eclipse.mylyn.trac.ui/icons/etool16/task-repository.gif
deleted file mode 100644
index 78470a36f..000000000
--- a/org.eclipse.mylyn.trac.ui/icons/etool16/task-repository.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-critical.gif b/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-critical.gif
deleted file mode 100644
index 41497b1df..000000000
--- a/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-critical.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-enhancement.gif b/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-enhancement.gif
deleted file mode 100644
index 9a75b1efe..000000000
--- a/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-enhancement.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-trac.gif b/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-trac.gif
deleted file mode 100644
index 75b4f5c16..000000000
--- a/org.eclipse.mylyn.trac.ui/icons/eview16/overlay-trac.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.trac.ui/icons/eview16/trac-icon.gif b/org.eclipse.mylyn.trac.ui/icons/eview16/trac-icon.gif
deleted file mode 100644
index 5e1056a09..000000000
--- a/org.eclipse.mylyn.trac.ui/icons/eview16/trac-icon.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.trac.ui/plugin.properties b/org.eclipse.mylyn.trac.ui/plugin.properties
deleted file mode 100644
index 5a13a96e8..000000000
--- a/org.eclipse.mylyn.trac.ui/plugin.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-#Properties file for org.eclipse.mylyn.trac.ui
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Trac Connector UI
-
-repository.name = Trac Repository
-TracRepositoryConnector.name = Trac Connector Core
-TracConnectorUi.name = Trac Connector UI
-
-TracHyperlinkDetector.name = Trac Links
diff --git a/org.eclipse.mylyn.trac.ui/plugin.xml b/org.eclipse.mylyn.trac.ui/plugin.xml
deleted file mode 100644
index 33369b22d..000000000
--- a/org.eclipse.mylyn.trac.ui/plugin.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
- id="org.eclipse.mylyn.trac.repository"
- name="%repository.name"
- point="org.eclipse.mylyn.tasks.ui.repositories">
- <connectorCore
- class="org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector"
- id="trac"
- name="%TracRepositoryConnector.name"/>
- <connectorUi
- brandingIcon="icons/eview16/trac-icon.gif"
- class="org.eclipse.mylyn.internal.trac.ui.TracConnectorUi"
- id="trac"
- name="%TracConnectorUi.name"
- overlayIcon="icons/eview16/overlay-trac.gif"/>
- <taskListMigrator
- class="org.eclipse.mylyn.internal.trac.ui.TracTaskListMigrator">
- </taskListMigrator>
- </extension>
- <extension
- point="org.eclipse.mylyn.tasks.core.templates">
- <repository
- addAutomatically="false"
- anonymous="true"
- label="Edgewall"
- repositoryKind="trac"
- urlRepository="http://trac.edgewall.org"
- version="TRAC_0_9"/>
- </extension>
- <extension
- point="org.eclipse.mylyn.tasks.ui.editors">
- <pageFactory
- class="org.eclipse.mylyn.internal.trac.ui.editor.TracTaskEditorPageFactory"
- id="org.eclipse.mylyn.trac.ui.pageFactory">
- </pageFactory>
- </extension>
- <extension
- point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
- <hyperlinkDetector
- class="org.eclipse.mylyn.internal.trac.ui.TracHyperlinkDetector"
- id="org.eclipse.mylyn.trac.ui.hyperlinksDetectors.Trac"
- name="%TracHyperlinkDetector.name"
- targetId="org.eclipse.mylyn.tasks.ui.TaskEditor">
- </hyperlinkDetector>
- </extension>
-
-</plugin>
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/Messages.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/Messages.java
deleted file mode 100644
index 5825d3b24..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/Messages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.trac.ui.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TracConnectorUi_Replying_to__comment_X_X_;
-
- public static String TracConnectorUi_Replying_to__comment_ticket_X_X_X_;
-
- public static String TracConnectorUi_Replying_to__ticket_X_X_;
-
- public static String TracConnectorUi_Ticket;
-
- public static String WebHyperlink_Open_URL_X;
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracConnectorUi.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracConnectorUi.java
deleted file mode 100644
index 4b44e763a..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracConnectorUi.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector.TaskKind;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.ui.wizard.TracQueryPage;
-import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi;
-import org.eclipse.mylyn.tasks.ui.LegendElement;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskRepositoryPage;
-import org.eclipse.mylyn.tasks.ui.wizards.ITaskSearchPage;
-import org.eclipse.mylyn.tasks.ui.wizards.NewTaskWizard;
-import org.eclipse.mylyn.tasks.ui.wizards.NewWebTaskWizard;
-import org.eclipse.mylyn.tasks.ui.wizards.RepositoryQueryWizard;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class TracConnectorUi extends AbstractRepositoryConnectorUi {
-
- @SuppressWarnings("restriction")
- public TracConnectorUi() {
- org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin.getDefault().addSearchHandler(new TracSearchHandler());
- }
-
- @Override
- public IHyperlink[] findHyperlinks(TaskRepository repository, String text, int lineOffset, int regionOffset) {
- return TracHyperlinkUtil.findTicketHyperlinks(repository, text, lineOffset, regionOffset);
- }
-
- @Override
- public String getTaskKindLabel(ITask repositoryTask) {
- return Messages.TracConnectorUi_Ticket;
- }
-
- @Override
- public ITaskRepositoryPage getSettingsPage(TaskRepository taskRepository) {
- return new TracRepositorySettingsPage(taskRepository);
- }
-
- @Override
- public ITaskSearchPage getSearchPage(TaskRepository repository, IStructuredSelection selection) {
- return new TracQueryPage(repository);
- }
-
- @Override
- public boolean hasSearchPage() {
- return true;
- }
-
- @Override
- public IWizard getNewTaskWizard(TaskRepository repository, ITaskMapping selection) {
- if (TracRepositoryConnector.hasRichEditor(repository)) {
- return new NewTaskWizard(repository, selection);
- } else {
- return new NewWebTaskWizard(repository, repository.getRepositoryUrl() + ITracClient.NEW_TICKET_URL,
- selection);
- }
- }
-
- @Override
- public IWizard getQueryWizard(TaskRepository repository, IRepositoryQuery query) {
- RepositoryQueryWizard wizard = new RepositoryQueryWizard(repository);
- wizard.addPage(new TracQueryPage(repository, query));
- return wizard;
- }
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public ImageDescriptor getTaskKindOverlay(ITask task) {
- TaskKind taskKind = TaskKind.fromString(task.getTaskKind());
- if (taskKind == TaskKind.DEFECT) {
- return TracImages.OVERLAY_DEFECT;
- } else if (taskKind == TaskKind.ENHANCEMENT) {
- return TracImages.OVERLAY_ENHANCEMENT;
- } else if (taskKind == TaskKind.TASK) {
- return null;
- }
- return super.getTaskKindOverlay(task);
- }
-
- @Override
- public List<LegendElement> getLegendElements() {
- List<LegendElement> legendItems = new ArrayList<LegendElement>();
- legendItems.add(LegendElement.createTask(TaskKind.DEFECT.toString(), TracImages.OVERLAY_DEFECT));
- legendItems.add(LegendElement.createTask(TaskKind.ENHANCEMENT.toString(), TracImages.OVERLAY_ENHANCEMENT));
- legendItems.add(LegendElement.createTask(TaskKind.TASK.toString(), null));
- return legendItems;
- }
-
- @Override
- public String getReplyText(TaskRepository taskRepository, ITask task, ITaskComment taskComment, boolean includeTask) {
- if (taskComment == null) {
- return NLS.bind(Messages.TracConnectorUi_Replying_to__ticket_X_X_, task.getTaskKey(), task.getOwner());
- } else if (includeTask) {
- return NLS.bind(Messages.TracConnectorUi_Replying_to__comment_ticket_X_X_X_, new Object[] {
- task.getTaskKey(), taskComment.getNumber(), taskComment.getAuthor().getPersonId() });
- } else {
- return NLS.bind(Messages.TracConnectorUi_Replying_to__comment_X_X_, taskComment.getNumber(),
- taskComment.getAuthor().getPersonId());
- }
- }
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkDetector.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkDetector.java
deleted file mode 100644
index c8a0336c7..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkDetector.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import java.util.List;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector;
-
-/**
- * @author Steffen Pingel
- */
-public class TracHyperlinkDetector extends AbstractTaskHyperlinkDetector {
-
- public TracHyperlinkDetector() {
- }
-
- @Override
- protected List<IHyperlink> detectHyperlinks(ITextViewer textViewer, String content, int index, int contentOffset) {
- TaskRepository taskRepository = getTaskRepository(textViewer);
- if (taskRepository != null && TracCorePlugin.CONNECTOR_KIND.equals(taskRepository.getConnectorKind())) {
- return TracHyperlinkUtil.findTracHyperlinks(taskRepository, content, index, contentOffset);
- }
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtil.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtil.java
deleted file mode 100644
index bfb6a4416..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracHyperlinkUtil.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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
- * David Green - fix for bug 244017
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.ui;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TaskHyperlink;
-
-/**
- * Utility class for detecting Trac hyperlinks.
- *
- * @author Steffen Pingel
- * @author David Green partial fix hyperlink detection on {{{ see bug 265682
- */
-public class TracHyperlinkUtil {
-
- static Pattern ticketPattern = createPattern("(ticket:|#)(\\d+)"); //$NON-NLS-1$
-
- static Pattern commentPattern = createPattern("comment:ticket:(\\d+):(\\d+)"); //$NON-NLS-1$
-
- static Pattern reportPattern1 = createPattern("report:(\\d+)"); //$NON-NLS-1$
-
- static Pattern reportPattern2 = Pattern.compile("(?<!!|\\{\\{)\\{(\\d+)\\}"); //$NON-NLS-1$
-
- static Pattern changesetPattern1 = createPattern("(r|changeset:)(\\d+)(/\\w+)?"); //$NON-NLS-1$
-
- static Pattern changesetPattern2 = createPattern("\\[(\\d+)(/\\w+)?\\]"); //$NON-NLS-1$
-
- static Pattern revisionLogPattern1 = createPattern("r(\\d+):(\\d+)"); //$NON-NLS-1$
-
- static Pattern revisionLogPattern2 = createPattern("\\[(\\d+):(\\d+)\\]"); //$NON-NLS-1$
-
- static Pattern revisionLogPattern3 = createPattern("log:(\\w+)?@(\\d+):(\\d+)"); //$NON-NLS-1$
-
- static Pattern diffPattern1 = createPattern("diff:@(\\d+):(\\d+)"); //$NON-NLS-1$
-
- static Pattern diffPattern2 = createPattern("diff:([\\w\\./-]+)(@(\\d+))?//([\\w\\./-]+)(@(\\d+))?"); //$NON-NLS-1$
-
- static Pattern wikiPattern1 = createPattern("wiki:(\\w+)"); //$NON-NLS-1$
-
- static Pattern wikiPattern2 = Pattern.compile("(?<![!.a-z])[A-Z][a-z0-9]+[A-Z]\\w*"); //$NON-NLS-1$
-
- static Pattern milestonePattern = createPattern("milestone:([\\w\\.]+)"); //$NON-NLS-1$
-
- static Pattern attachmentPattern = createPattern("attachment:ticket:(\\d+):([\\w\\.]+)"); //$NON-NLS-1$
-
- static Pattern filesPattern = createPattern("source:/*([\\w\\./\\-_]+)(@(\\d+)(#L(\\d+))?)?"); //$NON-NLS-1$
-
- private static Pattern createPattern(String regexp) {
- // hyperlink patterns prefixed with "!" are not links
- return Pattern.compile("(?<!!)" + regexp); //$NON-NLS-1$
- }
-
- /**
- * Detects hyperlinks to Trac tickets.
- */
- public static IHyperlink[] findTicketHyperlinks(TaskRepository repository, String text, int lineOffset,
- int regionOffset) {
- List<IHyperlink> links = null;
- Matcher m = ticketPattern.matcher(text);
- while (m.find()) {
- if (isInRegion(lineOffset, m)) {
- String id = m.group(2);
- if (links == null) {
- links = new ArrayList<IHyperlink>();
- }
- links.add(new TaskHyperlink(determineRegion(regionOffset, m), repository, id));
- }
- }
- return links == null ? null : links.toArray(new IHyperlink[0]);
- }
-
- /**
- * Detects Trac hyperlinks.
- *
- * <ul>
- * <li>Ticket comments: comment:ticket:1:2
- * <li>Reports: {1} or report:1
- * <li>Changesets: r1, [1], changeset:1 or (restricted) [1/trunk], changeset:1/trunk
- * <li>Revision log: r1:3, [1:3] or log:@1:3, log:trunk@1:3
- * <li>Diffs: diff:@1:3, diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default or
- * diff:trunk/trac@3538//sandbox/vc-refactoring@3539
- * <li>Wiki pages: CamelCase or wiki:CamelCase
- * <li>Milestones: milestone:1.0
- * <li>Attachment: attachment:ticket:944:attachment.1073.diff
- * <li>Files: source:trunk/COPYING
- * <li>A specific file revision: source:/trunk/COPYING@200
- * <li>A particular line of a specific file revision: source:/trunk/COPYING@200#L25
- * </ul>
- *
- * @see http://trac.edgewall.org/wiki/TracLinks
- */
- public static List<IHyperlink> findTracHyperlinks(TaskRepository repository, String text, int offsetInText,
- int textOffset) {
- List<IHyperlink> links = new ArrayList<IHyperlink>();
-
- Matcher m = commentPattern.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String id = m.group(1);
- // String comment = m.group(2);
- links.add(new TaskHyperlink(determineRegion(textOffset, m), repository, id));
- }
- }
-
- m = reportPattern1.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String id = m.group(1);
- links.add(new WebHyperlink(determineRegion(textOffset, m), repository.getRepositoryUrl()
- + ITracClient.REPORT_URL + id));
- }
- }
-
- m = reportPattern2.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String id = m.group(1);
- links.add(new WebHyperlink(determineRegion(textOffset, m), repository.getRepositoryUrl()
- + ITracClient.REPORT_URL + id));
- }
- }
-
- m = revisionLogPattern1.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String rev = m.group(1);
- String stopRev = m.group(2);
- String url = repository.getRepositoryUrl() + ITracClient.REVISION_LOG_URL + "?rev=" + rev //$NON-NLS-1$
- + "&stop_rev=" + stopRev; //$NON-NLS-1$
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = revisionLogPattern2.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String rev = m.group(1);
- String stopRev = m.group(2);
- String url = repository.getRepositoryUrl() + ITracClient.REVISION_LOG_URL + "?rev=" + rev //$NON-NLS-1$
- + "&stop_rev=" + stopRev; //$NON-NLS-1$
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = revisionLogPattern3.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String branch = m.group(1);
- String rev = m.group(2);
- String stopRev = m.group(3);
- String url = repository.getRepositoryUrl() + ITracClient.REVISION_LOG_URL;
- if (branch != null) {
- url += branch;
- }
- url += "?rev=" + rev + "&stop_rev=" + stopRev; //$NON-NLS-1$ //$NON-NLS-2$
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = changesetPattern1.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String rev = m.group(2);
- String branch = m.group(3);
- String url = repository.getRepositoryUrl() + ITracClient.CHANGESET_URL + rev;
- if (branch != null) {
- url += branch;
- }
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = changesetPattern2.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String rev = m.group(1);
- String branch = m.group(2);
- String url = repository.getRepositoryUrl() + ITracClient.CHANGESET_URL + rev;
- if (branch != null) {
- url += branch;
- }
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = diffPattern1.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String old_rev = m.group(1);
- String new_rev = m.group(2);
- String url = repository.getRepositoryUrl() + ITracClient.CHANGESET_URL;
- url += "?new=" + new_rev + "&old=" + old_rev; //$NON-NLS-1$ //$NON-NLS-2$
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = diffPattern2.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String old_path = m.group(1);
- String old_rev = m.group(3);
- String new_path = m.group(4);
- String new_rev = m.group(6);
- String url = repository.getRepositoryUrl() + ITracClient.CHANGESET_URL;
- try {
- url += "?new_path=" + URLEncoder.encode(new_path, "UTF-8"); //$NON-NLS-1$ //$NON-NLS-2$
- url += "&old_path=" + URLEncoder.encode(old_path, "UTF-8"); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (UnsupportedEncodingException e) {
- StatusHandler.log(new Status(IStatus.WARNING, TracUiPlugin.ID_PLUGIN, "Unexcpected exception", e)); //$NON-NLS-1$
- continue;
- }
- if (new_rev != null) {
- url += "&new=" + new_rev; //$NON-NLS-1$
- }
- if (old_rev != null) {
- url += "&old=" + old_rev; //$NON-NLS-1$
- }
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- m = wikiPattern1.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String page = m.group(1);
- links.add(new WebHyperlink(determineRegion(textOffset, m), repository.getRepositoryUrl()
- + ITracClient.WIKI_URL + page));
- }
- }
-
- m = wikiPattern2.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String page = m.group(0);
- links.add(new WebHyperlink(determineRegion(textOffset, m), repository.getRepositoryUrl()
- + ITracClient.WIKI_URL + page));
- }
- }
-
- m = milestonePattern.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String milestone = m.group(1);
- links.add(new WebHyperlink(determineRegion(textOffset, m), repository.getRepositoryUrl()
- + ITracClient.MILESTONE_URL + milestone));
- }
- }
-
- m = attachmentPattern.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String id = m.group(1);
- // String attachment = m.group(2);
- links.add(new TaskHyperlink(determineRegion(textOffset, m), repository, id));
- }
- }
-
- m = filesPattern.matcher(text);
- while (m.find()) {
- if (isInRegion(offsetInText, m)) {
- String filename = m.group(1);
- String rev = m.group(3);
- String line = m.group(5);
- String url = repository.getRepositoryUrl() + ITracClient.BROWSER_URL + filename;
- if (rev != null) {
- url += "?rev=" + rev; //$NON-NLS-1$
- if (line != null) {
- url += "#L" + line; //$NON-NLS-1$
- }
- }
- links.add(new WebHyperlink(determineRegion(textOffset, m), url));
- }
- }
-
- return links;
- }
-
- private static boolean isInRegion(int offsetInText, Matcher m) {
- return (offsetInText == -1) || (offsetInText >= m.start() && offsetInText <= m.end());
- }
-
- private static IRegion determineRegion(int textOffset, Matcher m) {
- return new Region(textOffset + m.start(), m.end() - m.start());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracImages.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracImages.java
deleted file mode 100644
index b783ce233..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracImages.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * @author Shawn Minto
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class TracImages {
-
- private static final URL baseURL = TracUiPlugin.getDefault().getBundle().getEntry("/icons/"); //$NON-NLS-1$
-
- public static final String T_VIEW = "eview16"; //$NON-NLS-1$
-
- public static final ImageDescriptor OVERLAY_DEFECT = create(T_VIEW, "overlay-critical.gif"); //$NON-NLS-1$
-
- public static final ImageDescriptor OVERLAY_ENHANCEMENT = create(T_VIEW, "overlay-enhancement.gif"); //$NON-NLS-1$
-
- private static ImageDescriptor create(String prefix, String name) {
- try {
- return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
- } catch (MalformedURLException e) {
- return ImageDescriptor.getMissingImageDescriptor();
- }
- }
-
- private static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
- if (baseURL == null) {
- throw new MalformedURLException();
- }
-
- StringBuilder buffer = new StringBuilder(prefix);
- if (prefix != "") { //$NON-NLS-1$
- buffer.append('/');
- }
- buffer.append(name);
- return new URL(baseURL, buffer.toString());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracSearchHandler.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracSearchHandler.java
deleted file mode 100644
index 5f995310f..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracSearchHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractSearchHandler;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter.CompareOperator;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-@SuppressWarnings("restriction")
-public class TracSearchHandler extends AbstractSearchHandler {
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public boolean queryForText(TaskRepository taskRepository, IRepositoryQuery query, TaskData taskData,
- String searchString) {
- TracSearchFilter filter = new TracSearchFilter("description"); //$NON-NLS-1$
- filter.setOperator(CompareOperator.CONTAINS);
- filter.addValue(searchString);
-
- TracSearch search = new TracSearch();
- search.addFilter(filter);
-
- // TODO copied from TracQueryPage.getQueryUrl()
- StringBuilder sb = new StringBuilder();
- sb.append(taskRepository.getRepositoryUrl());
- sb.append(ITracClient.QUERY_URL);
- sb.append(search.toUrl());
-
- query.setUrl(sb.toString());
-
- return true;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskListMigrator.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskListMigrator.java
deleted file mode 100644
index 696495545..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskListMigrator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.tasks.core.AbstractTaskListMigrator;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.w3c.dom.Element;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskListMigrator extends AbstractTaskListMigrator {
-
- private static final String KEY_TRAC = "Trac"; //$NON-NLS-1$
-
- private static final String KEY_TRAC_TASK = KEY_TRAC + KEY_TASK;
-
- private static final String KEY_TRAC_QUERY = KEY_TRAC + KEY_QUERY;
-
- private static final String KEY_SUPPORTS_SUBTASKS = "SupportsSubtasks"; //$NON-NLS-1$
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public String getTaskElementName() {
- return KEY_TRAC_TASK;
- }
-
- @Override
- public Set<String> getQueryElementNames() {
- Set<String> names = new HashSet<String>();
- names.add(KEY_TRAC_QUERY);
- return names;
- }
-
- @Override
- public void migrateQuery(IRepositoryQuery query, Element element) {
- // nothing to do
- }
-
- @Override
- public void migrateTask(ITask task, Element element) {
- String lastModDate = element.getAttribute(KEY_LAST_MOD_DATE);
- task.setModificationDate(TracUtil.parseDate(lastModDate));
- task.setAttribute(TracRepositoryConnector.TASK_KEY_UPDATE_DATE, lastModDate);
- if (element.hasAttribute(KEY_SUPPORTS_SUBTASKS)) {
- task.setAttribute(TracRepositoryConnector.TASK_KEY_SUPPORTS_SUBTASKS, Boolean.valueOf(
- element.getAttribute(KEY_SUPPORTS_SUBTASKS)).toString());
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracUiPlugin.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracUiPlugin.java
deleted file mode 100644
index d39701d79..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracUiPlugin.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.tasks.ui.TaskRepositoryLocationUiFactory;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * @author Mik Kersten
- * @author Steffen Pingel
- */
-public class TracUiPlugin extends AbstractUIPlugin {
-
- public static final String ID_PLUGIN = "org.eclipse.mylyn.trac.ui"; //$NON-NLS-1$
-
- private static TracUiPlugin plugin;
-
- public TracUiPlugin() {
- plugin = this;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
-
- TracCorePlugin.getDefault().getConnector().setTaskRepositoryLocationFactory(
- new TaskRepositoryLocationUiFactory());
- TasksUi.getRepositoryManager().addListener(TracCorePlugin.getDefault().getConnector().getClientManager());
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- TasksUi.getRepositoryManager().removeListener(TracCorePlugin.getDefault().getConnector().getClientManager());
-
- plugin = null;
- super.stop(context);
- }
-
- public static TracUiPlugin getDefault() {
- return plugin;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/WebHyperlink.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/WebHyperlink.java
deleted file mode 100644
index a6bf140ad..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/WebHyperlink.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-
-/**
- * Encapsulates link from text to a URL.
- *
- * @author Steffen Pingel
- * @since 2.0
- */
-public class WebHyperlink implements IHyperlink {
-
- private final IRegion region;
-
- private final String url;
-
- public WebHyperlink(IRegion region, String url) {
- this.region = region;
- this.url = url;
- }
-
- public IRegion getHyperlinkRegion() {
- return region;
- }
-
- public String getTypeLabel() {
- return null;
- }
-
- public String getHyperlinkText() {
- return MessageFormat.format(Messages.WebHyperlink_Open_URL_X, url);
- }
-
- public void open() {
- TasksUiUtil.openTask(url);
- }
-
- public String getURLString() {
- return url;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/Messages.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/Messages.java
deleted file mode 100644
index 7ec02f46b..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/Messages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.ui.editor;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.trac.ui.editor.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TracPeoplePart_People;
- public static String TracPeoplePart__Select_to_remove_;
-
- public static String TracTaskEditorPageFactory_Browser;
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracCcAttributeEditor.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracCcAttributeEditor.java
deleted file mode 100644
index df787ef83..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracCcAttributeEditor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.editor;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.mylyn.internal.trac.core.TracAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.ColumnSpan;
-import org.eclipse.mylyn.tasks.ui.editors.LayoutHint.RowSpan;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Rob Elves
- */
-public class TracCcAttributeEditor extends AbstractAttributeEditor {
-
- private List list;
-
- private TaskAttribute attrRemoveCc;
-
- public TracCcAttributeEditor(TaskDataModel manager, TaskAttribute taskAttribute) {
- super(manager, taskAttribute);
- setLayoutHint(new LayoutHint(RowSpan.MULTIPLE, ColumnSpan.SINGLE));
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- list = new List(parent, SWT.FLAT | SWT.MULTI | SWT.V_SCROLL);
- toolkit.adapt(list, true, true);
- list.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- list.setFont(JFaceResources.getDefaultFont());
- GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(list);
-
- TaskAttribute attrUserCC = getTaskAttribute();
- if (attrUserCC != null) {
- for (String value : attrUserCC.getValues()) {
- list.add(value);
- }
- }
-
- attrRemoveCc = getModel().getTaskData().getRoot().getMappedAttribute(TracAttributeMapper.REMOVE_CC);
- for (String item : attrRemoveCc.getValues()) {
- int i = list.indexOf(item);
- if (i != -1) {
- list.select(i);
- }
- }
-
- list.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- for (String cc : list.getItems()) {
- int index = list.indexOf(cc);
- if (list.isSelected(index)) {
- java.util.List<String> remove = attrRemoveCc.getValues();
- if (!remove.contains(cc)) {
- attrRemoveCc.addValue(cc);
- }
- } else {
- attrRemoveCc.removeValue(cc);
- }
- }
- getModel().attributeChanged(attrRemoveCc);
- }
- });
-
- list.showSelection();
-
- setControl(list);
- }
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracPeoplePart.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracPeoplePart.java
deleted file mode 100644
index 434596536..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracPeoplePart.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.editor;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.mylyn.internal.trac.core.TracAttribute;
-import org.eclipse.mylyn.internal.trac.core.TracAttributeMapper;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author Robert Elves
- */
-public class TracPeoplePart extends AbstractTaskEditorPart {
-
- private static final int COLUMN_MARGIN = 5;
-
- public TracPeoplePart() {
- setPartName(Messages.TracPeoplePart_People);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute) {
- AbstractAttributeEditor editor = createAttributeEditor(attribute);
- if (editor != null) {
- editor.createLabelControl(composite, toolkit);
- GridDataFactory.defaultsFor(editor.getLabelControl()).indent(COLUMN_MARGIN, 0).applyTo(
- editor.getLabelControl());
- editor.createControl(composite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- if (editor instanceof TracCcAttributeEditor) {
- GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).hint(130, 95).applyTo(
- editor.getControl());
- } else {
- GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.TOP).applyTo(editor.getControl());
- }
- }
- }
-
- @Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Section section = createSection(parent, toolkit, true);
- Composite peopleComposite = toolkit.createComposite(section);
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 5;
- peopleComposite.setLayout(layout);
-
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TracAttributeMapper.NEW_CC));
- addSelfToCC(peopleComposite);
- TaskAttribute cc = getTaskData().getRoot().getMappedAttribute(TracAttribute.CC.getTaskKey());
- TaskAttribute removeCc = getTaskData().getRoot().getMappedAttribute(TracAttributeMapper.REMOVE_CC);
- if (cc != null && removeCc != null) {
- addAttribute(peopleComposite, toolkit, cc);
- toolkit.createLabel(peopleComposite, ""); //$NON-NLS-1$
- Label label = toolkit.createLabel(peopleComposite, Messages.TracPeoplePart__Select_to_remove_);
- GridDataFactory.fillDefaults().indent(0, 5).align(SWT.CENTER, SWT.CENTER).applyTo(label);
- }
-
- toolkit.paintBordersFor(peopleComposite);
- section.setClient(peopleComposite);
- setSection(toolkit, section);
- }
-
- /**
- * Creates a check box for adding the repository user to the cc list. Does nothing if the repository does not have a
- * valid username, the repository user is the assignee, reporter or already on the the cc list.
- */
- private void addSelfToCC(Composite composite) {
- TaskRepository repository = this.getTaskEditorPage().getTaskRepository();
- if (repository.getUserName() == null) {
- return;
- }
-
- TaskAttribute root = getTaskData().getRoot();
- TaskAttribute owner = root.getMappedAttribute(TaskAttribute.USER_ASSIGNED);
- if (owner != null && owner.getValue().indexOf(repository.getUserName()) != -1) {
- return;
- }
-
- TaskAttribute reporter = root.getMappedAttribute(TaskAttribute.USER_REPORTER);
- if (reporter != null && reporter.getValue().indexOf(repository.getUserName()) != -1) {
- return;
- }
-
- TaskAttribute ccAttribute = root.getMappedAttribute(TaskAttribute.USER_CC);
- if (ccAttribute != null && ccAttribute.getValues().contains(repository.getUserName())) {
- return;
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracRenderingEngine.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracRenderingEngine.java
deleted file mode 100644
index 493e5b23e..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracRenderingEngine.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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:
- * Xiaoyang Guan - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.ui.editor;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.TracXmlRpcClient;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractRenderingEngine;
-
-/**
- *
- * @author Xiaoyang Guan
- * @since 2.1
- */
-public class TracRenderingEngine extends AbstractRenderingEngine {
-
- /**
- * generate HTML preview page for <code>text</code>
- */
- @Override
- public String renderAsHtml(TaskRepository repository, String text, IProgressMonitor monitor) throws CoreException {
- monitor.beginTask("Render HTML Preview", IProgressMonitor.UNKNOWN); //$NON-NLS-1$
- try {
- ITracClient client = TracCorePlugin.getDefault()
- .getConnector()
- .getClientManager()
- .getTracClient(repository);
- if (client instanceof TracXmlRpcClient) {
- TracXmlRpcClient tracXmlRpcClient = (TracXmlRpcClient) client;
- String htmlText = tracXmlRpcClient.wikiToHtml(text, monitor);
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
-
- String htmlHeader = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" //$NON-NLS-1$
- + "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">" //$NON-NLS-1$
- + "<head>" //$NON-NLS-1$
- + "<link rel=\"stylesheet\" href=\"REPOSITORY_URL/chrome/common/css/trac.css\" type=\"text/css\" />" //$NON-NLS-1$
- + "<link rel=\"stylesheet\" href=\"REPOSITORY_URL/chrome/common/css/wiki.css\" type=\"text/css\" />" //$NON-NLS-1$
- + "<link rel=\"icon\" href=\"REPOSITORY_URL/chrome/common/trac.ico\" type=\"image/x-icon\" />" //$NON-NLS-1$
- + "<link rel=\"shortcut icon\" href=\"EPOSITORY_URL/chrome/common/trac.ico\" type=\"image/x-icon\" />" //$NON-NLS-1$
- + "<style type=\"text/css\">body {background: #f4f4f4 url(REPOSITORY_URL/chrome/common/draft.png);margin: 0;padding: 0;}</style>" //$NON-NLS-1$
- + "</head>"; //$NON-NLS-1$
- String htmlBody = "<body> " + htmlText + "</body>"; //$NON-NLS-1$ //$NON-NLS-2$
- String htmlFooter = "</html>"; //$NON-NLS-1$
-
- String html = htmlHeader.replace("REPOSITORY_URL", repository.getRepositoryUrl()) + htmlBody //$NON-NLS-1$
- + htmlFooter;
- return html;
- } else {
- throw new CoreException(TracCorePlugin.toStatus(new TracException(
- "Preview is available only in XML-RPC access mode"), repository)); //$NON-NLS-1$
- }
- } catch (TracException e) {
- throw new CoreException(TracCorePlugin.toStatus(e, repository));
- } finally {
- monitor.done();
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPage.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPage.java
deleted file mode 100644
index d9e1c9a05..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPage.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.editor;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.mylyn.internal.trac.core.TracAttribute;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
-import org.eclipse.mylyn.tasks.ui.editors.AttributeEditorFactory;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorPartDescriptor;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskEditorPage extends AbstractTaskEditorPage {
-
- private TracRenderingEngine renderingEngine;
-
- public TracTaskEditorPage(TaskEditor editor) {
- super(editor, TracCorePlugin.CONNECTOR_KIND);
- }
-
- @Override
- protected Set<TaskEditorPartDescriptor> createPartDescriptors() {
- Set<TaskEditorPartDescriptor> descriptors = super.createPartDescriptors();
- // remove unnecessary default editor parts
- for (Iterator<TaskEditorPartDescriptor> it = descriptors.iterator(); it.hasNext();) {
- TaskEditorPartDescriptor taskEditorPartDescriptor = it.next();
- if (taskEditorPartDescriptor.getId().equals(ID_PART_PEOPLE)) {
- it.remove();
- }
- }
- descriptors.add(new TaskEditorPartDescriptor(ID_PART_PEOPLE) {
- @Override
- public AbstractTaskEditorPart createPart() {
- return new TracPeoplePart();
- }
- }.setPath(PATH_PEOPLE));
- return descriptors;
- }
-
- @Override
- protected void createParts() {
- if (renderingEngine == null) {
- renderingEngine = new TracRenderingEngine();
- }
- getAttributeEditorToolkit().setRenderingEngine(renderingEngine);
- super.createParts();
- }
-
- @Override
- protected AttributeEditorFactory createAttributeEditorFactory() {
- AttributeEditorFactory factory = new AttributeEditorFactory(getModel(), getTaskRepository(), getEditorSite()) {
- @Override
- public AbstractAttributeEditor createEditor(String type, TaskAttribute taskAttribute) {
- if (TracAttribute.CC.getTracKey().equals(taskAttribute.getId())) {
- return new TracCcAttributeEditor(getModel(), taskAttribute);
- }
- return super.createEditor(type, taskAttribute);
- }
- };
- return factory;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPageFactory.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPageFactory.java
deleted file mode 100644
index 69d5e49e1..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorPageFactory.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.editor;
-
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylyn.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory;
-import org.eclipse.mylyn.tasks.ui.editors.BrowserFormPage;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
-import org.eclipse.mylyn.tasks.ui.editors.TaskEditorInput;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.forms.editor.FormPage;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskEditorPageFactory extends AbstractTaskEditorPageFactory {
-
- @Override
- public boolean canCreatePageFor(TaskEditorInput input) {
- if (input.getTask().getConnectorKind().equals(TracCorePlugin.CONNECTOR_KIND)) {
- return true;
- } else if (TasksUiUtil.isOutgoingNewTask(input.getTask(), TracCorePlugin.CONNECTOR_KIND)) {
- return true;
- }
- return false;
- }
-
- @Override
- public FormPage createPage(TaskEditor parentEditor) {
- TaskEditorInput input = parentEditor.getTaskEditorInput();
- if (TasksUiUtil.isOutgoingNewTask(input.getTask(), TracCorePlugin.CONNECTOR_KIND)) {
- return new TracTaskEditorPage(parentEditor);
- } else if (TracRepositoryConnector.hasRichEditor(input.getTaskRepository())) {
- return new TracTaskEditorPage(parentEditor);
- } else {
- return new BrowserFormPage(parentEditor, Messages.TracTaskEditorPageFactory_Browser);
- }
- }
-
- @Override
- public String[] getConflictingIds(TaskEditorInput input) {
- if (!input.getTask().getConnectorKind().equals(TracCorePlugin.CONNECTOR_KIND)) {
- return new String[] { ITasksUiConstants.ID_PAGE_PLANNING };
- }
- return null;
- }
-
- @Override
- public Image getPageImage() {
- return CommonImages.getImage(TasksUiImages.REPOSITORY_SMALL);
- }
-
- @Override
- public String getPageText() {
- return "Trac"; //$NON-NLS-1$
- }
-
- @Override
- public int getPriority() {
- return PRIORITY_TASK;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/messages.properties b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/messages.properties
deleted file mode 100644
index 9375dba7a..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/messages.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-TracPeoplePart_People=People
-TracPeoplePart__Select_to_remove_=(Select to remove)
-
-TracTaskEditorPageFactory_Browser=Browser
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/messages.properties b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/messages.properties
deleted file mode 100644
index 49118f301..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/messages.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-TracConnectorUi_Replying_to__comment_X_X_=Replying to [comment:{0} {1}]:
-TracConnectorUi_Replying_to__comment_ticket_X_X_X_=Replying to [comment:ticket:{0}:{1} {2}]:
-TracConnectorUi_Replying_to__ticket_X_X_=Replying to [ticket:{0} {1}]:
-TracConnectorUi_Ticket=Ticket
-
-WebHyperlink_Open_URL_X=Open URL {0}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/Messages.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/Messages.java
deleted file mode 100644
index 3df17dd34..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/Messages.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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.trac.ui.wizard;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.trac.ui.wizard.messages"; //$NON-NLS-1$
-
- static {
- // load message values from bundle file
- reloadMessages();
- }
-
- public static void reloadMessages() {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- public static String TracFilterQueryPage_Add_search_filters_to_define_query;
-
- public static String TracFilterQueryPage_CC;
-
- public static String TracFilterQueryPage_Component;
-
- public static String TracFilterQueryPage_Keywords;
-
- public static String TracFilterQueryPage_Milestone;
-
- public static String TracFilterQueryPage_New_Trac_Query;
-
- public static String TracFilterQueryPage_or;
-
- public static String TracFilterQueryPage_Owner;
-
- public static String TracFilterQueryPage_Priority;
-
- public static String TracFilterQueryPage_Query_Title;
-
- public static String TracFilterQueryPage_Reporter;
-
- public static String TracFilterQueryPage_Resolution;
-
- public static String TracFilterQueryPage_Select_to_add_filter;
-
- public static String TracFilterQueryPage_Status;
-
- public static String TracFilterQueryPage_Summary;
-
- public static String TracFilterQueryPage_Type;
-
- public static String TracFilterQueryPage_Version;
-
- public static String TracQueryPage_CC;
-
- public static String TracQueryPage_Component;
-
- public static String TracQueryPage_Description;
-
- public static String TracQueryPage_Enter_query_parameters;
-
- public static String TracQueryPage_If_attributes_are_blank_or_stale_press_the_Update_button;
-
- public static String TracQueryPage_Keywords;
-
- public static String TracQueryPage_Milestone;
-
- public static String TracQueryPage_No_repository_available;
-
- public static String TracQueryPage_Owner;
-
- public static String TracQueryPage_Priority;
-
- public static String TracQueryPage_Query_Title;
-
- public static String TracQueryPage_Reporter;
-
- public static String TracQueryPage_Resolution;
-
- public static String TracQueryPage_Status;
-
- public static String TracQueryPage_Summary;
-
- public static String TracQueryPage_Type;
-
- public static String TracQueryPage_Update_Attributes_Failed;
-
- public static String TracQueryPage_Update_Attributes_from_Repository;
-
- public static String TracQueryPage_Version;
-
- public static String TracRepositorySettingsPage_Access_Type_;
-
- public static String TracRepositorySettingsPage_Authentication_credentials_are_valid;
-
- public static String TracRepositorySettingsPage_Automatic__Use_Validate_Settings_;
-
- public static String TracRepositorySettingsPage_EXAMPLE_HTTP_TRAC_EDGEWALL_ORG;
-
- public static String TracRepositorySettingsPage_No_Trac_repository_found_at_url;
-
- public static String TracRepositorySettingsPage_Trac_Repository_Settings;
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracFilterQueryPage.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracFilterQueryPage.java
deleted file mode 100644
index 18553c803..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracFilterQueryPage.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.wizard;
-
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter.CompareOperator;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.internal.trac.ui.TracUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author Steffen Pingel
- */
-public class TracFilterQueryPage extends AbstractRepositoryQueryPage {
-
- private static final String TITLE = Messages.TracFilterQueryPage_New_Trac_Query;
-
- private static final String DESCRIPTION = Messages.TracFilterQueryPage_Add_search_filters_to_define_query;
-
- private static final String TITLE_QUERY_TITLE = Messages.TracFilterQueryPage_Query_Title;
-
- private Text titleText;
-
- private Composite scrollComposite;
-
- /* Maintain order of criterions in order to be able to restore this later. */
- private final Set<SearchField> visibleSearchFields = new LinkedHashSet<SearchField>();
-
- private List<SearchField> searchFields;
-
- public TracFilterQueryPage(TaskRepository repository, IRepositoryQuery query) {
- super(TITLE, repository, query);
- setTitle(TITLE);
- setDescription(DESCRIPTION);
- }
-
- @Override
- public void applyTo(IRepositoryQuery query) {
- query.setUrl(getQueryUrl(getTaskRepository().getRepositoryUrl()));
- query.setSummary(getQueryTitle());
- }
-
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(new GridData());
- composite.setLayout(new GridLayout(1, false));
-
- createTitleGroup(composite);
-
- ScrolledComposite scrolledComposite = new ScrolledComposite(composite, SWT.V_SCROLL | SWT.BORDER);
- GridData gd = new GridData(GridData.FILL, GridData.FILL, true, true);
- scrolledComposite.setExpandHorizontal(true);
- scrolledComposite.setLayoutData(gd);
-
- scrollComposite = new Composite(scrolledComposite, SWT.None);
- scrolledComposite.setContent(scrollComposite);
- scrollComposite.setLayout(new GridLayout(4, false));
-
- createAddFilterGroup(composite);
-
- if (getQuery() != null) {
- titleText.setText(getQuery().getSummary());
- TracSearch search = TracUtil.toTracSearch(getQuery());
- if (search != null) {
- restoreWidgetValues(search);
- }
- }
-
- Dialog.applyDialogFont(composite);
- setControl(composite);
- }
-
- @Override
- public String getQueryTitle() {
- return (titleText != null) ? titleText.getText() : null;
- }
-
- private void restoreWidgetValues(TracSearch search) {
- List<TracSearchFilter> filters = search.getFilters();
- for (TracSearchFilter filter : filters) {
- SearchField field = getSearchField(filter.getFieldName());
- if (field != null) {
- showSearchField(field, filter);
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, TracUiPlugin.ID_PLUGIN,
- "Ignoring invalid search filter: " + filter)); //$NON-NLS-1$
- }
- }
- }
-
- private SearchField getSearchField(String fieldName) {
- for (SearchField searchField : searchFields) {
- if (searchField.getFieldName().equals(fieldName)) {
- return searchField;
- }
- }
- return null;
- }
-
- private void createAddFilterGroup(Composite parent) {
- GridLayout layout;
- GridData gd;
-
- Composite composite = new Composite(parent, SWT.NONE);
- layout = new GridLayout(2, false);
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- gd = new GridData(GridData.BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- composite.setLayoutData(gd);
-
- Label label = new Label(composite, SWT.LEFT);
- label.setText(Messages.TracFilterQueryPage_Select_to_add_filter);
-
- // condition
- final Combo filterCombo = new Combo(composite, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
-
- searchFields = new ArrayList<SearchField>();
- searchFields.add(new TextSearchField("summary", Messages.TracFilterQueryPage_Summary)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("reporter", Messages.TracFilterQueryPage_Reporter)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("owner", Messages.TracFilterQueryPage_Owner)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("type", Messages.TracFilterQueryPage_Type)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("status", Messages.TracFilterQueryPage_Status)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("priority", Messages.TracFilterQueryPage_Priority)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("milestone", Messages.TracFilterQueryPage_Milestone)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("component", Messages.TracFilterQueryPage_Component)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("version", Messages.TracFilterQueryPage_Version)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("resoution", Messages.TracFilterQueryPage_Resolution)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("keywords", Messages.TracFilterQueryPage_Keywords)); //$NON-NLS-1$
- searchFields.add(new TextSearchField("cc", Messages.TracFilterQueryPage_CC)); //$NON-NLS-1$
-
- filterCombo.add(""); //$NON-NLS-1$
- for (SearchField field : searchFields) {
- filterCombo.add(field.getDisplayName());
- }
-
- filterCombo.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- if (filterCombo.getText().length() > 0) {
- SearchField field = searchFields.get(filterCombo.getSelectionIndex() - 1);
- showSearchField(field, null);
- filterCombo.setText(""); //$NON-NLS-1$
- }
- }
- });
- }
-
- private void createTitleGroup(Composite composite) {
- Group group = new Group(composite, SWT.NONE);
- group.setText(TITLE_QUERY_TITLE);
- group.setLayout(new GridLayout(1, false));
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- group.setLayoutData(gd);
-
- titleText = new Text(group, SWT.BORDER);
- gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- titleText.setLayoutData(gd);
-
- titleText.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent e) {
- // ignore
- }
-
- public void keyReleased(KeyEvent e) {
- getContainer().updateButtons();
- }
- });
- }
-
- @Override
- public boolean isPageComplete() {
- if (titleText != null && titleText.getText().length() > 0) {
- return true;
- }
- return false;
- }
-
- private void showSearchField(SearchField field, TracSearchFilter filter) {
- assert filter == null || !visibleSearchFields.contains(field);
-
- if (!visibleSearchFields.contains(field)) {
- field.createControls(scrollComposite, filter);
- visibleSearchFields.add(field);
- } else {
- field.addControl(scrollComposite);
- }
- updateScrollPane();
- }
-
- public String getQueryUrl(String repsitoryUrl) {
- TracSearch search = new TracSearch();
- for (SearchField field : visibleSearchFields) {
- search.addFilter(field.getFilter());
- }
-
- StringBuilder sb = new StringBuilder();
- sb.append(repsitoryUrl);
- sb.append(ITracClient.QUERY_URL);
- sb.append(search.toUrl());
- return sb.toString();
- }
-
- private void hideSearchField(SearchField field) {
- visibleSearchFields.remove(field);
- }
-
- private void updateScrollPane() {
- scrollComposite.setSize(scrollComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- scrollComposite.layout();
- }
-
- private abstract class SearchField {
-
- protected String fieldName;
-
- private final String displayName;
-
- public SearchField(String fieldName, String displayName) {
- this.fieldName = fieldName;
- this.displayName = displayName;
- }
-
- public abstract void createControls(Composite parent, TracSearchFilter filter);
-
- public abstract void addControl(Composite parent);
-
- public String getFieldName() {
- return fieldName;
- }
-
- public String getDisplayName() {
- return displayName;
- }
-
- public abstract TracSearchFilter getFilter();
-
- }
-
- private class TextSearchField extends SearchField {
-
- private final CompareOperator[] compareOperators = { CompareOperator.CONTAINS, CompareOperator.CONTAINS_NOT,
- CompareOperator.BEGINS_WITH, CompareOperator.ENDS_WITH, CompareOperator.IS, CompareOperator.IS_NOT, };
-
- private List<TextCriterion> criterions;
-
- public TextSearchField(String fieldName, String displayName) {
- super(fieldName, displayName);
- }
-
- @Override
- public void createControls(Composite parent, TracSearchFilter filter) {
- if (filter != null) {
- TextCriterion first = addCriterion(parent);
- first.setCondition(filter.getOperator());
- List<String> values = filter.getValues();
- if (!values.isEmpty()) {
- first.setSearchText(values.get(0));
- for (int i = 1; i < values.size(); i++) {
- TextCriterion criterion = addCriterion(parent);
- criterion.setSearchText(values.get(1));
- }
- }
- } else {
- addCriterion(parent);
- }
-
- }
-
- @Override
- public void addControl(Composite parent) {
- addCriterion(parent);
- }
-
- public TextCriterion addCriterion(Composite parent) {
- TextCriterion criterion = new TextCriterion();
- if (criterions == null) {
- criterions = new ArrayList<TextCriterion>();
- criterion.createControl(parent);
- } else {
- criterion.createControl(parent, criterions.get(criterions.size() - 1));
- }
- criterions.add(criterion);
- return criterion;
- }
-
- @Override
- public TracSearchFilter getFilter() {
- TracSearchFilter newFilter = new TracSearchFilter(getFieldName());
- newFilter.setOperator(criterions.get(0).getCondition());
- for (TextCriterion criterion : criterions) {
- newFilter.addValue(criterion.getSearchText());
- }
- return newFilter;
- }
-
- public void removeCriterion(TextCriterion criterion) {
- int i = criterions.indexOf(criterion);
- if (i == -1) {
- throw new RuntimeException();
- }
- if (i == 0) {
- // the first criterion is special since it contains the compare
- // operator combo
- if (criterions.size() > 1) {
- // copy the value from the second criterion to the first
- TextCriterion sourceCriterion = criterions.get(1);
- criterion.searchText.setText(sourceCriterion.searchText.getText());
- removeCriterionByIndex(1);
- } else {
- // no more criterions, remove all controls
- removeCriterionByIndex(0);
- hideSearchField(this);
- }
- } else {
- removeCriterionByIndex(i);
- }
- }
-
- private void removeCriterionByIndex(int i) {
- criterions.get(i).remove();
- criterions.remove(i);
- updateScrollPane();
- }
-
- private class TextCriterion {
-
- private Combo conditionCombo;
-
- private Text searchText;
-
- private Label label;
-
- private Button removeButton;
-
- public void createControl(Composite parent) {
- label = new Label(parent, SWT.LEFT);
- label.setText(getDisplayName() + ": "); //$NON-NLS-1$
-
- conditionCombo = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
- for (CompareOperator op : compareOperators) {
- conditionCombo.add(op.toString());
- }
- conditionCombo.setText(compareOperators[0].toString());
-
- createSearchTextAndRemoveButton(parent);
- }
-
- public void createControl(Composite parent, TextCriterion top) {
- label = new Label(parent, SWT.RIGHT);
- GridData gd = new GridData();
- gd.horizontalAlignment = SWT.END;
- gd.horizontalSpan = 2;
- label.setLayoutData(gd);
- label.setText(Messages.TracFilterQueryPage_or);
-
- createSearchTextAndRemoveButton(parent);
-
- label.moveBelow(top.removeButton);
- searchText.moveBelow(label);
- removeButton.moveBelow(searchText);
- }
-
- private void createSearchTextAndRemoveButton(Composite parent) {
- searchText = new Text(parent, SWT.BORDER);
- GridData gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
- searchText.setLayoutData(gd);
-
- removeButton = new Button(parent, SWT.PUSH);
- removeButton.setText("-"); //$NON-NLS-1$
- removeButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
- TextSearchField.this.removeCriterion(TextCriterion.this);
- }
- });
- }
-
- public void remove() {
- label.dispose();
- if (conditionCombo != null) {
- conditionCombo.dispose();
- }
- searchText.dispose();
- removeButton.dispose();
- }
-
- public CompareOperator getCondition() {
- return (conditionCombo != null) ? compareOperators[conditionCombo.getSelectionIndex()] : null;
- }
-
- public String getSearchText() {
- return searchText.getText();
- }
-
- public boolean setCondition(CompareOperator operator) {
- if (conditionCombo != null) {
- int i = conditionCombo.indexOf(operator.toString());
- if (i != -1) {
- conditionCombo.select(i);
- return true;
- }
- }
- return false;
- }
-
- public void setSearchText(String text) {
- searchText.setText(text);
- }
-
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracQueryPage.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracQueryPage.java
deleted file mode 100644
index ebdbf9444..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracQueryPage.java
+++ /dev/null
@@ -1,759 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.wizard;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter.CompareOperator;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
-import org.eclipse.mylyn.internal.trac.ui.TracUiPlugin;
-import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositoryQueryPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * Trac search page. Provides a form similar to the one the Bugzilla connector uses.
- *
- * @author Steffen Pingel
- */
-public class TracQueryPage extends AbstractRepositoryQueryPage {
-
- private Text titleText;
-
- private static final int PRODUCT_HEIGHT = 60;
-
- private static final int STATUS_HEIGHT = 40;
-
- protected final static String PAGE_NAME = "TracSearchPage"; //$NON-NLS-1$
-
- private static final String SEARCH_URL_ID = PAGE_NAME + ".SEARCHURL"; //$NON-NLS-1$
-
- protected Combo summaryText = null;
-
- protected Combo repositoryCombo = null;
-
- private TextSearchField summaryField;
-
- private TextSearchField descriptionField;
-
- private ListSearchField componentField;
-
- private ListSearchField versionField;
-
- private ListSearchField milestoneField;
-
- private ListSearchField priorityField;
-
- private ListSearchField typeField;
-
- private ListSearchField resolutionField;
-
- private ListSearchField statusField;
-
- private Button updateButton;
-
- private TextSearchField keywordsField;
-
- private final Map<String, SearchField> searchFieldByName = new HashMap<String, SearchField>();
-
- private boolean firstTime = true;
-
- // private UserSearchField ownerField;
- //
- // private UserSearchField reporterField;
- //
- // private UserSearchField ccField;
-
- public TracQueryPage(TaskRepository repository, IRepositoryQuery query) {
- super(Messages.TracQueryPage_Enter_query_parameters, repository, query);
- setTitle(Messages.TracQueryPage_Enter_query_parameters);
- setDescription(Messages.TracQueryPage_If_attributes_are_blank_or_stale_press_the_Update_button);
- }
-
- public TracQueryPage(TaskRepository repository) {
- this(repository, null);
- }
-
- public void createControl(Composite parent) {
- Composite control = new Composite(parent, SWT.NONE);
- GridData gd = new GridData(GridData.FILL_BOTH);
- control.setLayoutData(gd);
- GridLayout layout = new GridLayout(4, false);
- if (inSearchContainer()) {
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- }
- control.setLayout(layout);
-
- createTitleGroup(control);
-
- summaryField = new TextSearchField("summary"); //$NON-NLS-1$
- summaryField.createControls(control, Messages.TracQueryPage_Summary);
-
- descriptionField = new TextSearchField("description"); //$NON-NLS-1$
- descriptionField.createControls(control, Messages.TracQueryPage_Description);
-
- keywordsField = new TextSearchField("keywords"); //$NON-NLS-1$
- keywordsField.createControls(control, Messages.TracQueryPage_Keywords);
-
- createOptionsGroup(control);
-
- createUserGroup(control);
-
- if (getQuery() != null) {
- titleText.setText(getQuery().getSummary());
- TracSearch search = TracUtil.toTracSearch(getQuery());
- if (search != null) {
- restoreWidgetValues(search);
- }
- }
-
- Dialog.applyDialogFont(control);
- setControl(control);
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return false;
- }
-
- private void restoreWidgetValues(TracSearch search) {
- java.util.List<TracSearchFilter> filters = search.getFilters();
- for (TracSearchFilter filter : filters) {
- SearchField field = searchFieldByName.get(filter.getFieldName());
- if (field != null) {
- field.setFilter(filter);
- } else {
- StatusHandler.log(new Status(IStatus.WARNING, TracUiPlugin.ID_PLUGIN,
- "Ignoring invalid search filter: " + filter)); //$NON-NLS-1$
- }
- }
- }
-
- private void createTitleGroup(Composite control) {
- if (inSearchContainer()) {
- return;
- }
-
- Label titleLabel = new Label(control, SWT.NONE);
- titleLabel.setText(Messages.TracQueryPage_Query_Title);
-
- titleText = new Text(control, SWT.BORDER);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- gd.horizontalSpan = 3;
- titleText.setLayoutData(gd);
- titleText.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent e) {
- // ignore
- }
-
- public void keyReleased(KeyEvent e) {
- getContainer().updateButtons();
- }
- });
- }
-
- protected Control createOptionsGroup(Composite control) {
- Group group = new Group(control, SWT.NONE);
- // group.setText("Ticket Attributes");
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- group.setLayout(layout);
- GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd.horizontalSpan = 4;
- group.setLayoutData(gd);
-
- createProductAttributes(group);
- createTicketAttributes(group);
- createUpdateButton(group);
-
- return group;
- }
-
- protected void createUserGroup(Composite control) {
- UserSearchField userField = new UserSearchField();
- userField.createControls(control);
- }
-
- /**
- * Creates the area for selection on product attributes component/version/milestone.
- */
- protected Control createProductAttributes(Composite control) {
- Composite group = new Composite(control, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- group.setLayout(layout);
- GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd.horizontalSpan = 1;
- group.setLayoutData(gd);
-
- Label label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Component);
-
- label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Version);
-
- label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Milestone);
-
- componentField = new ListSearchField("component"); //$NON-NLS-1$
- componentField.createControls(group, PRODUCT_HEIGHT);
-
- versionField = new ListSearchField("version"); //$NON-NLS-1$
- versionField.createControls(group, PRODUCT_HEIGHT);
-
- milestoneField = new ListSearchField("milestone"); //$NON-NLS-1$
- milestoneField.createControls(group, PRODUCT_HEIGHT);
-
- return group;
- }
-
- /**
- * Creates the area for selection of ticket attributes status/resolution/priority.
- */
- protected Control createTicketAttributes(Composite control) {
- Composite group = new Composite(control, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 4;
- group.setLayout(layout);
- GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd.horizontalSpan = 1;
- group.setLayoutData(gd);
-
- Label label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Status);
-
- label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Resolution);
-
- label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Type);
-
- label = new Label(group, SWT.LEFT);
- label.setText(Messages.TracQueryPage_Priority);
-
- statusField = new ListSearchField("status"); //$NON-NLS-1$
- statusField.createControls(group, STATUS_HEIGHT);
-
- resolutionField = new ListSearchField("resolution"); //$NON-NLS-1$
- resolutionField.createControls(group, STATUS_HEIGHT);
-
- typeField = new ListSearchField("type"); //$NON-NLS-1$
- typeField.createControls(group, STATUS_HEIGHT);
-
- priorityField = new ListSearchField("priority"); //$NON-NLS-1$
- priorityField.createControls(group, STATUS_HEIGHT);
-
- return group;
- }
-
- protected Control createUpdateButton(final Composite control) {
- Composite group = new Composite(control, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- group.setLayout(layout);
- group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- updateButton = new Button(group, SWT.PUSH);
- updateButton.setText(Messages.TracQueryPage_Update_Attributes_from_Repository);
- updateButton.setLayoutData(new GridData());
- updateButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (getTaskRepository() != null) {
- updateAttributesFromRepository(true);
- } else {
- MessageDialog.openInformation(Display.getCurrent().getActiveShell(),
- Messages.TracQueryPage_Update_Attributes_Failed,
- Messages.TracQueryPage_No_repository_available);
- }
- }
- });
-
- return group;
- }
-
- @Override
- public void setVisible(boolean visible) {
- super.setVisible(visible);
-
- if (getSearchContainer() != null) {
- getSearchContainer().setPerformActionEnabled(true);
- }
-
- if (visible && firstTime) {
- firstTime = false;
- if (!hasAttributes()) {
- // delay the execution so the dialog's progress bar is visible
- // when the attributes are updated
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (getControl() != null && !getControl().isDisposed()) {
- initializePage();
- }
- }
-
- });
- } else {
- // no remote connection is needed to get attributes therefore do
- // not use delayed execution to avoid flickering
- initializePage();
- }
- }
- }
-
- private void initializePage() {
- updateAttributesFromRepository(false);
- boolean restored = (getQuery() != null);
- if (inSearchContainer()) {
- restored |= restoreWidgetValues();
- }
- if (!restored) {
- // initialize with default values
- }
- }
-
- private boolean hasAttributes() {
- TracRepositoryConnector connector = (TracRepositoryConnector) TasksUi.getRepositoryManager()
- .getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- ITracClient client = connector.getClientManager().getTracClient(getTaskRepository());
- return client.hasAttributes();
- }
-
- private void updateAttributesFromRepository(final boolean force) {
- TracRepositoryConnector connector = (TracRepositoryConnector) TasksUi.getRepositoryManager()
- .getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- final ITracClient client = connector.getClientManager().getTracClient(getTaskRepository());
-
- if (!client.hasAttributes() || force) {
- try {
- IRunnableWithProgress runnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- client.updateAttributes(monitor, force);
- } catch (TracException e) {
- throw new InvocationTargetException(e);
- }
- }
- };
-
- if (getContainer() != null) {
- getContainer().run(true, true, runnable);
- } else if (getSearchContainer() != null) {
- getSearchContainer().getRunnableContext().run(true, true, runnable);
- } else {
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- service.busyCursorWhile(runnable);
- }
- } catch (InvocationTargetException e) {
- setErrorMessage(TracCorePlugin.toStatus(e.getCause(), getTaskRepository()).getMessage());
- return;
- } catch (InterruptedException e) {
- return;
- }
- }
-
- statusField.setValues(client.getTicketStatus());
- resolutionField.setValues(client.getTicketResolutions());
- typeField.setValues(client.getTicketTypes());
- priorityField.setValues(client.getPriorities());
-
- componentField.setValues(client.getComponents());
- versionField.setValues(client.getVersions());
- milestoneField.setValues(client.getMilestones());
- }
-
- @Override
- public boolean isPageComplete() {
- if (titleText != null && titleText.getText().length() > 0) {
- return true;
- }
- return false;
- }
-
- public String getQueryUrl(String repsitoryUrl) {
- TracSearch search = getTracSearch();
-
- StringBuilder sb = new StringBuilder();
- sb.append(repsitoryUrl);
- sb.append(ITracClient.QUERY_URL);
- sb.append(search.toUrl());
- return sb.toString();
- }
-
- private TracSearch getTracSearch() {
- TracSearch search = new TracSearch();
- for (SearchField field : searchFieldByName.values()) {
- TracSearchFilter filter = field.getFilter();
- if (filter != null) {
- search.addFilter(filter);
- }
- }
- return search;
- }
-
- // public boolean performAction() {
- //
- // Proxy proxySettings = TasksUiPlugin.getDefault().getProxySettings();
- // SearchHitCollector collector = new
- // SearchHitCollector(TasksUiPlugin.getTaskList(),
- // repository, getQuery(), proxySettings);
- // NewSearchUI.runQueryInBackground(collector);
- //
- // return true;
- // }
-
- @Override
- public boolean performSearch() {
- if (inSearchContainer()) {
- saveState();
- }
-
- return super.performSearch();
- }
-
- @Override
- public IDialogSettings getDialogSettings() {
- IDialogSettings settings = TracUiPlugin.getDefault().getDialogSettings();
- IDialogSettings dialogSettings = settings.getSection(PAGE_NAME);
- if (dialogSettings == null) {
- dialogSettings = settings.addNewSection(PAGE_NAME);
- }
- return dialogSettings;
- }
-
- private boolean restoreWidgetValues() {
- IDialogSettings settings = getDialogSettings();
- String repoId = "." + getTaskRepository().getRepositoryUrl(); //$NON-NLS-1$
-
- String searchUrl = settings.get(SEARCH_URL_ID + repoId);
- if (searchUrl == null) {
- return false;
- }
-
- restoreWidgetValues(new TracSearch(searchUrl));
- return true;
- }
-
- @Override
- public void saveState() {
- String repoId = "." + getTaskRepository().getRepositoryUrl(); //$NON-NLS-1$
- IDialogSettings settings = getDialogSettings();
- settings.put(SEARCH_URL_ID + repoId, getTracSearch().toUrl());
- }
-
- private abstract class SearchField {
-
- protected String fieldName;
-
- public SearchField(String fieldName) {
- this.fieldName = fieldName;
-
- if (fieldName != null) {
- assert !searchFieldByName.containsKey(fieldName);
- searchFieldByName.put(fieldName, this);
- }
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- public abstract TracSearchFilter getFilter();
-
- public abstract void setFilter(TracSearchFilter filter);
-
- }
-
- private class TextSearchField extends SearchField {
-
- private Combo conditionCombo;
-
- protected Text searchText;
-
- private Label label;
-
- private final CompareOperator[] compareOperators = { CompareOperator.CONTAINS, CompareOperator.CONTAINS_NOT,
- CompareOperator.BEGINS_WITH, CompareOperator.ENDS_WITH, CompareOperator.IS, CompareOperator.IS_NOT, };
-
- public TextSearchField(String fieldName) {
- super(fieldName);
- }
-
- public void createControls(Composite parent, String labelText) {
- if (labelText != null) {
- label = new Label(parent, SWT.LEFT);
- label.setText(labelText);
- }
-
- conditionCombo = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
- for (CompareOperator op : compareOperators) {
- conditionCombo.add(op.toString());
- }
- conditionCombo.setText(compareOperators[0].toString());
-
- searchText = new Text(parent, SWT.BORDER);
- GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
- // the user search field has additional controls and no fieldName
- if (fieldName != null) {
- gd.horizontalSpan = 2;
- }
- searchText.setLayoutData(gd);
- }
-
- public CompareOperator getCondition() {
- return compareOperators[conditionCombo.getSelectionIndex()];
- }
-
- public String getSearchText() {
- return searchText.getText();
- }
-
- public boolean setCondition(CompareOperator operator) {
- if (conditionCombo != null) {
- int i = conditionCombo.indexOf(operator.toString());
- if (i != -1) {
- conditionCombo.select(i);
- return true;
- }
- }
- return false;
- }
-
- public void setSearchText(String text) {
- searchText.setText(text);
- }
-
- @Override
- public TracSearchFilter getFilter() {
- String text = getSearchText();
- if (text.length() == 0) {
- return null;
- }
-
- TracSearchFilter newFilter = new TracSearchFilter(getFieldName());
- newFilter.setOperator(getCondition());
- newFilter.addValue(getSearchText());
- return newFilter;
- }
-
- @Override
- public void setFilter(TracSearchFilter filter) {
- setCondition(filter.getOperator());
- java.util.List<String> values = filter.getValues();
- setSearchText(values.get(0));
- }
-
- public void setFieldName(String fieldName) {
- this.fieldName = fieldName;
- }
-
- }
-
- private class ListSearchField extends SearchField {
-
- private List list;
-
- public ListSearchField(String fieldName) {
- super(fieldName);
- }
-
- public void setValues(Object[] items) {
- // preserve selected values
- TracSearchFilter filter = getFilter();
-
- list.removeAll();
- if (items != null) {
- list.setEnabled(true);
- for (Object item : items) {
- list.add(item.toString());
- }
-
- // restore selected values
- if (filter != null) {
- setFilter(filter);
- }
- } else {
- list.setEnabled(false);
- }
- }
-
- public void createControls(Composite parent, int height) {
- list = new List(parent, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
- GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd.heightHint = height;
- list.setLayoutData(gd);
- }
-
- @Override
- public TracSearchFilter getFilter() {
- int[] indicies = list.getSelectionIndices();
- if (indicies.length == 0) {
- return null;
- }
-
- TracSearchFilter newFilter = new TracSearchFilter(getFieldName());
- newFilter.setOperator(CompareOperator.IS);
- for (int i : indicies) {
- newFilter.addValue(list.getItem(i));
- }
- return newFilter;
- }
-
- @Override
- public void setFilter(TracSearchFilter filter) {
- list.deselectAll();
- java.util.List<String> values = filter.getValues();
- for (String item : values) {
- int i = list.indexOf(item);
- if (i != -1) {
- list.select(i);
- } else {
- list.add(item, 0);
- list.select(0);
- }
- }
- }
-
- public void selectItems(String[] items) {
- list.deselectAll();
- for (String item : items) {
- int i = list.indexOf(item);
- if (i != -1) {
- list.select(i);
- }
- }
- }
-
- }
-
- private class UserSearchField extends SearchField {
-
- private final TextSearchField textField;
-
- private Combo userCombo;
-
- public UserSearchField() {
- super(null);
-
- textField = new TextSearchField(null);
-
- new UserSelectionSearchField("owner", 0); //$NON-NLS-1$
-
- new UserSelectionSearchField("reporter", 1); //$NON-NLS-1$
-
- new UserSelectionSearchField("cc", 2); //$NON-NLS-1$
- }
-
- public void createControls(Composite parent) {
- userCombo = new Combo(parent, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
- userCombo.add(Messages.TracQueryPage_Owner);
- userCombo.add(Messages.TracQueryPage_Reporter);
- userCombo.add(Messages.TracQueryPage_CC);
- userCombo.select(0);
-
- textField.createControls(parent, null);
- }
-
- @Override
- public TracSearchFilter getFilter() {
- return null;
- }
-
- @Override
- public void setFilter(TracSearchFilter filter) {
- }
-
- private void setSelection(int index) {
- userCombo.select(index);
- }
-
- private int getSelection() {
- return userCombo.getSelectionIndex();
- }
-
- class UserSelectionSearchField extends SearchField {
-
- private final int index;
-
- public UserSelectionSearchField(String fieldName, int index) {
- super(fieldName);
-
- this.index = index;
- }
-
- @Override
- public TracSearchFilter getFilter() {
- if (index == getSelection()) {
- textField.setFieldName(fieldName);
- return textField.getFilter();
- }
- return null;
- }
-
- @Override
- public void setFilter(TracSearchFilter filter) {
- textField.setFieldName(fieldName);
- textField.setFilter(filter);
- setSelection(index);
- }
-
- }
-
- }
-
- @Override
- public String getQueryTitle() {
- return (titleText != null) ? titleText.getText() : null;
- }
-
- @Override
- public void applyTo(IRepositoryQuery query) {
- query.setUrl(getQueryUrl(getTaskRepository().getRepositoryUrl()));
- query.setSummary(getQueryTitle());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracRepositorySettingsPage.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracRepositorySettingsPage.java
deleted file mode 100644
index 5952282d4..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracRepositorySettingsPage.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Steffen Pingel 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.trac.ui.wizard;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.internal.trac.core.TracClientFactory;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.client.TracException;
-import org.eclipse.mylyn.internal.trac.core.client.TracLoginException;
-import org.eclipse.mylyn.internal.trac.core.client.TracPermissionDeniedException;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.ui.TracUiPlugin;
-import org.eclipse.mylyn.tasks.core.RepositoryStatus;
-import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
-import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * @author Steffen Pingel
- */
-public class TracRepositorySettingsPage extends AbstractRepositorySettingsPage {
-
- private static final String TITLE = Messages.TracRepositorySettingsPage_Trac_Repository_Settings;
-
- private static final String DESCRIPTION = Messages.TracRepositorySettingsPage_EXAMPLE_HTTP_TRAC_EDGEWALL_ORG;
-
- private Combo accessTypeCombo;
-
- /** Supported access types. */
- private Version[] versions;
-
- public TracRepositorySettingsPage(TaskRepository taskRepository) {
- super(TITLE, DESCRIPTION, taskRepository);
- setNeedsAnonymousLogin(true);
- setNeedsEncoding(false);
- setNeedsTimeZone(false);
- }
-
- @Override
- protected void repositoryTemplateSelected(RepositoryTemplate template) {
- repositoryLabelEditor.setStringValue(template.label);
- setUrl(template.repositoryUrl);
- setAnonymous(template.anonymous);
-
- try {
- Version version = Version.valueOf(template.version);
- setTracVersion(version);
- } catch (RuntimeException ex) {
- setTracVersion(Version.TRAC_0_9);
- }
-
- getContainer().updateButtons();
- }
-
- @Override
- protected void createAdditionalControls(final Composite parent) {
- addRepositoryTemplatesToServerUrlCombo();
-
- Label accessTypeLabel = new Label(parent, SWT.NONE);
- accessTypeLabel.setText(Messages.TracRepositorySettingsPage_Access_Type_);
- accessTypeCombo = new Combo(parent, SWT.READ_ONLY);
-
- accessTypeCombo.add(Messages.TracRepositorySettingsPage_Automatic__Use_Validate_Settings_);
- versions = Version.values();
- for (Version version : versions) {
- accessTypeCombo.add(version.toString());
- }
- if (repository != null) {
- setTracVersion(Version.fromVersion(repository.getVersion()));
- } else {
- setTracVersion(null);
- }
- accessTypeCombo.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- if (accessTypeCombo.getSelectionIndex() > 0) {
- setVersion(versions[accessTypeCombo.getSelectionIndex() - 1].name());
- }
- getWizard().getContainer().updateButtons();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // ignore
- }
- });
- }
-
- @Override
- public boolean isPageComplete() {
- // make sure "Automatic" is not selected as a version
- return super.isPageComplete() && accessTypeCombo != null && accessTypeCombo.getSelectionIndex() != 0;
- }
-
- @Override
- protected boolean isValidUrl(String name) {
- if ((name.startsWith(URL_PREFIX_HTTPS) || name.startsWith(URL_PREFIX_HTTP)) && !name.endsWith("/")) { //$NON-NLS-1$
- try {
- new URL(name);
- return true;
- } catch (MalformedURLException e) {
- }
- }
- return false;
- }
-
- public Version getTracVersion() {
- if (accessTypeCombo.getSelectionIndex() == 0) {
- return null;
- } else {
- return versions[accessTypeCombo.getSelectionIndex() - 1];
- }
- }
-
- public void setTracVersion(Version version) {
- if (version == null) {
- // select "Automatic"
- accessTypeCombo.select(0);
- } else {
- int i = accessTypeCombo.indexOf(version.toString());
- if (i != -1) {
- accessTypeCombo.select(i);
- }
- setVersion(version.name());
- }
- }
-
- @Override
- protected void applyValidatorResult(Validator validator) {
- super.applyValidatorResult(validator);
-
- if (((TracValidator) validator).getResult() != null) {
- setTracVersion(((TracValidator) validator).getResult());
- }
- }
-
- // public for testing
- public class TracValidator extends Validator {
-
- private final String repositoryUrl;
-
- private final TaskRepository taskRepository;
-
- private final Version version;
-
- private Version result;
-
- public TracValidator(TaskRepository taskRepository, Version version) {
- this.repositoryUrl = taskRepository.getRepositoryUrl();
- this.taskRepository = taskRepository;
- this.version = version;
- }
-
- @Override
- public void run(IProgressMonitor monitor) throws CoreException {
- try {
- //validate(Provider.of(monitor));
- validate(monitor);
- } catch (MalformedURLException e) {
- throw new CoreException(RepositoryStatus.createStatus(repositoryUrl, IStatus.ERROR,
- TracUiPlugin.ID_PLUGIN, INVALID_REPOSITORY_URL));
- } catch (TracLoginException e) {
- throw new CoreException(RepositoryStatus.createStatus(repositoryUrl, IStatus.ERROR,
- TracUiPlugin.ID_PLUGIN, INVALID_LOGIN));
- } catch (TracPermissionDeniedException e) {
- throw new CoreException(RepositoryStatus.createStatus(repositoryUrl, IStatus.ERROR,
- TracUiPlugin.ID_PLUGIN, "Insufficient permissions for selected access type.")); //$NON-NLS-1$
- } catch (TracException e) {
- String message = Messages.TracRepositorySettingsPage_No_Trac_repository_found_at_url;
- if (e.getMessage() != null) {
- message += ": " + e.getMessage(); //$NON-NLS-1$
- }
- throw new CoreException(RepositoryStatus.createStatus(repositoryUrl, IStatus.ERROR,
- TracUiPlugin.ID_PLUGIN, message));
- }
- }
-
- public void validate(IProgressMonitor monitor) throws MalformedURLException, TracException {
- AbstractWebLocation location = new TaskRepositoryLocationFactory().createWebLocation(taskRepository);
-
- if (version != null) {
- ITracClient client = TracClientFactory.createClient(location, version);
- client.validate(monitor);
- } else {
- // probe version: XML-RPC access first, then web
- // access
- try {
- ITracClient client = TracClientFactory.createClient(location, Version.XML_RPC);
- client.validate(monitor);
- result = Version.XML_RPC;
- } catch (TracException e) {
- try {
- ITracClient client = TracClientFactory.createClient(location, Version.TRAC_0_9);
- client.validate(monitor);
- result = Version.TRAC_0_9;
-
- if (e instanceof TracPermissionDeniedException) {
- setStatus(RepositoryStatus.createStatus(repositoryUrl, IStatus.INFO,
- TracUiPlugin.ID_PLUGIN,
- Messages.TracRepositorySettingsPage_Authentication_credentials_are_valid));
- }
- } catch (TracLoginException e2) {
- throw e;
- } catch (TracException e2) {
- throw new TracException();
- }
- }
- }
- }
-
- public Version getResult() {
- return result;
- }
-
- }
-
- @Override
- protected Validator getValidator(TaskRepository repository) {
- return new TracValidator(repository, getTracVersion());
- }
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/messages.properties b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/messages.properties
deleted file mode 100644
index 5d39ba92d..000000000
--- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/messages.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-TracFilterQueryPage_Add_search_filters_to_define_query=Add search filters to define query.
-TracFilterQueryPage_CC=CC
-TracFilterQueryPage_Component=Component
-TracFilterQueryPage_Keywords=Keywords
-TracFilterQueryPage_Milestone=Milestone
-TracFilterQueryPage_New_Trac_Query=New Trac Query
-TracFilterQueryPage_or=or
-TracFilterQueryPage_Owner=Owner
-TracFilterQueryPage_Priority=Priority
-TracFilterQueryPage_Query_Title=Query Title
-TracFilterQueryPage_Reporter=Reporter
-TracFilterQueryPage_Resolution=Resolution
-TracFilterQueryPage_Select_to_add_filter=Select to add filter:
-TracFilterQueryPage_Status=Status
-TracFilterQueryPage_Summary=Summary
-TracFilterQueryPage_Type=Type
-TracFilterQueryPage_Version=Version
-
-TracQueryPage_CC=CC
-TracQueryPage_Component=Component
-TracQueryPage_Description=Description
-TracQueryPage_Enter_query_parameters=Enter query parameters
-TracQueryPage_If_attributes_are_blank_or_stale_press_the_Update_button=If attributes are blank or stale press the Update button.
-TracQueryPage_Keywords=Keywords
-TracQueryPage_Milestone=Milestone
-TracQueryPage_No_repository_available=No repository available, please add one using the Task Repositories view.
-TracQueryPage_Owner=Owner
-TracQueryPage_Priority=Priority
-TracQueryPage_Query_Title=Query Title:
-TracQueryPage_Reporter=Reporter
-TracQueryPage_Resolution=Resolution
-TracQueryPage_Status=Status
-TracQueryPage_Summary=Summary
-TracQueryPage_Type=Type
-TracQueryPage_Update_Attributes_Failed=Update Attributes Failed
-TracQueryPage_Update_Attributes_from_Repository=Update Attributes from Repository
-TracQueryPage_Version=Version
-
-TracRepositorySettingsPage_Access_Type_=Access Type:
-TracRepositorySettingsPage_Authentication_credentials_are_valid=Authentication credentials are valid. Note: Insufficient permissions for XML-RPC access, falling back to web access.
-TracRepositorySettingsPage_Automatic__Use_Validate_Settings_=Automatic (Use Validate Settings)
-TracRepositorySettingsPage_EXAMPLE_HTTP_TRAC_EDGEWALL_ORG=Example: http://trac.edgewall.org
-TracRepositorySettingsPage_No_Trac_repository_found_at_url=No Trac repository found at url
-TracRepositorySettingsPage_Trac_Repository_Settings=Trac Repository Settings

Back to the top