Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2007-01-15 08:43:12 +0000
committerspingel2007-01-15 08:43:12 +0000
commite461ca34681bcd897ea64a479cb602f4a536471a (patch)
treedefb78318d032d1db53c37de0043603c98fbce34 /org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor
parent00a5f3ce047fec6105ee518021374ffdb46d466e (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/NewTracTaskEditor.java82
-rw-r--r--org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditor.java138
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) {
- }
- }
-
}

Back to the top