Skip to content

Commit 08b235f

Browse files
committed
Class rename added
1 parent 8fe8797 commit 08b235f

File tree

8 files changed

+76
-67
lines changed

8 files changed

+76
-67
lines changed

src/com/mighty16/json/generator/SourceFilesGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public String generateFileContentForClass(ClassModel classData) {
5454
builder.append(annotations.getSerializeName(field.jsonName)).append("\n" + gapString);
5555
}
5656

57-
String type = field.type;
57+
String type;
5858
if (!TextUtils.isEmpty(field.defaultValue)) {
5959
type = field.type + " = " + field.defaultValue;
6060
} else {

src/com/mighty16/json/models/FieldModel.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22

33
public class FieldModel {
44

5-
public static final String TYPE_STRING = "String";
6-
public static final String TYPE_DOUBLE = "Double";
7-
public static final String TYPE_LONG = "Long";
8-
public static final String TYPE_INT = "Int";
9-
105
public String jsonName;
116
public String name;
127
public String type;

src/com/mighty16/json/parser/SimpleParser.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.mighty16.json.parser;
22

3-
43
import com.mighty16.json.resolver.LanguageResolver;
54
import com.mighty16.json.models.ClassModel;
65
import com.mighty16.json.models.FieldModel;
@@ -39,7 +38,12 @@ private void findClasses(JSONObject json, String name) {
3938
if (val instanceof JSONObject) {
4039
if (classes.get(key) == null) {
4140
String className = languageResolver.getClassName(key);
42-
classData.addField(new FieldModel(key, languageResolver.getFieldName(key), languageResolver.resolve(className), "Object"));
41+
42+
classData.addField(new FieldModel(key,
43+
languageResolver.getFieldName(key),
44+
languageResolver.resolve(className),
45+
"Object"));
46+
4347
findClasses((JSONObject) val, key);
4448
}
4549
} else if (val instanceof JSONArray) {

src/com/mighty16/json/resolver/KotlinResolver.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public KotlinResolver() {
3737
public String resolve(String javaType) {
3838
String type = types.get(javaType);
3939
if (type == null) {
40-
return StringUtils.capitalize(javaType) + "?";
40+
return StringUtils.capitalize(javaType);// + "?";
4141
}
4242
return type;
4343
}
@@ -50,7 +50,13 @@ public String getClassName(String jsonKey) {
5050

5151
@Override
5252
public String getFieldName(String jsonName) {
53-
return toCamelCase(jsonName);
53+
String name;
54+
if (jsonName.toUpperCase().equals(jsonName)) {
55+
name = jsonName.toLowerCase();
56+
} else {
57+
name = jsonName.substring(0, 1).toLowerCase() + jsonName.substring(1);
58+
}
59+
return toCamelCase(name);
5460
}
5561

5662
@Override
@@ -77,11 +83,6 @@ public boolean isModifierMutable(String modifier) {
7783
return modifier.equals("var");
7884
}
7985

80-
@Override
81-
public boolean canChangeType(String type) {
82-
return !type.endsWith("?");
83-
}
84-
8586
@Override
8687
public String getFileName(String className) {
8788
return className + ".kt";
@@ -103,6 +104,4 @@ private String toCamelCase(String name) {
103104
}
104105
return result;
105106
}
106-
107-
108107
}

src/com/mighty16/json/resolver/LanguageResolver.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ public abstract class LanguageResolver {
2424

2525
public abstract boolean isModifierMutable(String modifier);
2626

27-
public abstract boolean canChangeType(String type);
28-
2927
public abstract String getFileName(String className);
3028

3129
public abstract FileType getFileType();

src/com/mighty16/json/ui/ClassesListDelegate.java

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.mighty16.json.ui;
22

3-
import com.intellij.ui.JBColor;
43
import com.mighty16.json.models.ClassModel;
5-
64
import javax.swing.*;
75
import javax.swing.event.ListSelectionEvent;
86
import javax.swing.event.ListSelectionListener;
@@ -26,38 +24,25 @@ public ClassesListDelegate(JTable list, List<ClassModel> classDataList, HashMap<
2624

2725
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
2826

29-
list.setModel(new ClassesListModel(classDataList,classNames));
27+
list.setModel(new ClassesListModel(classDataList, classNames));
3028

3129
ListSelectionModel selectionModel = list.getSelectionModel();
3230

3331
selectionModel.addListSelectionListener(new ListSelectionListener() {
3432
public void valueChanged(ListSelectionEvent e) {
35-
int selectedIndex = e.getFirstIndex();
36-
33+
int[] selectedRow = list.getSelectedRows();
34+
if (selectedRow == null) return;
35+
if (selectedRow.length == 0) return;
36+
int selectedIndex = selectedRow[0];
3737
if (listener != null) {
38-
listener.onClassSelected(classDataList.get(selectedIndex));
39-
}
40-
38+
listener.onClassSelected(classDataList.get(selectedIndex), selectedIndex);
39+
}
4140
}
4241
});
43-
44-
45-
//list.setBorder(BorderFactory.createLineBorder(JBColor.BLACK, 1));
46-
47-
// list.addListSelectionListener(new ListSelectionListener() {
48-
// @Override
49-
// public void valueChanged(ListSelectionEvent e) {
50-
// if (listener != null) {
51-
// listener.onClassSelected(classData.get(list.getSelectedIndex()));
52-
// }
53-
// }
54-
// });
55-
5642
}
5743

58-
5944
public interface OnClassSelectedListener {
60-
void onClassSelected(ClassModel classData);
45+
void onClassSelected(ClassModel classData, int index);
6146
}
6247

6348
class ClassesListModel extends AbstractTableModel {
@@ -92,7 +77,8 @@ public boolean isCellEditable(int rowIndex, int columnIndex) {
9277

9378
@Override
9479
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
95-
classNames.put(classData.get(rowIndex).name, (String) aValue);
80+
String newValue = (String) aValue;
81+
classNames.put(classData.get(rowIndex).name, newValue);
9682
}
9783

9884
@Override

src/com/mighty16/json/ui/FieldsTableDelegate.java

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.mighty16.json.ui;
22

33
import com.intellij.openapi.ui.ComboBox;
4+
import com.mighty16.json.models.ClassModel;
45
import com.mighty16.json.resolver.LanguageResolver;
56
import com.mighty16.json.models.FieldModel;
67

78
import javax.swing.*;
89
import javax.swing.table.AbstractTableModel;
10+
import javax.swing.table.DefaultTableCellRenderer;
911
import javax.swing.table.TableColumn;
12+
import java.util.HashMap;
1013
import java.util.List;
1114

1215
public class FieldsTableDelegate {
@@ -15,16 +18,18 @@ public class FieldsTableDelegate {
1518
private String columns[];
1619
private List<FieldModel> fieldsData;
1720
private LanguageResolver languageResolver;
21+
private HashMap<String, String> classNames;
1822

1923

20-
public FieldsTableDelegate(JTable fieldsTable, LanguageResolver resolver) {
24+
public FieldsTableDelegate(JTable fieldsTable, HashMap<String, String> classNames, LanguageResolver resolver) {
2125
this.fieldsTable = fieldsTable;
2226
this.languageResolver = resolver;
27+
this.classNames = classNames;
2328
columns = new String[]{"Enabled", "Field name", "var/val", "Type", "Default value", "Original value"};
2429
}
2530

26-
public void setFieldsData(List<FieldModel> fields) {
27-
fieldsData = fields;
31+
public void setClass(ClassModel classModel) {
32+
fieldsData = classModel.fields;
2833
fieldsTable.setModel(new FieldsTableModel(fieldsData));
2934

3035
TableColumn column = fieldsTable.getColumnModel().getColumn(0);
@@ -37,14 +42,11 @@ public void setFieldsData(List<FieldModel> fields) {
3742

3843
modifierColumn.setCellEditor(new DefaultCellEditor(modifierCombobox));
3944

40-
TableColumn typeColumn = fieldsTable.getColumnModel().getColumn(3);
41-
42-
ComboBox<String> comboBox = new ComboBox<>();
43-
comboBox.addItem(FieldModel.TYPE_STRING);
44-
comboBox.addItem(FieldModel.TYPE_DOUBLE);
45-
comboBox.addItem(FieldModel.TYPE_LONG);
46-
comboBox.addItem(FieldModel.TYPE_INT);
47-
typeColumn.setCellEditor(new DefaultCellEditor(comboBox));
45+
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
46+
centerRenderer.setHorizontalAlignment(JLabel.CENTER);
47+
for (int i = 1; i < columns.length; i++) {
48+
fieldsTable.getColumnModel().getColumn(i).setCellRenderer(centerRenderer);
49+
}
4850
}
4951

5052
public List<FieldModel> getFieldsData() {
@@ -98,7 +100,12 @@ public Object getValueAt(int rowIndex, int columnIndex) {
98100
case 2:
99101
return languageResolver.getModifier(fieldData.mutable);
100102
case 3:
101-
return fieldData.type;
103+
String className = classNames.get(fieldData.type);
104+
if (className != null) {
105+
return className;
106+
} else {
107+
return fieldData.type;
108+
}
102109
case 4:
103110
return fieldData.defaultValue;
104111
case 5:
@@ -134,9 +141,9 @@ public boolean isCellEditable(int row, int col) {
134141
if (col == 5) {
135142
return false;
136143
}
137-
if (col == 3) {
138-
return languageResolver.canChangeType(fieldsData.get(row).type);
139-
}
144+
// if (col == 3) {
145+
// return languageResolver.canChangeType(fieldsData.get(row).type);
146+
// }
140147
return true;
141148
}
142149

src/com/mighty16/json/ui/ModelTableDialog.java

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.intellij.openapi.ui.Messages;
44
import com.mighty16.json.models.ClassModel;
5+
import com.mighty16.json.models.FieldModel;
56
import com.mighty16.json.resolver.LanguageResolver;
67
import com.mighty16.json.ui.ClassesListDelegate;
78
import com.mighty16.json.ui.FieldsTableDelegate;
@@ -39,20 +40,24 @@ public class ModelTableDialog extends JDialog implements ClassesListDelegate.OnC
3940

4041
private ModelTableCallbacks callbacks;
4142

43+
private int currentSelectedClassIndex = 0;
44+
45+
private HashMap<String, String> classNames;
46+
4247
public ModelTableDialog(List<ClassModel> data, LanguageResolver resolver, ModelTableCallbacks callbacks) {
4348
init();
4449
this.data = data;
4550
this.callbacks = callbacks;
4651

47-
HashMap<String,String> classNames = new HashMap<>();
52+
classNames = new HashMap<>();
4853

49-
for (ClassModel classModel:data){
50-
classNames.put(classModel.name,classModel.name);
54+
for (ClassModel classModel : data) {
55+
classNames.put(classModel.name, classModel.name);
5156
}
5257

53-
classesListDelegate = new ClassesListDelegate(table1, data,classNames,this);
54-
fieldsTableDelegate = new FieldsTableDelegate(fieldsTable, resolver);
55-
fieldsTableDelegate.setFieldsData(data.get(0).fields);
58+
classesListDelegate = new ClassesListDelegate(table1, data, classNames, this);
59+
fieldsTableDelegate = new FieldsTableDelegate(fieldsTable, classNames, resolver);
60+
fieldsTableDelegate.setClass(data.get(0));
5661
}
5762

5863
private void init() {
@@ -118,14 +123,29 @@ private void onOK() {
118123
return;
119124
}
120125
}
121-
dispose();
126+
127+
for (ClassModel classModel : data) {
128+
String className = classNames.get(classModel.name);
129+
if (className != null) {
130+
classModel.name = className;
131+
}
132+
for (FieldModel field : classModel.fields) {
133+
String fieldClassName = classNames.get(field.type);
134+
if (fieldClassName != null) {
135+
field.type = fieldClassName;
136+
}
137+
}
138+
}
122139
callbacks.onModelsReady(data, singleFileName, annotationsType);
140+
dispose();
123141
}
124142
}
125143

126144
@Override
127-
public void onClassSelected(ClassModel classData) {
128-
fieldsTableDelegate.setFieldsData(classData.fields);
145+
public void onClassSelected(ClassModel classData, int index) {
146+
data.get(currentSelectedClassIndex).fields = fieldsTableDelegate.getFieldsData();
147+
currentSelectedClassIndex = index;
148+
fieldsTableDelegate.setClass(classData);
129149
}
130150

131151
public interface ModelTableCallbacks {

0 commit comments

Comments
 (0)