1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package pl.edu.agh.cast.importer.wizard.page;
19
20 import org.eclipse.jface.viewers.TableViewer;
21 import org.eclipse.jface.viewers.TableViewerColumn;
22 import org.eclipse.swt.SWT;
23 import org.eclipse.swt.layout.GridData;
24 import org.eclipse.swt.layout.GridLayout;
25 import org.eclipse.swt.widgets.Composite;
26 import org.eclipse.swt.widgets.TableColumn;
27
28 import pl.edu.agh.cast.importer.base.data.DataRow;
29 import pl.edu.agh.cast.importer.base.data.ITabularData;
30 import pl.edu.agh.cast.importer.base.data.TabularData;
31 import pl.edu.agh.cast.importer.wizard.provider.ListColumnLabelProvider;
32 import pl.edu.agh.cast.importer.wizard.util.Messages;
33 import pl.edu.agh.cast.importer.wizard.utils.TableViewerHelper;
34
35
36
37
38
39
40 public class ConversionPreviewComposite extends Composite {
41 private TableViewer conversionPreviewViewer;
42
43
44
45
46
47
48
49
50
51 public ConversionPreviewComposite(Composite parent, int style) {
52 super(parent, style);
53 initGUI();
54 }
55
56 private void initGUI() {
57 GridLayout thisLayout = new GridLayout();
58 thisLayout.makeColumnsEqualWidth = true;
59 this.setLayout(thisLayout);
60
61 conversionPreviewViewer = new TableViewer(this, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
62 conversionPreviewViewer.getTable().setBounds(22, 37, 60, 30);
63 conversionPreviewViewer.getTable().setHeaderVisible(true);
64 GridData conversionPreviewViewerLData = new GridData();
65 conversionPreviewViewerLData.grabExcessHorizontalSpace = true;
66 conversionPreviewViewerLData.horizontalAlignment = GridData.FILL;
67 conversionPreviewViewerLData.verticalAlignment = GridData.FILL;
68 conversionPreviewViewerLData.grabExcessVerticalSpace = true;
69 conversionPreviewViewer.getControl().setLayoutData(conversionPreviewViewerLData);
70 conversionPreviewViewer.getTable().setLinesVisible(true);
71 }
72
73
74
75
76
77
78
79 public void refreshConversionPreview(ITabularData<DataRow> data) {
80 conversionPreviewViewer.getTable().setEnabled(true);
81 TableViewerHelper.initTable(conversionPreviewViewer, data);
82 conversionPreviewViewer.getTable().setLinesVisible(true);
83 conversionPreviewViewer.getTable().setHeaderVisible(true);
84 TableViewerHelper.adjustColumnWidth(conversionPreviewViewer);
85 conversionPreviewViewer.refresh();
86 }
87
88
89
90
91 public void showLoadingPreviewInfo() {
92 removeDataAndSetText(Messages.ConversionPreviewComposite_LoadingPreview);
93
94 }
95
96
97
98
99 public void showPreviewNotAvailable() {
100 removeDataAndSetText(Messages.ConversionPreviewComposite_PreviewNotAvailable);
101 }
102
103
104
105
106 public void clearPreview() {
107 removeDataAndSetText("");
108 }
109
110 private void removeDataAndSetText(String text) {
111 if (conversionPreviewViewer.getTable().getColumnCount() == 1
112 && conversionPreviewViewer.getTable().getItemCount() == 0) {
113 conversionPreviewViewer.getTable().getColumn(0).setText(text);
114 conversionPreviewViewer.getTable().getColumn(0).pack();
115 return;
116 }
117
118 for (TableColumn column : conversionPreviewViewer.getTable().getColumns()) {
119 column.dispose();
120 }
121
122 final TableViewerColumn viewerColumn = new TableViewerColumn(conversionPreviewViewer, SWT.NONE);
123 final TableColumn column = viewerColumn.getColumn();
124 column.setText(text);
125 column.pack();
126 viewerColumn.setLabelProvider(new ListColumnLabelProvider(0));
127 if (conversionPreviewViewer.getContentProvider() != null) {
128 conversionPreviewViewer.setInput(new TabularData());
129 }
130
131 conversionPreviewViewer.getTable().setEnabled(false);
132
133 }
134
135 }