|
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 119-124
Link Here
|
| 119 |
import org.eclipse.swt.custom.StackLayout; |
122 |
import org.eclipse.swt.custom.StackLayout; |
| 120 |
import org.eclipse.swt.custom.StyledText; |
123 |
import org.eclipse.swt.custom.StyledText; |
| 121 |
import org.eclipse.swt.custom.VerifyKeyListener; |
124 |
import org.eclipse.swt.custom.VerifyKeyListener; |
|
|
125 |
import org.eclipse.swt.dnd.Clipboard; |
| 122 |
import org.eclipse.swt.dnd.DND; |
126 |
import org.eclipse.swt.dnd.DND; |
| 123 |
import org.eclipse.swt.dnd.DropTarget; |
127 |
import org.eclipse.swt.dnd.DropTarget; |
| 124 |
import org.eclipse.swt.dnd.FileTransfer; |
128 |
import org.eclipse.swt.dnd.FileTransfer; |
|
Lines 145-150
Link Here
|
| 145 |
import org.eclipse.swt.widgets.Label; |
149 |
import org.eclipse.swt.widgets.Label; |
| 146 |
import org.eclipse.swt.widgets.Listener; |
150 |
import org.eclipse.swt.widgets.Listener; |
| 147 |
import org.eclipse.swt.widgets.Menu; |
151 |
import org.eclipse.swt.widgets.Menu; |
|
|
152 |
import org.eclipse.swt.widgets.Shell; |
| 148 |
import org.eclipse.swt.widgets.Table; |
153 |
import org.eclipse.swt.widgets.Table; |
| 149 |
import org.eclipse.swt.widgets.TableColumn; |
154 |
import org.eclipse.swt.widgets.TableColumn; |
| 150 |
import org.eclipse.swt.widgets.Text; |
155 |
import org.eclipse.swt.widgets.Text; |
|
Lines 296-301
Link Here
|
| 296 |
|
301 |
|
| 297 |
private boolean ignoreLocationEvents = false; |
302 |
private boolean ignoreLocationEvents = false; |
| 298 |
|
303 |
|
|
|
304 |
private static final String LABEL_NEW_BUG = "Create New Bug"; |
| 305 |
|
| 306 |
|
| 299 |
/** |
307 |
/** |
| 300 |
* @author Raphael Ackermann (bug 195514) |
308 |
* @author Raphael Ackermann (bug 195514) |
| 301 |
*/ |
309 |
*/ |
|
Lines 1686-1691
Link Here
|
| 1686 |
return replyLink; |
1694 |
return replyLink; |
| 1687 |
} |
1695 |
} |
| 1688 |
|
1696 |
|
|
|
1697 |
protected ImageHyperlink createNewBugHyperlink(final int commentNum, final String repositoryKind, |
| 1698 |
final String bugURL, final String bugID, Composite composite, final String commentBody) { |
| 1699 |
final ImageHyperlink newLink = new ImageHyperlink(composite, SWT.NULL); |
| 1700 |
toolkit.adapt(newLink, true, true); |
| 1701 |
newLink.setImage(TasksUiImages.getImage(TasksUiImages.TASK_NEW )); |
| 1702 |
newLink.setToolTipText(LABEL_NEW_BUG); |
| 1703 |
// no need for the background - transparency will take care of it |
| 1704 |
newLink.setBackground(null); |
| 1705 |
// replyLink.setBackground(section.getTitleBarGradientBackground()); |
| 1706 |
newLink.addHyperlinkListener(new HyperlinkAdapter() { |
| 1707 |
public void linkActivated(HyperlinkEvent e) { |
| 1708 |
|
| 1709 |
NewTaskWizard wizard = new NewTaskWizard(); |
| 1710 |
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); |
| 1711 |
if (shell != null && !shell.isDisposed()) { |
| 1712 |
WizardDialog dialog = new WizardDialog(shell, wizard); |
| 1713 |
dialog.setBlockOnOpen(true); |
| 1714 |
if (dialog.open() == WizardDialog.CANCEL) { |
| 1715 |
return; |
| 1716 |
} |
| 1717 |
|
| 1718 |
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); |
| 1719 |
AbstractRepositoryTaskEditor editor = null; |
| 1720 |
|
| 1721 |
String summary = ""; |
| 1722 |
String description = ""; |
| 1723 |
if (repositoryKind.compareTo("bugzilla") == 0) { |
| 1724 |
description = "created from " + bugURL + "/show_bug.cgi?id=" + bugID + "#c" + commentNum |
| 1725 |
+ "\n original-comment:\n" + commentBody; |
| 1726 |
} |
| 1727 |
try { |
| 1728 |
TaskEditor taskEditor = (TaskEditor) page.getActiveEditor(); |
| 1729 |
editor = (AbstractRepositoryTaskEditor) taskEditor.getActivePageInstance(); |
| 1730 |
} catch (ClassCastException err) { |
| 1731 |
Clipboard clipboard = new Clipboard(page.getWorkbenchWindow().getShell().getDisplay()); |
| 1732 |
clipboard.setContents(new Object[] { summary + "\n" + description }, |
| 1733 |
new Transfer[] { TextTransfer.getInstance() }); |
| 1734 |
|
| 1735 |
MessageDialog.openInformation( |
| 1736 |
page.getWorkbenchWindow().getShell(), |
| 1737 |
ITasksUiConstants.TITLE_DIALOG, |
| 1738 |
"This connector does not provide a rich task editor for creating tasks.\n\n" |
| 1739 |
+ "The error contents have been placed in the clipboard so that you can paste them into the entry form."); |
| 1740 |
return; |
| 1741 |
} |
| 1742 |
|
| 1743 |
editor.setSummaryText(summary); |
| 1744 |
editor.setDescriptionText(description); |
| 1745 |
|
| 1746 |
} |
| 1747 |
} |
| 1748 |
}); |
| 1749 |
|
| 1750 |
return newLink; |
| 1751 |
} |
| 1752 |
|
| 1753 |
|
| 1754 |
|
| 1689 |
protected void addDuplicateDetection(Composite composite) { |
1755 |
protected void addDuplicateDetection(Composite composite) { |
| 1690 |
List<AbstractDuplicateDetector> allCollectors = new ArrayList<AbstractDuplicateDetector>(); |
1756 |
List<AbstractDuplicateDetector> allCollectors = new ArrayList<AbstractDuplicateDetector>(); |
| 1691 |
if (getDuplicateSearchCollectorsList() != null) { |
1757 |
if (getDuplicateSearchCollectorsList() != null) { |
|
Lines 2014-2019
Link Here
|
| 2014 |
final ImageHyperlink replyLink = createReplyHyperlink(taskComment.getNumber(), toolbarButtonComp, |
2080 |
final ImageHyperlink replyLink = createReplyHyperlink(taskComment.getNumber(), toolbarButtonComp, |
| 2015 |
taskComment.getText()); |
2081 |
taskComment.getText()); |
| 2016 |
|
2082 |
|
|
|
2083 |
final ImageHyperlink newLink = createNewBugHyperlink(taskComment.getNumber(), taskData.getRepositoryKind(), |
| 2084 |
taskData.getRepositoryUrl(), taskData.getId(), toolbarButtonComp, taskComment.getText()); |
| 2085 |
|
| 2086 |
|
| 2017 |
expandableComposite.addExpansionListener(new ExpansionAdapter() { |
2087 |
expandableComposite.addExpansionListener(new ExpansionAdapter() { |
| 2018 |
|
2088 |
|
| 2019 |
@Override |
2089 |
@Override |
|
Lines 2036-2047
Link Here
|
| 2036 |
@Override |
2106 |
@Override |
| 2037 |
public void linkEntered(HyperlinkEvent e) { |
2107 |
public void linkEntered(HyperlinkEvent e) { |
| 2038 |
replyLink.setUnderlined(true); |
2108 |
replyLink.setUnderlined(true); |
|
|
2109 |
newLink.setUnderlined(true); |
| 2039 |
super.linkEntered(e); |
2110 |
super.linkEntered(e); |
| 2040 |
} |
2111 |
} |
| 2041 |
|
2112 |
|
| 2042 |
@Override |
2113 |
@Override |
| 2043 |
public void linkExited(HyperlinkEvent e) { |
2114 |
public void linkExited(HyperlinkEvent e) { |
| 2044 |
replyLink.setUnderlined(false); |
2115 |
replyLink.setUnderlined(false); |
|
|
2116 |
newLink.setUnderlined(false); |
| 2045 |
super.linkExited(e); |
2117 |
super.linkExited(e); |
| 2046 |
} |
2118 |
} |
| 2047 |
}); |
2119 |
}); |