Eclipseplugins
All Classes Functions Variables Pages
FileToMergeSelectDialog.java
1 package com.proalpha.pds.gitutils.common;
2 
3 import java.io.File;
4 import java.util.ArrayList;
5 import java.util.List;
6 
7 import org.eclipse.jface.viewers.ArrayContentProvider;
8 import org.eclipse.jface.viewers.CheckboxTableViewer;
9 import org.eclipse.swt.SWT;
10 import org.eclipse.swt.custom.ScrolledComposite;
11 import org.eclipse.swt.events.SelectionEvent;
12 import org.eclipse.swt.events.SelectionListener;
13 import org.eclipse.swt.layout.GridData;
14 import org.eclipse.swt.layout.GridLayout;
15 import org.eclipse.swt.widgets.Button;
16 import org.eclipse.swt.widgets.Composite;
17 import org.eclipse.swt.widgets.Dialog;
18 import org.eclipse.swt.widgets.Display;
19 import org.eclipse.swt.widgets.Label;
20 import org.eclipse.swt.widgets.Shell;
21 import org.eclipse.swt.widgets.Table;
22 import org.eclipse.swt.widgets.TableItem;
23 
24 public class FileToMergeSelectDialog extends Dialog {
25 
26  private Object result;
27  private Shell shlSelectconflictedfilestomerge;
28  private java.util.List<String> fileList;
29  private Table table;
30  private File repositoryPath;
31 
38  public FileToMergeSelectDialog(Shell parent, int style, File repositoryPath, java.util.List<String> fileList) {
39  super(parent, style);
40  this.repositoryPath = repositoryPath;
41  this.fileList = fileList;
42  }
43 
49  public Object open() {
50  createContents();
51  shlSelectconflictedfilestomerge.open();
52  shlSelectconflictedfilestomerge.layout();
53  Display display = getParent().getDisplay();
54  while (!shlSelectconflictedfilestomerge.isDisposed()) {
55  if (!display.readAndDispatch()) {
56  display.sleep();
57  }
58  }
59  return result;
60  }
61 
65  private void createContents() {
66  shlSelectconflictedfilestomerge = new Shell(getParent(), getStyle());
67  shlSelectconflictedfilestomerge.setText("Select conflicted files to merge");
68  shlSelectconflictedfilestomerge.setLayout(new GridLayout(2, false));
69 
70  ScrolledComposite scrolledComposite = new ScrolledComposite(shlSelectconflictedfilestomerge,
71  SWT.BORDER);
72  scrolledComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 2, 1));
73  scrolledComposite.setExpandHorizontal(true);
74  scrolledComposite.setExpandVertical(true);
75 
76  CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(scrolledComposite,
77  SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
78  table = checkboxTableViewer.getTable();
79  checkboxTableViewer.setContentProvider(new ArrayContentProvider());
80  java.util.Collections.sort(fileList);
81  checkboxTableViewer.setInput(fileList);
82 
83  scrolledComposite.setContent(table);
84  new Label(shlSelectconflictedfilestomerge, SWT.NONE);
85 
86  Composite composite = new Composite(shlSelectconflictedfilestomerge, SWT.NONE);
87  composite.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, false, 1, 1));
88  composite.setLayout(new GridLayout(2, false));
89 
90  Button btnOk = new Button(composite, SWT.NONE);
91  btnOk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
92  btnOk.setText("Ok");
93  btnOk.addSelectionListener(new SelectionListener() {
94 
95  @Override
96  public void widgetSelected(SelectionEvent event) {
97  List<String> checkedItems = new ArrayList<String>();
98  for (TableItem item : checkboxTableViewer.getTable().getItems()) {
99 
100  if (item.getChecked()) {
101  checkedItems.add(item.getText());
102  }
103  }
104 
105  MergetoolJob job = new MergetoolJob(repositoryPath.getParentFile(), checkedItems);
106  job.schedule();
107  getParent().close();
108  }
109 
110  @Override
111  public void widgetDefaultSelected(SelectionEvent event) {
112  // TODO Auto-generated method stub
113 
114  }
115  });
116 
117  Button btnCancel = new Button(composite, SWT.NONE);
118  btnCancel.setText("Cancel");
119  btnCancel.addSelectionListener(new SelectionListener() {
120 
121  @Override
122  public void widgetSelected(SelectionEvent event) {
123  // TODO Auto-generated method stub
124  getParent().close();
125  }
126 
127  @Override
128  public void widgetDefaultSelected(SelectionEvent event) {
129  // TODO Auto-generated method stub
130 
131  }
132  });
133  }
134 
135 }
FileToMergeSelectDialog(Shell parent, int style, File repositoryPath, java.util.List< String > fileList)