1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
package com.ibm.ServerWizard2.view;
import java.util.Vector;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
public class ArrayEditorDialog extends Dialog {
private Table table;
int numColumns=0;
private String rawData="";
private TableViewer viewer;
private Vector<Vector<String>> data;
/**
* Create the dialog.
* @param parent
* @param style
*/
public ArrayEditorDialog(Shell parent, int style) {
super(parent);
this.setShellStyle(SWT.APPLICATION_MODAL);
}
/**
* Create contents of the dialog.
*/
public String getData() {
rawData="";
for (Vector<String> v : data) {
for (int i=1;i<v.size();i++) {
rawData=rawData+v.get(i)+",";
}
}
rawData=rawData.substring(0, rawData.length()-1);
return rawData;
}
public void setData(String rawData,String array,String type) {
String d[] = array.split(",");
if (d.length==1) {
numColumns=1;
} else {
numColumns=Integer.parseInt(d[1]);
}
this.rawData = rawData;
String a[] = rawData.split(",");
data = new Vector<Vector<String>>();
for(int row=0;row < a.length/numColumns;row++) {
Vector<String> v_col = new Vector<String>();
data.add(v_col);
v_col.add(String.valueOf(row));
for (int col=0;col<numColumns;col++) {
v_col.add(a[col+row*numColumns]);
}
}
}
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
viewer = new TableViewer(container, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
final TableViewerColumn columnRow = new TableViewerColumn(viewer, SWT.NONE);
columnRow.getColumn().setWidth(40);
columnRow.setLabelProvider(new ArrayLabelProvider(0));
for (int i=1;i<numColumns+1;i++) {
final TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
column.getColumn().setWidth(100);
column.getColumn().setText(String.valueOf(i-1));
column.setLabelProvider(new ArrayLabelProvider(i));
column.setEditingSupport(new ArrayEditingSupport(viewer,i));
}
// make lines and header visible
table = viewer.getTable();
table.setLinesVisible(true);
table.setHeaderVisible(true);
viewer.setContentProvider(ArrayContentProvider.getInstance());
viewer.setInput(data);
GridData gd_table = new GridData(SWT.CENTER, SWT.TOP, false, true, 1, 1);
gd_table.heightHint = 254;
gd_table.widthHint = 260;
table.setLayoutData(gd_table);
return container;
}
}
|