11package com .mighty16 .json .ui ;
22
33import com .intellij .openapi .ui .ComboBox ;
4+ import com .mighty16 .json .models .ClassModel ;
45import com .mighty16 .json .resolver .LanguageResolver ;
56import com .mighty16 .json .models .FieldModel ;
67
78import javax .swing .*;
89import javax .swing .table .AbstractTableModel ;
10+ import javax .swing .table .DefaultTableCellRenderer ;
911import javax .swing .table .TableColumn ;
12+ import java .util .HashMap ;
1013import java .util .List ;
1114
1215public 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
0 commit comments