1 package com.proalpha.pds.gitutils.common;
4 import java.util.ArrayList;
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;
26 private Object result;
27 private Shell shlSelectconflictedfilestomerge;
28 private java.util.List<String> fileList;
30 private File repositoryPath;
40 this.repositoryPath = repositoryPath;
41 this.fileList = fileList;
51 shlSelectconflictedfilestomerge.open();
52 shlSelectconflictedfilestomerge.layout();
53 Display display = getParent().getDisplay();
54 while (!shlSelectconflictedfilestomerge.isDisposed()) {
55 if (!display.readAndDispatch()) {
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));
70 ScrolledComposite scrolledComposite =
new ScrolledComposite(shlSelectconflictedfilestomerge,
72 scrolledComposite.setLayoutData(
new GridData(SWT.FILL, SWT.FILL,
false,
true, 2, 1));
73 scrolledComposite.setExpandHorizontal(
true);
74 scrolledComposite.setExpandVertical(
true);
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);
83 scrolledComposite.setContent(table);
84 new Label(shlSelectconflictedfilestomerge, SWT.NONE);
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));
90 Button btnOk =
new Button(composite, SWT.NONE);
91 btnOk.setLayoutData(
new GridData(SWT.RIGHT, SWT.CENTER,
false,
false, 1, 1));
93 btnOk.addSelectionListener(
new SelectionListener() {
96 public void widgetSelected(SelectionEvent event) {
97 List<String> checkedItems =
new ArrayList<String>();
98 for (TableItem item : checkboxTableViewer.getTable().getItems()) {
100 if (item.getChecked()) {
101 checkedItems.add(item.getText());
105 MergetoolJob job =
new MergetoolJob(repositoryPath.getParentFile(), checkedItems);
111 public void widgetDefaultSelected(SelectionEvent event) {
117 Button btnCancel =
new Button(composite, SWT.NONE);
118 btnCancel.setText(
"Cancel");
119 btnCancel.addSelectionListener(
new SelectionListener() {
122 public void widgetSelected(SelectionEvent event) {
128 public void widgetDefaultSelected(SelectionEvent event) {
FileToMergeSelectDialog(Shell parent, int style, File repositoryPath, java.util.List< String > fileList)