Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 88136 Details for
Bug 210686
rich task editor should have handle to drag that task into a category in the task list
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
new patch resolving problem with localtasks
clipboard.txt (text/plain), 7.58 KB, created by
maarten meijer
on 2008-01-29 10:06:11 EST
(
hide
)
Description:
new patch resolving problem with localtasks
Filename:
MIME Type:
Creator:
maarten meijer
Created:
2008-01-29 10:06:11 EST
Size:
7.58 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java,v >retrieving revision 1.67 >diff -u -r1.67 TaskEditor.java >--- src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java 24 Jan 2008 04:11:11 -0000 1.67 >+++ src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java 29 Jan 2008 15:04:38 -0000 >@@ -8,6 +8,10 @@ > > package org.eclipse.mylyn.tasks.ui.editors; > >+import java.io.File; >+import java.io.IOException; >+import java.io.UnsupportedEncodingException; >+import java.net.URLEncoder; > import java.util.ArrayList; > import java.util.Collections; > import java.util.Comparator; >@@ -21,7 +25,9 @@ > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jface.viewers.StructuredSelection; > import org.eclipse.mylyn.internal.tasks.core.LocalTask; >+import org.eclipse.mylyn.internal.tasks.ui.ITasksUiConstants; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; >+import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction; > import org.eclipse.mylyn.internal.tasks.ui.editors.EditorBusyIndicator; > import org.eclipse.mylyn.internal.tasks.ui.editors.IBusyEditor; > import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorActionContributor; >@@ -31,7 +37,12 @@ > import org.eclipse.mylyn.tasks.core.RepositoryTaskData; > import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; > import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; >-import org.eclipse.mylyn.tasks.ui.TasksUiUtil; >+import org.eclipse.swt.dnd.DND; >+import org.eclipse.swt.dnd.DragSourceAdapter; >+import org.eclipse.swt.dnd.DragSourceEvent; >+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.ui.IEditorInput; > import org.eclipse.ui.IEditorPart; >@@ -65,7 +76,7 @@ > private IEditorPart contentOutlineProvider = null; > > public final Object FAMILY_SUBMIT = new Object(); >- >+ > private MenuManager menuManager = new MenuManager(); > > private EditorBusyIndicator editorBusyIndicator; >@@ -88,9 +99,10 @@ > public TaskEditorActionContributor getContributor() { > return (TaskEditorActionContributor) getEditorSite().getActionBarContributor(); > } >- >+ > /** >- * @param Configurs standard task editor context menu >+ * @param Configurs >+ * standard task editor context menu > * @Since 2.3 > */ > protected void configureContextMenuManager(MenuManager manager) { >@@ -227,7 +239,7 @@ > > @Override > public void dispose() { >- >+ > if (editorBusyIndicator != null) { > editorBusyIndicator.stop(); > } >@@ -333,7 +345,7 @@ > } > } else if (getEditorInput() instanceof AbstractRepositoryTaskEditorInput) { > this.setTitleImage(TasksUiImages.getImage(TasksUiImages.TASK_REMOTE)); >- } else { >+ } else { > setTitleImage(TasksUiImages.getImage(TasksUiImages.TASK)); > } > >@@ -368,9 +380,7 @@ > // } > > if (busy) { >- if (TasksUiUtil.isAnimationsEnabled()) { >- editorBusyIndicator.start(); >- } >+ editorBusyIndicator.start(); > } else { > editorBusyIndicator.stop(); > } >@@ -393,29 +403,84 @@ > > @Override > protected void createHeaderContents(IManagedForm headerForm) { >- getToolkit().decorateFormHeading(headerForm.getForm().getForm()); >+ Form form = headerForm.getForm().getForm(); >+ getToolkit().decorateFormHeading(form); > headerForm.getForm().setImage(TasksUiImages.getImage(TasksUiImages.TASK)); > updateFormTitle(); >+ >+ } >+ >+ private void installTitleDrag(Form form) { >+ Transfer[] transferTypes; >+ if (null == task) { >+ transferTypes = new Transfer[] { TextTransfer.getInstance() }; >+ } else { >+ transferTypes = new Transfer[] { TextTransfer.getInstance(), FileTransfer.getInstance() }; >+ } >+ form.addTitleDragSupport(DND.DROP_MOVE | DND.DROP_LINK, transferTypes, new DragSourceAdapter() { >+ >+ @Override >+ public void dragSetData(DragSourceEvent event) { >+ if (FileTransfer.getInstance().isSupportedType(event.dataType)) { >+ // similar code is in TaskListDragSourceListener, maybe move to an utility class >+ if (task != null) { >+ String encodedName = "task-" + task.getTaskKey(); >+ try { >+ encodedName = URLEncoder.encode(task.getHandleIdentifier(), >+ ITasksUiConstants.FILENAME_ENCODING); >+ } catch (UnsupportedEncodingException e) { >+ StatusHandler.fail(e, "Could not determine path for context", false); >+ } >+ >+ File tempDir = new File(TasksUiPlugin.getDefault().getDataDirectory() + File.separator + "temp"); >+ if (!tempDir.exists()) { >+ tempDir.mkdir(); >+ } >+ >+ File taskTempFile; >+ try { >+ taskTempFile = File.createTempFile(encodedName, ITasksUiConstants.FILE_EXTENSION, tempDir); >+ taskTempFile.deleteOnExit(); >+ TasksUiPlugin.getTaskListManager().getTaskListWriter().writeTask(task, taskTempFile); >+ event.data = new String[] { taskTempFile.getAbsolutePath() }; >+ } catch (IOException e) { >+ StatusHandler.fail(e, "Cannot create a temp query file for Drag&Drop", true); >+ } >+ } >+ } >+ if (TextTransfer.getInstance().isSupportedType(event.dataType)) { >+ if (task != null) { >+// event.data = task.getUrl(); // goes wrong with LocalTask >+ event.data = CopyTaskDetailsAction.getTextForTask(task); >+ return; >+ } else if (getEditorInput() instanceof RepositoryTaskEditorInput >+ && ((RepositoryTaskEditorInput) getEditorInput()).getUrl() != null) { >+ event.data = ((RepositoryTaskEditorInput) getEditorInput()).getUrl(); >+ return; >+ } >+ } >+ } >+ }); > } > > protected void updateFormTitle() { > IEditorInput input = getEditorInput(); > if (input instanceof TaskEditorInput) { >- AbstractTask task = ((TaskEditorInput) input).getTask(); >+ /* AbstractTask */task = ((TaskEditorInput) input).getTask(); > if (task instanceof LocalTask) { > getHeaderForm().getForm().setText("Task: " + task.getSummary()); > } else { > setFormHeaderImage(task.getConnectorKind()); > setFormHeaderLabel(task); >- return; >+// return; > } > } else if (input instanceof RepositoryTaskEditorInput) { >- AbstractTask task = ((RepositoryTaskEditorInput) input).getRepositoryTask(); >+ /* AbstractTask */task = ((RepositoryTaskEditorInput) input).getRepositoryTask(); > RepositoryTaskData data = ((RepositoryTaskEditorInput) input).getTaskData(); > if (task != null && data != null && !data.isNew()) { > setFormHeaderImage(task.getConnectorKind()); > setFormHeaderLabel(task); >- return; >+// return; > } else { > if (data != null) { > setFormHeaderImage(data.getRepositoryKind()); >@@ -423,6 +488,7 @@ > } > } > } >+ installTitleDrag(getHeaderForm().getForm().getForm()); > } > > private void setFormHeaderImage(String repositoryKind) { >@@ -438,13 +504,13 @@ > } > > /** >- * @since 2.3 >+ * @since 2.3 > */ > public void setMessage(String message, int type, IHyperlinkListener listener) { > if (this.getHeaderForm() != null && this.getHeaderForm().getForm() != null) { > if (!this.getHeaderForm().getForm().isDisposed()) { > getTopForm().setMessage(message, type); >- >+ > if (messageHyperLinkListener != null) { > getTopForm().removeMessageHyperlinkListener(messageHyperLinkListener); > } >@@ -459,7 +525,7 @@ > public void setMessage(String message, int type) { > setMessage(message, type, null); > } >- >+ > protected IWorkbenchSiteProgressService getProgressService() { > Object siteService = getEditorSite().getAdapter(IWorkbenchSiteProgressService.class); > if (siteService != null)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 210686
:
83911
|
83912
|
83913
|
84047
|
84048
|
84201
|
84309
|
84310
|
84939
|
88136
|
88394
|
88395
|
88426
|
88962
|
88963