diff options
author | spingel | 2007-01-15 08:43:12 +0000 |
---|---|---|
committer | spingel | 2007-01-15 08:43:12 +0000 |
commit | e461ca34681bcd897ea64a479cb602f4a536471a (patch) | |
tree | defb78318d032d1db53c37de0043603c98fbce34 /org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor | |
parent | 00a5f3ce047fec6105ee518021374ffdb46d466e (diff) | |
download | org.eclipse.mylyn.tasks-e461ca34681bcd897ea64a479cb602f4a536471a.tar.gz org.eclipse.mylyn.tasks-e461ca34681bcd897ea64a479cb602f4a536471a.tar.xz org.eclipse.mylyn.tasks-e461ca34681bcd897ea64a479cb602f4a536471a.zip |
NEW - bug 165498: [api] Create unified abstract support for task submission to repository
https://bugs.eclipse.org/bugs/show_bug.cgi?id=165498
Diffstat (limited to 'org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor')
2 files changed, 0 insertions, 220 deletions
diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/NewTracTaskEditor.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/NewTracTaskEditor.java index d3b74abef..d4b55a425 100644 --- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/NewTracTaskEditor.java +++ b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/NewTracTaskEditor.java @@ -8,26 +8,11 @@ package org.eclipse.mylar.internal.trac.ui.editor; -import java.util.Collections; - -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.mylar.internal.trac.core.ITracClient; -import org.eclipse.mylar.internal.trac.core.InvalidTicketException; -import org.eclipse.mylar.internal.trac.core.TracCorePlugin; -import org.eclipse.mylar.internal.trac.core.TracRepositoryConnector; import org.eclipse.mylar.internal.trac.core.TracRepositoryQuery; -import org.eclipse.mylar.internal.trac.core.TracTask; import org.eclipse.mylar.internal.trac.core.model.TracSearch; import org.eclipse.mylar.internal.trac.core.model.TracSearchFilter; -import org.eclipse.mylar.internal.trac.core.model.TracTicket; import org.eclipse.mylar.internal.trac.core.model.TracSearchFilter.CompareOperator; -import org.eclipse.mylar.internal.trac.ui.TracUiPlugin; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; -import org.eclipse.mylar.tasks.core.AbstractTaskContainer; import org.eclipse.mylar.tasks.ui.TasksUiPlugin; import org.eclipse.mylar.tasks.ui.editors.AbstractNewRepositoryTaskEditor; import org.eclipse.mylar.tasks.ui.search.SearchHitCollector; @@ -38,67 +23,11 @@ import org.eclipse.ui.forms.editor.FormEditor; */ public class NewTracTaskEditor extends AbstractNewRepositoryTaskEditor { - private static final String SUBMIT_JOB_LABEL = "Submitting to Trac repository"; - public NewTracTaskEditor(FormEditor editor) { super(editor); } @Override - public void submitToRepository() { - if (!prepareSubmit()) { - return; - } - - final TracRepositoryConnector connector = (TracRepositoryConnector) TasksUiPlugin.getRepositoryManager() - .getRepositoryConnector(repository.getKind()); - - updateTask(); - - final TracTicket ticket; - try { - ticket = TracRepositoryConnector.getTracTicket(repository, taskData); - } catch (InvalidTicketException e) { - TracUiPlugin.handleTracException(e); - submitButton.setEnabled(true); - showBusy(false); - return; - } - - final AbstractTaskContainer category = getCategory(); - - Job submitJob = new Job(SUBMIT_JOB_LABEL) { - @Override - protected IStatus run(IProgressMonitor monitor) { - try { - ITracClient server = connector.getClientManager().getRepository(repository); - int id = server.createTicket(ticket); - - TracTask newTask = new TracTask(AbstractRepositoryTask.getHandle(repository.getUrl(), id), - TracRepositoryConnector.getTicketDescription(ticket), true); - - if (category != null) { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, category); - } else { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask); - } - - TasksUiPlugin.getSynchronizationScheduler().synchNow(0, Collections.singletonList(repository)); - close(); - return Status.OK_STATUS; - } catch (Exception e) { - return TracCorePlugin.toStatus(e); - } - } - }; - - if (getSubmitJobListener() != null) { - submitJob.addJobChangeListener(getSubmitJobListener()); - } - submitJob.schedule(); - } - - @Override public SearchHitCollector getDuplicateSearchCollector(String searchString) { TracSearchFilter filter = new TracSearchFilter("description"); filter.setOperator(CompareOperator.CONTAINS); @@ -121,15 +50,4 @@ public class NewTracTaskEditor extends AbstractNewRepositoryTaskEditor { return collector; } - @Override - protected IStatus handleSubmitError(final CoreException exception) { - TracUiPlugin.handleTracException(exception.getStatus()); - - if (!isDisposed() && !submitButton.isDisposed()) { - submitButton.setEnabled(true); - showBusy(false); - } - return Status.OK_STATUS; - } - } diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditor.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditor.java index e3e885890..b93b6d2c0 100644 --- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditor.java +++ b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditor.java @@ -8,158 +8,20 @@ package org.eclipse.mylar.internal.trac.ui.editor; -import java.lang.reflect.InvocationTargetException; - -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.core.runtime.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.jobs.JobChangeAdapter; -import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.mylar.context.core.MylarStatusHandler; -import org.eclipse.mylar.internal.trac.core.ITracClient; -import org.eclipse.mylar.internal.trac.core.InvalidTicketException; -import org.eclipse.mylar.internal.trac.core.TracRepositoryConnector; -import org.eclipse.mylar.internal.trac.core.model.TracTicket; -import org.eclipse.mylar.internal.trac.ui.TracUiPlugin; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; -import org.eclipse.mylar.tasks.ui.TasksUiPlugin; import org.eclipse.mylar.tasks.ui.editors.AbstractRepositoryTaskEditor; -import org.eclipse.ui.PlatformUI; import org.eclipse.ui.forms.editor.FormEditor; -import org.eclipse.ui.progress.IProgressService; /** * @author Steffen Pingel */ public class TracTaskEditor extends AbstractRepositoryTaskEditor { - private static final String SUBMIT_JOB_LABEL = "Submitting to Trac repository"; - public TracTaskEditor(FormEditor editor) { super(editor); } -// @Override -// public void init(IEditorSite site, IEditorInput input) { -// super.init(site, input); -// if (!(input instanceof RepositoryTaskEditorInput)) { -// return; -// } -// super.init(site, input); -// -// editorInput = (AbstractTaskEditorInput) input; -// repository = editorInput.getRepository(); -// connector = TasksUiPlugin.getRepositoryManager().getRepositoryConnector( -// repository.getKind()); -// -// setSite(site); -// setInput(input); -// -// taskOutlineModel = RepositoryTaskOutlineNode.parseBugReport(editorInput.getTaskData()); -// -// isDirty = false; -// updateEditorTitle(); -// } - - @Override - public void submitToRepository() { - if (isDirty()) { - this.doSave(new NullProgressMonitor()); - } - updateTask(); - submitButton.setEnabled(false); - showBusy(true); - - final TracTicket ticket; - try { - ticket = TracRepositoryConnector.getTracTicket(repository, taskData); - } catch (InvalidTicketException e) { - TracUiPlugin.handleTracException(e); - return; - } - final String comment = getNewCommentText(); - final AbstractRepositoryTask task = (AbstractRepositoryTask) TasksUiPlugin.getTaskListManager().getTaskList() - .getTask(AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); - final boolean attachContext = getAttachContext(); - - JobChangeAdapter listener = new JobChangeAdapter() { - @Override - public void done(final IJobChangeEvent event) { - PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { - public void run() { - if (event.getJob().getResult().isOK()) { - if (attachContext) { - attachContext(); - } - close(); - } - } - }); - } - }; - - Job submitJob = new Job(SUBMIT_JOB_LABEL) { - - @Override - protected IStatus run(IProgressMonitor monitor) { - try { - ITracClient server = ((TracRepositoryConnector) connector).getClientManager().getRepository(repository); - server.updateTicket(ticket, comment); - if (task != null) { - // XXX: HACK TO AVOID OVERWRITE WARNING - task.setTaskData(null); - TasksUiPlugin.getSynchronizationManager().synchronize(connector, task, true, null); - } - return Status.OK_STATUS; - } catch (final Exception e) { - PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { - public void run() { - if (!isDisposed() && !submitButton.isDisposed()) { - TracUiPlugin.handleTracException(e); - // TracUiPlugin.handleTracException(event.getResult()); - submitButton.setEnabled(true); - TracTaskEditor.this.showBusy(false); - } - } - }); - return Status.CANCEL_STATUS; - } - } - - }; - - submitJob.addJobChangeListener(listener); - submitJob.schedule(); - - } - @Override protected void validateInput() { } - private void attachContext() { - String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId()); - final AbstractRepositoryTask modifiedTask = (AbstractRepositoryTask) TasksUiPlugin.getTaskListManager() - .getTaskList().getTask(handle); - - IProgressService ps = PlatformUI.getWorkbench().getProgressService(); - try { - ps.busyCursorWhile(new IRunnableWithProgress() { - public void run(IProgressMonitor pm) { - try { - connector.attachContext(repository, modifiedTask, ""); - } catch (Exception e) { - MylarStatusHandler.fail(e, "Failed to attach task context.\n\n" + e.getMessage(), true); - } - } - }); - } catch (InvocationTargetException e) { - MylarStatusHandler.fail(e.getCause(), "Failed to attach task context.\n\n" + e.getMessage(), true); - } catch (InterruptedException ignore) { - } - } - } |