/******************************************************************************
* Copyright (c) 2011 GitHub Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Kevin Sawicki (GitHub Inc.) - initial API and implementation
*****************************************************************************/
package org.eclipse.mylyn.internal.github.ui.pr;
import java.util.Iterator;
import java.util.Set;
import org.eclipse.mylyn.internal.github.core.pr.PullRequestAttribute;
import org.eclipse.mylyn.internal.github.core.pr.PullRequestComposite;
import org.eclipse.mylyn.internal.github.core.pr.PullRequestConnector;
import org.eclipse.mylyn.internal.github.ui.issue.IssueSummaryPart;
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
import org.eclipse.mylyn.tasks.ui.editors.TaskEditor;
import org.eclipse.mylyn.tasks.ui.editors.TaskEditorPartDescriptor;
/**
* Editor page for GitHub pull requests.
*/
public class PullRequestTaskEditorPage extends AbstractTaskEditorPage {
private PullRequestComposite prComp;
/**
* Constructor for the GitHubTaskEditorPage
*
* @param editor
* The task editor to create for GitHub
*/
public PullRequestTaskEditorPage(final TaskEditor editor) {
super(editor, PullRequestConnector.KIND);
setNeedsPrivateSection(true);
setNeedsSubmitButton(true);
}
@Override
protected Set<TaskEditorPartDescriptor> createPartDescriptors() {
prComp = PullRequestConnector.getPullRequest(getModel().getTaskData());
Set<TaskEditorPartDescriptor> partDescriptors = super
.createPartDescriptors();
Iterator<TaskEditorPartDescriptor> descriptorIt = partDescriptors
.iterator();
while (descriptorIt.hasNext()) {
TaskEditorPartDescriptor partDescriptor = descriptorIt.next();
String id = partDescriptor.getId();
if (id.equals(ID_PART_ATTRIBUTES) || id.equals(ID_PART_SUMMARY))
descriptorIt.remove();
}
partDescriptors.add(new TaskEditorPartDescriptor(ID_PART_SUMMARY) {
public AbstractTaskEditorPart createPart() {
return new IssueSummaryPart(
PullRequestAttribute.REPORTER_GRAVATAR.getMetadata()
.getId(), null);
}
}.setPath(PATH_HEADER));
partDescriptors.add(new TaskEditorPartDescriptor(ID_PART_ATTRIBUTES) {
public AbstractTaskEditorPart createPart() {
return new CommitAttributePart(prComp);
}
}.setPath(PATH_ATTACHMENTS));
return partDescriptors;
}
}