1 package com.proalpha.pds.gitutils.cherrypick;
4 import java.text.DateFormat;
5 import java.util.Collections;
8 import org.eclipse.core.runtime.FileLocator;
9 import org.eclipse.core.runtime.Path;
10 import org.eclipse.core.runtime.Platform;
11 import org.eclipse.jface.resource.ImageDescriptor;
12 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider;
13 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
14 import org.eclipse.jface.viewers.ITreeContentProvider;
15 import org.eclipse.jface.viewers.LabelProvider;
16 import org.eclipse.jface.viewers.StyledString;
17 import org.eclipse.jface.viewers.TreeViewer;
18 import org.eclipse.jface.viewers.TreeViewerColumn;
19 import org.eclipse.jface.viewers.Viewer;
20 import org.eclipse.jface.wizard.WizardPage;
21 import org.eclipse.jgit.revwalk.RevCommit;
22 import org.eclipse.swt.SWT;
23 import org.eclipse.swt.widgets.Composite;
24 import org.eclipse.swt.widgets.Tree;
25 import org.eclipse.swt.widgets.TreeColumn;
27 import com.proalpha.pds.gitutils.Activator;
31 List<RevCommit> commitsfound;
32 TreeViewer treeViewer;
39 setTitle(
"proALPHA CherryPick");
40 setMessage(
"The following commits get picked into your Repository", INFORMATION);
41 URL url = FileLocator.find(Platform.getBundle(
Activator.PLUGIN_ID),
new Path(
"icons/pA-logox72.png"),
42 Collections.emptyMap());
44 setImageDescriptor(ImageDescriptor.createFromURL(url));
45 setDescription(
"Wizard Page description");
49 public void setCommitsfound(List<RevCommit> commitsfound) {
50 this.commitsfound = commitsfound;
51 treeViewer.setInput(commitsfound);
61 Composite container =
new Composite(parent, SWT.NONE);
63 setControl(container);
65 treeViewer =
new TreeViewer(container, SWT.BORDER);
66 Tree tree = treeViewer.getTree();
67 tree.setBounds(0, 0, 574, 334);
68 tree.setHeaderVisible(
true);
70 TreeViewerColumn treeViewerColumn_2 =
new TreeViewerColumn(treeViewer, SWT.NONE);
71 TreeColumn trclmnNewColumn_2 = treeViewerColumn_2.getColumn();
72 trclmnNewColumn_2.setWidth(80);
73 trclmnNewColumn_2.setText(
"CommitID");
74 trclmnNewColumn_2.setAlignment(SWT.LEFT);
75 treeViewerColumn_2.setLabelProvider(
new DelegatingStyledCellLabelProvider(
new NameLabelProvider()));
77 TreeViewerColumn treeViewerColumn_1 =
new TreeViewerColumn(treeViewer, SWT.NONE);
78 TreeColumn trclmnNewColumn_1 = treeViewerColumn_1.getColumn();
79 trclmnNewColumn_1.setWidth(300);
80 trclmnNewColumn_1.setText(
"Message");
81 trclmnNewColumn_1.setAlignment(SWT.LEFT);
82 treeViewerColumn_1.setLabelProvider(
new DelegatingStyledCellLabelProvider(
new MessageLabelProvider()));
84 TreeViewerColumn treeViewerColumn =
new TreeViewerColumn(treeViewer, SWT.NONE);
85 TreeColumn trclmnNewColumn = treeViewerColumn.getColumn();
86 trclmnNewColumn.setWidth(100);
87 trclmnNewColumn.setText(
"Author");
88 trclmnNewColumn.setAlignment(SWT.LEFT);
89 treeViewerColumn.setLabelProvider(
new DelegatingStyledCellLabelProvider(
new AuthorLabelProvider()));
91 TreeViewerColumn dateColumn =
new TreeViewerColumn(treeViewer, SWT.NONE);
92 TreeColumn trclmnDateColumn = dateColumn.getColumn();
93 trclmnDateColumn.setWidth(70);
94 trclmnDateColumn.setText(
"Date");
95 trclmnDateColumn.setAlignment(SWT.LEFT);
96 dateColumn.setLabelProvider(
new DelegatingStyledCellLabelProvider(
new DateLabelProvider()));
99 treeViewer.setInput(commitsfound);
101 treeViewer.getTree().setHeaderVisible(
true);
102 treeViewer.getTree().setLinesVisible(
true);
103 setPageComplete(
true);
108 public void inputChanged(Viewer v, Object oldInput, Object newInput) {
112 public void dispose() {
116 public Object[] getElements(Object inputElement) {
117 if (inputElement instanceof List) {
118 return ((List<?>) inputElement).toArray();
120 return new Object[0];
124 public Object[] getChildren(Object parentElement) {
129 public Object getParent(Object element) {
134 public boolean hasChildren(Object element) {
140 class NameLabelProvider
extends LabelProvider implements IStyledLabelProvider {
143 public StyledString getStyledText(Object element) {
144 if (element instanceof RevCommit) {
145 RevCommit commit = (RevCommit) element;
146 return new StyledString(commit.getName().substring(0, 8));
153 class MessageLabelProvider
extends LabelProvider implements IStyledLabelProvider {
156 public StyledString getStyledText(Object element) {
157 if (element instanceof RevCommit) {
158 RevCommit commit = (RevCommit) element;
159 return new StyledString(commit.getFullMessage().replace(
"\n",
" "));
166 class AuthorLabelProvider
extends LabelProvider implements IStyledLabelProvider {
169 public StyledString getStyledText(Object element) {
170 if (element instanceof RevCommit) {
171 RevCommit commit = (RevCommit) element;
172 return new StyledString(commit.getAuthorIdent().getName());
179 class DateLabelProvider
extends LabelProvider implements IStyledLabelProvider {
181 private DateFormat dateLabelFormat;
183 public DateLabelProvider() {
184 dateLabelFormat = DateFormat.getDateInstance();
188 public StyledString getStyledText(Object element) {
189 if (element instanceof RevCommit) {
190 RevCommit commit = (RevCommit) element;
191 return new StyledString(dateLabelFormat.format(commit.getCommitterIdent().getWhen()));
void createControl(Composite parent)