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 java.util.List;
21
22 import org.apache.log4j.Logger;
23 import org.eclipse.core.runtime.CoreException;
24 import org.eclipse.swt.SWT;
25 import org.eclipse.swt.widgets.Composite;
26
27 import pl.edu.agh.cast.importer.base.data.RawTabularData;
28 import pl.edu.agh.cast.importer.base.parser.ImportParser;
29 import pl.edu.agh.cast.importer.base.util.DataTypeInfo;
30 import pl.edu.agh.cast.importer.wizard.Activator;
31 import pl.edu.agh.cast.importer.wizard.dialog.analyzer.AbstractDataTypeConfigDialog;
32 import pl.edu.agh.cast.importer.wizard.util.Messages;
33
34
35
36
37
38
39 public class AnalyzersSelectionPage extends AbstractImportWizardPage {
40
41 private final Logger log = Activator.getLogger();
42
43 private AnalyzersSelectionPageComposite composite;
44
45 private RawTabularData previewDataCache;
46
47
48
49
50 public AnalyzersSelectionPage() {
51 super(Messages.ImporterWizard_AnalyzersSelectionPageTitle,
52 Messages.ImporterWizard_AnalyzersSelectionPageDescription);
53 }
54
55
56
57
58
59
60 public void createControl(Composite parent) {
61 composite = new AnalyzersSelectionPageComposite(parent, SWT.NULL, this);
62 setControl(composite);
63
64 refreshSelectedData();
65 }
66
67
68
69
70
71
72
73
74
75
76
77
78 @Override
79 public void initPage() {
80 refreshSelectedData();
81 }
82
83
84
85
86
87
88 @Override
89 public void refreshImportData() {
90 getImportProcess().setParser(new ImportParser(composite.getSelectedAnalyzers()));
91 }
92
93
94
95
96
97
98
99
100
101
102
103
104
105 public void widgetModified() {
106 getImportProcess().setParser(new ImportParser(composite.getSelectedAnalyzers()));
107 super.widgetModified();
108 }
109
110 protected boolean isComplete() {
111 return getImportProcess().isParserConfigured();
112 }
113
114 private void refreshSelectedData() {
115 if (composite != null && previewDataCache != getImportProcess().getTokenizePreview()) {
116 previewDataCache = getImportProcess().getTokenizePreview();
117 composite.createTable(previewDataCache);
118 }
119 }
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134 public DataTypeInfo[] getDataTypesInfos() {
135 List<DataTypeInfo> dataTypeInfos = null;
136 try {
137 dataTypeInfos = getImportWizard().getImporterUtil().getDataTypeInfos();
138 } catch (CoreException e) {
139 final String errorMsg = "CoreException while retrieving data type information.";
140 log.error(errorMsg, e);
141 throw new RuntimeException(errorMsg, e);
142 }
143
144 if (dataTypeInfos == null) {
145 return null;
146 }
147
148 return dataTypeInfos.toArray(new DataTypeInfo[0]);
149 }
150
151
152
153
154
155
156
157
158 public AbstractDataTypeConfigDialog getDataTypeConfigDialogInstance(String dataTypeId) {
159 try {
160 return getImportWizard().getWizardUtil().getDataTypeConfigDialogInstance(dataTypeId);
161 } catch (CoreException e) {
162 final String errorMsg = "CoreException while retrieving instance of data type "
163 + "configuration dialog with id: " + dataTypeId;
164 log.error(errorMsg, e);
165 throw new RuntimeException(errorMsg, e);
166 }
167 }
168
169
170 }