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)