Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 169426 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/tasks/ui/editors/TaskFormPage.java (+15 lines)
Lines 664-668 Link Here
664
			return new DefaultInformationControl(shell);
664
			return new DefaultInformationControl(shell);
665
		}
665
		}
666
	}
666
	}
667
	
668
	public String getSeletedTextFromActualEdit() {
669
		Control focusControl = getFocusControl();
670
		if (focusControl == null)
671
			return null;
672
		if (focusControl instanceof StyledText) {
673
			StyledText text = (StyledText) focusControl;
674
			for (TextViewer viewer : textViewers) {
675
				if (viewer.getTextWidget() == text) {
676
					return text.getSelectionText();
677
				}
678
			}
679
		}
680
		return null;
681
	}
667
682
668
}
683
}
(-)src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java (-1 / +17 lines)
Lines 127-132 Link Here
127
import org.eclipse.swt.dnd.FileTransfer;
127
import org.eclipse.swt.dnd.FileTransfer;
128
import org.eclipse.swt.dnd.TextTransfer;
128
import org.eclipse.swt.dnd.TextTransfer;
129
import org.eclipse.swt.dnd.Transfer;
129
import org.eclipse.swt.dnd.Transfer;
130
import org.eclipse.swt.events.FocusEvent;
131
import org.eclipse.swt.events.FocusListener;
130
import org.eclipse.swt.events.ModifyEvent;
132
import org.eclipse.swt.events.ModifyEvent;
131
import org.eclipse.swt.events.ModifyListener;
133
import org.eclipse.swt.events.ModifyListener;
132
import org.eclipse.swt.events.SelectionAdapter;
134
import org.eclipse.swt.events.SelectionAdapter;
Lines 302-307 Link Here
302
	protected Label duplicateDetectorLabel;
304
	protected Label duplicateDetectorLabel;
303
305
304
	private boolean ignoreLocationEvents = false;
306
	private boolean ignoreLocationEvents = false;
307
	
308
	private TaskComment selectedComment = null;
305
309
306
	/**
310
	/**
307
	 * @author Raphael Ackermann (bug 195514)
311
	 * @author Raphael Ackermann (bug 195514)
Lines 348-354 Link Here
348
352
349
		public ISelection getSelection() {
353
		public ISelection getSelection() {
350
			return new RepositoryTaskSelection(taskData.getId(), taskData.getRepositoryUrl(),
354
			return new RepositoryTaskSelection(taskData.getId(), taskData.getRepositoryUrl(),
351
					taskData.getRepositoryKind(), "", true, taskData.getSummary());
355
					taskData.getRepositoryKind(), "", selectedComment, taskData.getSummary());
352
		}
356
		}
353
357
354
		public void removeSelectionChangedListener(ISelectionChangedListener listener) {
358
		public void removeSelectionChangedListener(ISelectionChangedListener listener) {
Lines 2127-2132 Link Here
2127
2131
2128
			TextViewer viewer = addTextViewer(repository, ecComposite, taskComment.getText().trim(), SWT.MULTI
2132
			TextViewer viewer = addTextViewer(repository, ecComposite, taskComment.getText().trim(), SWT.MULTI
2129
					| SWT.WRAP);
2133
					| SWT.WRAP);
2134
			viewer.getTextWidget().addFocusListener(new FocusListener() {
2135
2136
				public void focusGained(FocusEvent e) {
2137
					selectedComment = taskComment;
2138
2139
				}
2140
2141
				public void focusLost(FocusEvent e) {
2142
					selectedComment = null;
2143
				}
2144
			});
2145
			
2130
			// viewer.getControl().setBackground(new
2146
			// viewer.getControl().setBackground(new
2131
			// Color(expandableComposite.getDisplay(), 123, 34, 155));
2147
			// Color(expandableComposite.getDisplay(), 123, 34, 155));
2132
			StyledText styledText = viewer.getTextWidget();
2148
			StyledText styledText = viewer.getTextWidget();
(-)src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java (+28 lines)
Lines 33-38 Link Here
33
import org.eclipse.mylyn.internal.tasks.ui.actions.AttachAction;
33
import org.eclipse.mylyn.internal.tasks.ui.actions.AttachAction;
34
import org.eclipse.mylyn.internal.tasks.ui.actions.AttachScreenshotAction;
34
import org.eclipse.mylyn.internal.tasks.ui.actions.AttachScreenshotAction;
35
import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
35
import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
36
import org.eclipse.mylyn.internal.tasks.ui.actions.NewBugFromCommentAction;
36
import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
37
import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
37
import org.eclipse.mylyn.internal.tasks.ui.actions.ShowInTaskListAction;
38
import org.eclipse.mylyn.internal.tasks.ui.actions.ShowInTaskListAction;
38
import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeEditorAction;
39
import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeEditorAction;
Lines 42-47 Link Here
42
import org.eclipse.mylyn.tasks.core.AbstractTask;
43
import org.eclipse.mylyn.tasks.core.AbstractTask;
43
import org.eclipse.mylyn.tasks.core.AbstractTaskCategory;
44
import org.eclipse.mylyn.tasks.core.AbstractTaskCategory;
44
import org.eclipse.mylyn.tasks.core.AbstractTaskContainer;
45
import org.eclipse.mylyn.tasks.core.AbstractTaskContainer;
46
import org.eclipse.mylyn.tasks.core.TaskComment;
45
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
47
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
46
import org.eclipse.mylyn.tasks.ui.editors.AbstractRepositoryTaskEditor;
48
import org.eclipse.mylyn.tasks.ui.editors.AbstractRepositoryTaskEditor;
47
import org.eclipse.mylyn.tasks.ui.editors.NewTaskEditorInput;
49
import org.eclipse.mylyn.tasks.ui.editors.NewTaskEditorInput;
Lines 86-91 Link Here
86
	private SynchronizeEditorAction synchronizeEditorAction = new SynchronizeEditorAction();
88
	private SynchronizeEditorAction synchronizeEditorAction = new SynchronizeEditorAction();
87
89
88
	private ShowInTaskListAction showInTaskListAction = new ShowInTaskListAction();
90
	private ShowInTaskListAction showInTaskListAction = new ShowInTaskListAction();
91
	
92
	private NewBugFromCommentAction newBugFromCommentAction = new NewBugFromCommentAction();
89
93
90
	private GlobalAction cutAction;
94
	private GlobalAction cutAction;
91
95
Lines 220-225 Link Here
220
			manager.add(synchronizeEditorAction);
224
			manager.add(synchronizeEditorAction);
221
			manager.add(openWithBrowserAction);
225
			manager.add(openWithBrowserAction);
222
			
226
			
227
			if (this.getEditor().getActivePageInstance() instanceof AbstractRepositoryTaskEditor) {
228
				if (this.getEditor().getSelection() instanceof RepositoryTaskSelection) {
229
					RepositoryTaskSelection repositoryTaskSelection = (RepositoryTaskSelection) this.getEditor()
230
							.getSelection();
231
					TaskComment comment = repositoryTaskSelection.getComment();
232
					
233
					if (comment != null) {
234
						newBugFromCommentAction.setTaskComment(comment);
235
						AbstractRepositoryTaskEditor editor = (AbstractRepositoryTaskEditor) this.getEditor()
236
								.getActivePageInstance();
237
						if (getEditor().getActivePageInstance() instanceof TaskFormPage) {
238
							TaskFormPage editor1 = (TaskFormPage) getEditor().getActivePageInstance();
239
							String selText = editor1.getSeletedTextFromActualEdit();
240
							newBugFromCommentAction.setSelectedCommentText(selText);
241
						}
242
						IEditorInput input = editor.getEditorInput();
243
						if (input instanceof RepositoryTaskEditorInput) {
244
							RepositoryTaskEditorInput repositoryInput = (RepositoryTaskEditorInput) input;
245
							newBugFromCommentAction.setTaskData(repositoryInput.getTaskData());
246
						}
247
						manager.add(newBugFromCommentAction);
248
					}
249
				}
250
			}
223
			
251
			
224
			if (task.isActive()) {
252
			if (task.isActive()) {
225
				manager.add(new TaskDeactivateAction() {
253
				manager.add(new TaskDeactivateAction() {
(-)src/org/eclipse/mylyn/internal/tasks/ui/actions/NewBugFromCommentAction.java (+87 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Mylyn project committers and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/
8
9
package org.eclipse.mylyn.internal.tasks.ui.actions;
10
11
import org.eclipse.jface.action.Action;
12
import org.eclipse.jface.action.IAction;
13
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
14
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
15
import org.eclipse.mylyn.tasks.core.RepositoryTaskData;
16
import org.eclipse.mylyn.tasks.core.TaskComment;
17
import org.eclipse.mylyn.tasks.core.TaskRepositoryManager;
18
import org.eclipse.mylyn.tasks.core.TaskSelection;
19
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
20
import org.eclipse.swt.SWT;
21
22
/**
23
 * @author Frank Becker
24
 */
25
public class NewBugFromCommentAction extends Action {
26
27
	private static final String LABEL = "New Task from Comment";
28
29
	public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.CreateNewFromComment";
30
31
	private TaskComment taskComment;
32
33
	protected RepositoryTaskData taskData;
34
	
35
	protected String selectedCommentText;
36
37
	public NewBugFromCommentAction() {
38
		super(LABEL);
39
		setId(ID);
40
		setImageDescriptor(TasksUiImages.TASK_NEW);
41
42
		setAccelerator(SWT.MOD1 + SWT.MOD2 + 'n');
43
	}
44
45
	public void run(IAction action) {
46
		run();
47
	}
48
49
	@Override
50
	public void run() {
51
52
		AbstractRepositoryConnector connector = null;
53
		TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
54
		connector = repositoryManager.getRepositoryConnector(taskData.getRepositoryKind());
55
		String textToInsert ;
56
		if (selectedCommentText != null && !selectedCommentText.equals("")) {
57
			textToInsert = selectedCommentText;
58
		} else {
59
			textToInsert = taskComment.getText();
60
		}
61
62
		StringBuilder sb = new StringBuilder();
63
		sb.append("\n-- Created from Comment --\nURL: ");
64
		sb.append(connector.getTaskUrl(taskData.getRepositoryUrl(), taskData.getId()));
65
		sb.append("\nComment: ");
66
		sb.append(taskComment.getNumber());
67
		sb.append("\nOriginal Comment\n");
68
		sb.append(textToInsert);
69
70
		TaskSelection taskSelection = new TaskSelection("", sb.toString());
71
		NewTaskAction action = new NewTaskAction();
72
		action.showWizard(taskSelection);
73
	}
74
75
	public void setTaskComment(TaskComment taskComment) {
76
		this.taskComment = taskComment;
77
	}
78
79
	public void setTaskData(RepositoryTaskData taskData) {
80
		this.taskData = taskData;
81
	}
82
83
	public void setSelectedCommentText(String selectedCommentText) {
84
		this.selectedCommentText = selectedCommentText;
85
	}
86
87
}

Return to bug 169426