diff options
Diffstat (limited to 'org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewSetContentSection.java')
-rw-r--r-- | org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewSetContentSection.java | 102 |
1 files changed, 28 insertions, 74 deletions
diff --git a/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewSetContentSection.java b/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewSetContentSection.java index e76651409..fd2153755 100644 --- a/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewSetContentSection.java +++ b/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewSetContentSection.java @@ -17,7 +17,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; -import java.util.Map.Entry; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; @@ -31,11 +30,8 @@ import org.eclipse.jface.viewers.OpenEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.window.ToolTip; -import org.eclipse.mylyn.commons.ui.CommonImages; import org.eclipse.mylyn.commons.ui.compatibility.CommonColors; -import org.eclipse.mylyn.commons.workbench.browser.BrowserUtil; import org.eclipse.mylyn.commons.workbench.forms.ScalingHyperlink; -import org.eclipse.mylyn.internal.reviews.ui.ReviewsImages; import org.eclipse.mylyn.internal.reviews.ui.providers.ReviewsLabelProvider; import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil; import org.eclipse.mylyn.reviews.core.model.ICommit; @@ -45,12 +41,12 @@ import org.eclipse.mylyn.reviews.core.model.IReview; import org.eclipse.mylyn.reviews.core.model.IReviewItemSet; import org.eclipse.mylyn.reviews.core.spi.remote.emf.RemoteEmfConsumer; import org.eclipse.mylyn.reviews.core.spi.remote.emf.RemoteEmfObserver; -import org.eclipse.mylyn.reviews.internal.core.BuildResult.BuildStatus; +import org.eclipse.mylyn.reviews.internal.core.TaskBuildStatusMapper; import org.eclipse.mylyn.tasks.core.data.TaskAttribute; +import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor; +import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; @@ -106,9 +102,12 @@ public class ReviewSetContentSection { private final RemoteEmfObserver<IRepository, IReview, String, Date> reviewObserver; - public ReviewSetContentSection(ReviewSetSection parentSection, final IReviewItemSet set) { + private final AbstractTaskEditorPage page; + + public ReviewSetContentSection(ReviewSetSection parentSection, final IReviewItemSet set, AbstractTaskEditorPage page) { this.parentSection = parentSection; this.set = set; + this.page = page; int style = ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT | ExpandableComposite.LEFT_TEXT_CLIENT_ALIGNMENT; section = parentSection.getToolkit().createSection(parentSection.getComposite(), style); @@ -117,15 +116,15 @@ public class ReviewSetContentSection { section.setTitleBarForeground(parentSection.getToolkit().getColors().getColor(IFormColors.TITLE)); parentSection.addTextClient(parentSection.getToolkit(), section, "", false); //$NON-NLS-1$ - final RemoteEmfConsumer<IReviewItemSet, List<IFileItem>, String, ?, ?, Long> itemSetConsumer = getParentSection() - .getReviewEditorPage() + final RemoteEmfConsumer<IReviewItemSet, List<IFileItem>, String, ?, ?, Long> itemSetConsumer = getParentSection().getReviewEditorPage() .getFactoryProvider() .getReviewItemSetContentFactory() .getConsumerForLocalKey(set, set.getId()); itemListObserver.setConsumer(itemSetConsumer); - final RemoteEmfConsumer<IRepository, IReview, String, ?, ?, Date> reviewConsumer = getParentSection() - .getReviewEditorPage().getFactoryProvider().getReviewFactory().getConsumerForModel( - set.getReview().getRepository(), set.getReview()); + final RemoteEmfConsumer<IRepository, IReview, String, ?, ?, Date> reviewConsumer = getParentSection().getReviewEditorPage() + .getFactoryProvider() + .getReviewFactory() + .getConsumerForModel(set.getReview().getRepository(), set.getReview()); reviewObserver = new RemoteEmfObserver<IRepository, IReview, String, Date>() { @Override public void updated(boolean modified) { @@ -173,8 +172,9 @@ public class ReviewSetContentSection { message += " " + Messages.Reviews_RetrievingContents; //$NON-NLS-1$ } } else { - message = NLS.bind(Messages.Reviews_UpdateFailure_X, - itemListObserver.getConsumer().getStatus().getMessage()); + message = NLS.bind(Messages.Reviews_UpdateFailure_X, itemListObserver.getConsumer() + .getStatus() + .getMessage()); } AbstractReviewSection.appendMessage(getSection(), message); @@ -200,10 +200,17 @@ public class ReviewSetContentSection { GridDataFactory.fillDefaults().span(4, 1).grab(true, true).applyTo(fullWidth); GridLayoutFactory.fillDefaults().numColumns(2).applyTo(fullWidth); - // We should only show the build labels in the case where there are any for this patch set - if (getPatchSetBuildAttribute() != null) { - createTitleLabel(fullWidth, colors, Messages.ReviewSet_BuildHeader, SWT.NONE); - createBuildLabels(composite, colors); + TaskAttribute buildAttribute = parentSection.getTaskData().getRoot().getAttribute("PATCH_SET-" + set.getId()); //$NON-NLS-1$ + if (buildAttribute != null) { + Composite buildComposite = parentSection.getToolkit().createComposite(composite); + GridLayoutFactory.fillDefaults().numColumns(2).applyTo(buildComposite); + GridDataFactory.fillDefaults().span(2, 1).applyTo(buildComposite); + AbstractAttributeEditor editor = parentSection.getTaskEditorPage() + .getAttributeEditorFactory() + .createEditor(TaskBuildStatusMapper.BUILD_RESULT_TYPE, buildAttribute); + editor.createLabelControl(buildComposite, parentSection.getToolkit()); + editor.createControl(buildComposite, parentSection.getToolkit()); + getTaskEditorPage().getAttributeEditorToolkit().adapt(editor); } tableContainer = new Composite(composite, SWT.NONE); @@ -219,51 +226,8 @@ public class ReviewSetContentSection { parentSection.getTaskEditorPage().reflow(); } - private void createBuildLabels(Composite composite, FormColors colors) { - TaskAttribute buildAttribute = getPatchSetBuildAttribute(); - if (buildAttribute == null) { - return; - } - - int numberOfBuilds = buildAttribute.getAttributes().size(); - - for (Entry<String, TaskAttribute> buildEntry : buildAttribute.getAttributes().entrySet()) { - - TaskAttribute currentBuildAttribute = buildEntry.getValue(); - - String statusValue = currentBuildAttribute.getAttribute("STATUS").getValue(); //$NON-NLS-1$ - final String urlValue = currentBuildAttribute.getAttribute("URL").getValue(); //$NON-NLS-1$ - - if (statusValue == null | urlValue == null) { - continue; - } - - ScalingHyperlink buildLink = new ScalingHyperlink(composite, SWT.READ_ONLY); - buildLink.setText(urlValue); - buildLink.setForeground(CommonColors.HYPERLINK_WIDGET); - - buildLink.registerMouseTrackListener(); - buildLink.addHyperlinkListener(new HyperlinkAdapter() { - @Override - public void linkActivated(HyperlinkEvent event) { - BrowserUtil.openUrl(urlValue); - } - }); - - CLabel buildText = new CLabel(composite, SWT.RIGHT_TO_LEFT); - buildText.setText(statusValue); - buildText.setImage(this.getImageForBuildStatus(statusValue)); - - } - - } - - private TaskAttribute getPatchSetBuildAttribute() { - String patchSetId = this.set.getId(); - TaskAttribute buildAttribute = this.parentSection.getTaskData() - .getRoot() - .getAttribute("PATCH_SET-" + patchSetId); //$NON-NLS-1$ - return buildAttribute; + private AbstractTaskEditorPage getTaskEditorPage() { + return page; } private void createAuthorLabel(Composite composite, FormColors colors) { @@ -437,16 +401,6 @@ public class ReviewSetContentSection { } } - private Image getImageForBuildStatus(String status) { - if (status.equals(BuildStatus.SUCCESS.toString())) { - return CommonImages.getImage(ReviewsImages.APPROVED); - } else if (status.equals(BuildStatus.STARTED.toString())) { - return CommonImages.getImage(ReviewsImages.UNKNOWN); - } - - return CommonImages.getImage(ReviewsImages.REJECTED); - } - public void createButtons() { if (!actionContainer.isDisposed()) { for (Control oldActionControl : actionContainer.getChildren()) { |