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/AbstractRepositoryTaskEditor.java (+75 lines)
Lines 68-74 Link Here
68
import org.eclipse.jface.viewers.Viewer;
68
import org.eclipse.jface.viewers.Viewer;
69
import org.eclipse.jface.viewers.ViewerSorter;
69
import org.eclipse.jface.viewers.ViewerSorter;
70
import org.eclipse.jface.window.ToolTip;
70
import org.eclipse.jface.window.ToolTip;
71
import org.eclipse.jface.wizard.WizardDialog;
71
import org.eclipse.mylyn.internal.tasks.core.CommentQuoter;
72
import org.eclipse.mylyn.internal.tasks.core.CommentQuoter;
73
import org.eclipse.mylyn.internal.tasks.ui.ITasksUiConstants;
72
import org.eclipse.mylyn.internal.tasks.ui.PersonProposalLabelProvider;
74
import org.eclipse.mylyn.internal.tasks.ui.PersonProposalLabelProvider;
73
import org.eclipse.mylyn.internal.tasks.ui.PersonProposalProvider;
75
import org.eclipse.mylyn.internal.tasks.ui.PersonProposalProvider;
74
import org.eclipse.mylyn.internal.tasks.ui.TaskListColorsAndFonts;
76
import org.eclipse.mylyn.internal.tasks.ui.TaskListColorsAndFonts;
Lines 89-94 Link Here
89
import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryTaskSelection;
91
import org.eclipse.mylyn.internal.tasks.ui.editors.RepositoryTaskSelection;
90
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlink;
92
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlink;
91
import org.eclipse.mylyn.internal.tasks.ui.views.ResetRepositoryConfigurationAction;
93
import org.eclipse.mylyn.internal.tasks.ui.views.ResetRepositoryConfigurationAction;
94
import org.eclipse.mylyn.internal.tasks.ui.wizards.NewTaskWizard;
92
import org.eclipse.mylyn.monitor.core.DateUtil;
95
import org.eclipse.mylyn.monitor.core.DateUtil;
93
import org.eclipse.mylyn.monitor.core.StatusHandler;
96
import org.eclipse.mylyn.monitor.core.StatusHandler;
94
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
97
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
Lines 104-109 Link Here
104
import org.eclipse.mylyn.tasks.core.TaskComment;
107
import org.eclipse.mylyn.tasks.core.TaskComment;
105
import org.eclipse.mylyn.tasks.core.TaskContainerDelta;
108
import org.eclipse.mylyn.tasks.core.TaskContainerDelta;
106
import org.eclipse.mylyn.tasks.core.TaskRepository;
109
import org.eclipse.mylyn.tasks.core.TaskRepository;
110
import org.eclipse.mylyn.tasks.core.TaskRepositoryManager;
107
import org.eclipse.mylyn.tasks.core.AbstractTask.RepositoryTaskSyncState;
111
import org.eclipse.mylyn.tasks.core.AbstractTask.RepositoryTaskSyncState;
108
import org.eclipse.mylyn.tasks.ui.AbstractDuplicateDetector;
112
import org.eclipse.mylyn.tasks.ui.AbstractDuplicateDetector;
109
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
113
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
Lines 119-124 Link Here
119
import org.eclipse.swt.custom.StackLayout;
123
import org.eclipse.swt.custom.StackLayout;
120
import org.eclipse.swt.custom.StyledText;
124
import org.eclipse.swt.custom.StyledText;
121
import org.eclipse.swt.custom.VerifyKeyListener;
125
import org.eclipse.swt.custom.VerifyKeyListener;
126
import org.eclipse.swt.dnd.Clipboard;
122
import org.eclipse.swt.dnd.DND;
127
import org.eclipse.swt.dnd.DND;
123
import org.eclipse.swt.dnd.DropTarget;
128
import org.eclipse.swt.dnd.DropTarget;
124
import org.eclipse.swt.dnd.FileTransfer;
129
import org.eclipse.swt.dnd.FileTransfer;
Lines 145-150 Link Here
145
import org.eclipse.swt.widgets.Label;
150
import org.eclipse.swt.widgets.Label;
146
import org.eclipse.swt.widgets.Listener;
151
import org.eclipse.swt.widgets.Listener;
147
import org.eclipse.swt.widgets.Menu;
152
import org.eclipse.swt.widgets.Menu;
153
import org.eclipse.swt.widgets.Shell;
148
import org.eclipse.swt.widgets.Table;
154
import org.eclipse.swt.widgets.Table;
149
import org.eclipse.swt.widgets.TableColumn;
155
import org.eclipse.swt.widgets.TableColumn;
150
import org.eclipse.swt.widgets.Text;
156
import org.eclipse.swt.widgets.Text;
Lines 296-301 Link Here
296
302
297
	private boolean ignoreLocationEvents = false;
303
	private boolean ignoreLocationEvents = false;
298
304
305
	private static final String LABEL_NEW_BUG = "Create New Bug";
306
307
299
	/**
308
	/**
300
	 * @author Raphael Ackermann (bug 195514)
309
	 * @author Raphael Ackermann (bug 195514)
301
	 */
310
	 */
Lines 1686-1691 Link Here
1686
		return replyLink;
1695
		return replyLink;
1687
	}
1696
	}
1688
1697
1698
	protected ImageHyperlink createNewBugHyperlink(final int commentNum, final String repositoryKind,
1699
			final String bugURL, final String bugID, Composite composite, final String commentBody) {
1700
		final ImageHyperlink newLink = new ImageHyperlink(composite, SWT.NULL);
1701
		toolkit.adapt(newLink, true, true);
1702
		newLink.setImage(TasksUiImages.getImage(TasksUiImages.TASK_NEW ));
1703
		newLink.setToolTipText(LABEL_NEW_BUG);
1704
		// no need for the background - transparency will take care of it
1705
		newLink.setBackground(null);
1706
		// replyLink.setBackground(section.getTitleBarGradientBackground());
1707
		newLink.addHyperlinkListener(new HyperlinkAdapter() {
1708
			public void linkActivated(HyperlinkEvent e) {
1709
1710
				NewTaskWizard wizard = new NewTaskWizard();
1711
				Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
1712
				if (shell != null && !shell.isDisposed()) {
1713
					WizardDialog dialog = new WizardDialog(shell, wizard);
1714
					dialog.setBlockOnOpen(true);
1715
					if (dialog.open() == WizardDialog.CANCEL) {
1716
						return;
1717
					}
1718
1719
					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
1720
					AbstractRepositoryTaskEditor editor = null;
1721
					String summary = "";
1722
					
1723
					AbstractRepositoryConnector connector = null;
1724
					TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();					
1725
					connector = repositoryManager.getRepositoryConnector(repositoryKind);
1726
1727
					String description = "created from " + connector.getTaskUrl(bugURL, bugID) + " comment#" + commentNum 
1728
					+ "\n\noriginal-comment:\n" + commentBody;
1729
					
1730
					try {
1731
						TaskEditor taskEditor = (TaskEditor) page.getActiveEditor();
1732
						editor = (AbstractRepositoryTaskEditor) taskEditor.getActivePageInstance();
1733
					} catch (ClassCastException err) {
1734
						Clipboard clipboard = new Clipboard(page.getWorkbenchWindow().getShell().getDisplay());
1735
						clipboard.setContents(new Object[] { summary + "\n" + description },
1736
								new Transfer[] { TextTransfer.getInstance() });
1737
1738
						MessageDialog.openInformation(
1739
								page.getWorkbenchWindow().getShell(),
1740
								ITasksUiConstants.TITLE_DIALOG,
1741
								"This connector does not provide a rich task editor for creating tasks.\n\n"
1742
										+ "The error contents have been placed in the clipboard so that you can paste them into the entry form.");
1743
						return;
1744
					}
1745
1746
					editor.setSummaryText(summary);
1747
					editor.setDescriptionText(description);
1748
1749
				}
1750
			}
1751
		});
1752
1753
		return newLink;
1754
	}
1755
	
1756
	
1757
	
1689
	protected void addDuplicateDetection(Composite composite) {
1758
	protected void addDuplicateDetection(Composite composite) {
1690
		List<AbstractDuplicateDetector> allCollectors = new ArrayList<AbstractDuplicateDetector>();
1759
		List<AbstractDuplicateDetector> allCollectors = new ArrayList<AbstractDuplicateDetector>();
1691
		if (getDuplicateSearchCollectorsList() != null) {
1760
		if (getDuplicateSearchCollectorsList() != null) {
Lines 2014-2019 Link Here
2014
			final ImageHyperlink replyLink = createReplyHyperlink(taskComment.getNumber(), toolbarButtonComp,
2083
			final ImageHyperlink replyLink = createReplyHyperlink(taskComment.getNumber(), toolbarButtonComp,
2015
					taskComment.getText());
2084
					taskComment.getText());
2016
2085
2086
			final ImageHyperlink newLink = createNewBugHyperlink(taskComment.getNumber(), taskData.getRepositoryKind(),
2087
					taskData.getRepositoryUrl(), taskData.getId(), toolbarButtonComp, taskComment.getText());
2088
			
2089
			
2017
			expandableComposite.addExpansionListener(new ExpansionAdapter() {
2090
			expandableComposite.addExpansionListener(new ExpansionAdapter() {
2018
2091
2019
				@Override
2092
				@Override
Lines 2036-2047 Link Here
2036
				@Override
2109
				@Override
2037
				public void linkEntered(HyperlinkEvent e) {
2110
				public void linkEntered(HyperlinkEvent e) {
2038
					replyLink.setUnderlined(true);
2111
					replyLink.setUnderlined(true);
2112
					newLink.setUnderlined(true);
2039
					super.linkEntered(e);
2113
					super.linkEntered(e);
2040
				}
2114
				}
2041
2115
2042
				@Override
2116
				@Override
2043
				public void linkExited(HyperlinkEvent e) {
2117
				public void linkExited(HyperlinkEvent e) {
2044
					replyLink.setUnderlined(false);
2118
					replyLink.setUnderlined(false);
2119
					newLink.setUnderlined(false);
2045
					super.linkExited(e);
2120
					super.linkExited(e);
2046
				}
2121
				}
2047
			});
2122
			});
(-).refactorings/2007/10/40/refactorings.history (+3 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<session version="1.0">&#x0A;<refactoring comment="Rename local variable &apos;replyLink&apos; in &apos;org.eclipse.mylyn.tasks.ui.editors.AbstractRepositoryTaskEditor.createNewBugHyperlink(...)&apos; to &apos;newLink&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;&#x0A;- Original element: &apos;org.eclipse.mylyn.tasks.ui.editors.AbstractRepositoryTaskEditor.createNewBugHyperlink(int, Composite, String).replyLink&apos;&#x0A;- Renamed element: &apos;org.eclipse.mylyn.tasks.ui.editors.AbstractRepositoryTaskEditor.createNewBugHyperlink(int, Composite, String).newLink&apos;&#x0A;- Update references to refactored element" description="Rename local variable &apos;replyLink&apos;" id="org.eclipse.jdt.ui.rename.local.variable" input="/src&lt;org.eclipse.mylyn.tasks.ui.editors{AbstractRepositoryTaskEditor.java[AbstractRepositoryTaskEditor~createNewBugHyperlink~I~QComposite;~QString;@replyLink!62991!63063!63012!63020!QImageHyperlink;" name="newLink" references="true" stamp="1191526516746" version="1.0"/>&#x0A;<refactoring comment="Change method &apos;protected ImageHyperlink org.eclipse.mylyn.tasks.ui.editors.AbstractRepositoryTaskEditor.createNewBugHyperlink(int commentNum, String repositoryKind, String bugURL, String bugID, Composite composite, String commentBody)&apos; to &apos;protected ImageHyperlink createNewBugHyperlink(int commentNum, String repositoryKind, String bugURL, String bugID, Composite composite, String commentBody)&apos;&#x0A;- Original project: &apos;org.eclipse.mylyn.tasks.ui&apos;" delegate="false" deprecate="true" description="Change method &apos;createNewBugHyperlink&apos;" flags="589830" id="org.eclipse.jdt.ui.change.method.signature" input="/src&lt;org.eclipse.mylyn.tasks.ui.editors{AbstractRepositoryTaskEditor.java[AbstractRepositoryTaskEditor~createNewBugHyperlink~I~QComposite;~QString;~QString;~QString;~QString;" name="createNewBugHyperlink" parameter1="int commentNum 0 int commentNum false" parameter2="String repositoryKind 5 String repositoryKind false" parameter3="String bugURL 3 String bugURL false" parameter4="String bugID 4 String bugID false" parameter5="Composite composite 1 Composite composite false" parameter6="String commentBody 2 String commentBody false" stamp="1191531527014" version="1.0"/>
3
</session>
(-).refactorings/2007/10/40/refactorings.index (+2 lines)
Added Link Here
1
1191526516746	Rename local variable 'replyLink'
2
1191531527014	Change method 'createNewBugHyperlink'

Return to bug 169426