|
@@ -32,14 +32,15 @@ import java.util.function.Consumer;
|
32
|
32
|
import java.util.stream.Collectors;
|
33
|
33
|
|
34
|
34
|
/**
|
|
35
|
+ *
|
35
|
36
|
* Created by robin on 11/14/16.
|
36
|
37
|
*/
|
37
|
38
|
public class GenerateDialog extends DialogWrapper {
|
38
|
39
|
|
39
|
40
|
private JPanel _panel;
|
40
|
|
- private JBList _listDatasources;
|
41
|
|
- private JBList _listTables;
|
42
|
|
- private JBList _listColumns;
|
|
41
|
+ private JBList<String> _listDatasources;
|
|
42
|
+ private JBList<String> _listTables;
|
|
43
|
+ private JBList<String> _listColumns;
|
43
|
44
|
private TextFieldWithBrowseButton _textModels;
|
44
|
45
|
private TextFieldWithBrowseButton _textDataSource;
|
45
|
46
|
private TextFieldWithBrowseButton _textDataSourceTemplate;
|
|
@@ -52,7 +53,7 @@ public class GenerateDialog extends DialogWrapper {
|
52
|
53
|
private JLabel _lblModelsTemplatePath;
|
53
|
54
|
private TextFieldWithBrowseButton _textCastFile;
|
54
|
55
|
private JLabel _lblCastFile;
|
55
|
|
- private JBList _listStoredProcedure;
|
|
56
|
+ private JBList<String> _listStoredProcedure;
|
56
|
57
|
|
57
|
58
|
private GenerateOptions _options;
|
58
|
59
|
|
|
@@ -61,7 +62,7 @@ public class GenerateDialog extends DialogWrapper {
|
61
|
62
|
public GenerateDialog(Project project) {
|
62
|
63
|
super(project);
|
63
|
64
|
_project = project;
|
64
|
|
- setTitle("Code FROM data source");
|
|
65
|
+ setTitle("Code FROM Data Source");
|
65
|
66
|
setOptions(null);
|
66
|
67
|
init();
|
67
|
68
|
}
|
|
@@ -97,20 +98,20 @@ public class GenerateDialog extends DialogWrapper {
|
97
|
98
|
@Nullable
|
98
|
99
|
@Override
|
99
|
100
|
protected ValidationInfo doValidate() {
|
100
|
|
- ValidationInfo info = null;
|
101
|
|
- File modelDir = _options == null ? null : new File(Helper.getAbsolutePath(_project, _options.getModelsRelativePath()));
|
102
|
|
- File dataSourcePath = _options == null ? null : new File(Helper.getAbsolutePath(_project, _options.getDataSourceRelativePath()));
|
103
|
|
- File dataSourceDir = _options == null ? null : new File(dataSourcePath.getParent());
|
104
|
|
- File dataSourceTemplatePath = _options == null ? null : new File(Helper.getAbsolutePath(_project, _options.getDataSourceTemplateRelativePath()));
|
105
|
|
- File modelsTemplatePath = _options == null ? null : new File(Helper.getAbsolutePath(_project, _options.getModelsTemplateRelativePath()));
|
106
|
|
- File configPath = _options == null ? null : new File(_options.getConfigAbsolutePath());
|
107
|
|
- File configDir = _options == null ? null : new File(configPath.getParent());
|
108
|
|
- String extension = _options == null ? null : _options.getFilesExtension();
|
109
|
|
- File castFilePath = _options == null ? null : new File(Helper.getAbsolutePath(_project, _options.getCastFileRelativePath()));
|
110
|
101
|
if (_options == null) {
|
111
|
|
- info = new ValidationInfo("No Data Source Selected", _listDatasources);
|
|
102
|
+ return new ValidationInfo("No Data Source Selected", _listDatasources);
|
112
|
103
|
}
|
113
|
|
- else if (!modelDir.exists() || !modelDir.isDirectory()) {
|
|
104
|
+ ValidationInfo info = null;
|
|
105
|
+ File modelDir = new File(Helper.getAbsolutePath(_project, _options.getModelsRelativePath()));
|
|
106
|
+ File dataSourcePath = new File(Helper.getAbsolutePath(_project, _options.getDataSourceRelativePath()));
|
|
107
|
+ File dataSourceDir = new File(dataSourcePath.getParent());
|
|
108
|
+ File dataSourceTemplatePath = new File(Helper.getAbsolutePath(_project, _options.getDataSourceTemplateRelativePath()));
|
|
109
|
+ File modelsTemplatePath = new File(Helper.getAbsolutePath(_project, _options.getModelsTemplateRelativePath()));
|
|
110
|
+ File configPath = new File(_options.getConfigAbsolutePath());
|
|
111
|
+ File configDir = new File(configPath.getParent());
|
|
112
|
+ String extension = _options.getFilesExtension();
|
|
113
|
+ File castFilePath = new File(Helper.getAbsolutePath(_project, _options.getCastFileRelativePath()));
|
|
114
|
+ if (!modelDir.exists() || !modelDir.isDirectory()) {
|
114
|
115
|
info = new ValidationInfo("Models folder does not exists", _textModels.getTextField());
|
115
|
116
|
}
|
116
|
117
|
else if (!dataSourceDir.exists() || !dataSourceDir.isDirectory()) {
|
|
@@ -169,12 +170,12 @@ public class GenerateDialog extends DialogWrapper {
|
169
|
170
|
}
|
170
|
171
|
});
|
171
|
172
|
|
172
|
|
- setupTextField(_textModels, null, true, "Models");
|
173
|
|
- setupTextField(_textDataSource, null, false, "Data Source");
|
174
|
|
- setupTextField(_textDataSourceTemplate, null, false, "Data Source Template");
|
175
|
|
- setupTextField(_textModelsTemplate, null, false, "Models Template");
|
176
|
|
- setupTextField(_textConfigPath, null, false, "Configuration");
|
177
|
|
- setupTextField(_textCastFile, null, false, "Types Cast");
|
|
173
|
+ setupTextField(_textModels, true, "Models");
|
|
174
|
+ setupTextField(_textDataSource, false, "Data Source");
|
|
175
|
+ setupTextField(_textDataSourceTemplate, false, "Data Source Template");
|
|
176
|
+ setupTextField(_textModelsTemplate, false, "Models Template");
|
|
177
|
+ setupTextField(_textConfigPath, false, "Configuration");
|
|
178
|
+ setupTextField(_textCastFile, false, "Types Cast");
|
178
|
179
|
|
179
|
180
|
setupTextFieldListener(_textModels.getTextField(), s -> {
|
180
|
181
|
_options.setModelsRelativePath(Helper.getRelativePath(_project, s));
|
|
@@ -200,9 +201,9 @@ public class GenerateDialog extends DialogWrapper {
|
200
|
201
|
_lblCastFile.setText("$ProjectRoot/" + _options.getCastFileRelativePath());
|
201
|
202
|
});
|
202
|
203
|
|
203
|
|
- _listTables.setCellRenderer(new ColoredListCellRenderer() {
|
|
204
|
+ _listTables.setCellRenderer(new ColoredListCellRenderer<String>() {
|
204
|
205
|
@Override
|
205
|
|
- protected void customizeCellRenderer(@NotNull JList jList, Object o, int i, boolean b, boolean b1) {
|
|
206
|
+ protected void customizeCellRenderer(@NotNull JList jList, String o, int i, boolean b, boolean b1) {
|
206
|
207
|
TableDataSourceDbo tableSelection = _options.getDataSource().getTables().get(i);
|
207
|
208
|
if (tableSelection.hasAll()) {
|
208
|
209
|
setBackground(JBColor.GREEN);
|
|
@@ -256,19 +257,19 @@ public class GenerateDialog extends DialogWrapper {
|
256
|
257
|
changed();
|
257
|
258
|
}
|
258
|
259
|
|
259
|
|
- public void changed() {
|
|
260
|
+ void changed() {
|
260
|
261
|
consumer.accept(field.getText());
|
261
|
262
|
}
|
262
|
263
|
});
|
263
|
264
|
}
|
264
|
265
|
|
265
|
|
- private void setupTextField(TextFieldWithBrowseButton field, Project project, boolean dirsOnly, String title)
|
|
266
|
+ private void setupTextField(TextFieldWithBrowseButton field, boolean dirsOnly, String title)
|
266
|
267
|
{
|
267
|
268
|
for (ActionListener l : field.getButton().getActionListeners()) {
|
268
|
269
|
field.getButton().removeActionListener(l);
|
269
|
270
|
}
|
270
|
271
|
field.addBrowseFolderListener("Choose " + title + " " + (dirsOnly ? "Folder" : "File"),
|
271
|
|
- "Choose " + (dirsOnly ? "Folder" : "File"), project,
|
|
272
|
+ "Choose " + (dirsOnly ? "Folder" : "File"), null,
|
272
|
273
|
dirsOnly ? FileChooserDescriptorFactory.createSingleFolderDescriptor() : FileChooserDescriptorFactory.createSingleFileDescriptor());
|
273
|
274
|
}
|
274
|
275
|
|
|
@@ -279,7 +280,7 @@ public class GenerateDialog extends DialogWrapper {
|
279
|
280
|
}
|
280
|
281
|
if (source != null) {
|
281
|
282
|
|
282
|
|
- List<String> tables = source.getTables().stream().map(t -> t.getName()).collect(Collectors.toList());
|
|
283
|
+ List<String> tables = source.getTables().stream().map(TableDataSourceDbo::getName).collect(Collectors.toList());
|
283
|
284
|
_listTables.setListData(tables.toArray(new String[tables.size()]));
|
284
|
285
|
if (tables.size() > 0) {
|
285
|
286
|
showTable(source.getTables().get(0));
|
|
@@ -287,7 +288,7 @@ public class GenerateDialog extends DialogWrapper {
|
287
|
288
|
else {
|
288
|
289
|
showTable(null);
|
289
|
290
|
}
|
290
|
|
- List<String> sps = source.getStoredProcedures().stream().map(t -> t.getFullName()).collect(Collectors.toList());
|
|
291
|
+ List<String> sps = source.getStoredProcedures().stream().map(StoredProcedureDbo::getFullName).collect(Collectors.toList());
|
291
|
292
|
_listStoredProcedure.setListData(sps.toArray(new String[sps.size()]));
|
292
|
293
|
int[] indices = getSpSelectedIndices(source);
|
293
|
294
|
_listStoredProcedure.setSelectedIndices(indices);
|
|
@@ -352,7 +353,7 @@ public class GenerateDialog extends DialogWrapper {
|
352
|
353
|
_listColumns.removeListSelectionListener(e);
|
353
|
354
|
}
|
354
|
355
|
if (table != null) {
|
355
|
|
- _listColumns.setListData(table.getColumns().stream().map(c -> c.getName()).toArray(String[]::new));
|
|
356
|
+ _listColumns.setListData(table.getColumns().stream().map(ColumnDataSourceDbo::getName).toArray(String[]::new));
|
356
|
357
|
int[] indices = getColumnsSelectedIndices(table);
|
357
|
358
|
_listColumns.setSelectedIndices(indices);
|
358
|
359
|
_listColumns.addListSelectionListener(e -> {
|