First thanks for this brain strom and Sorry for my English.
I have been using GXT 2 since 2 years ago and i developed two project with that.
as you know GXT 2 is ModelData base for data connection. I developed my custom library for database comunication process. This library has Java Bean Support and JSON support. I think insert and update method with JavaBean; select method with JSON. GXT 3 will be my new UI Framework.
I will add multiple table support in my database library's java bean mode.
My bean is now Structure
Code:
public class ModulesModel implements Model {
public static final List<Index> PrimaryKeys;
public static final List<Index> ForeginKeys;
public static final List<Index> Indexes;
public static final List<Column> Columns;
public static final String Database;
public static final String Table;
static {
Database = "";
Table = "modules";
PrimaryKeys = new ArrayList<Index>();
Index pkmodule_guid = new Index();
pkmodule_guid.setTable("modules");
pkmodule_guid.setField("module_guid");
pkmodule_guid.setName("null");
pkmodule_guid.setAutoIncrement(false);
pkmodule_guid.setNullable(false);
pkmodule_guid.setType(IndexType.PK);
PrimaryKeys.add(pkmodule_guid);
ForeginKeys = new ArrayList<Index>();
Index fkprogram_guid = new Index();
fkprogram_guid.setTable("program_guid");
fkprogram_guid.setField("program_guid");
fkprogram_guid.setName("fk_modules_program_guid");
fkprogram_guid.setAutoIncrement(false);
fkprogram_guid.setNullable(false);
fkprogram_guid.setType(IndexType.FK);
fkprogram_guid.setForeginTable("program");
fkprogram_guid.setForeginField("program_guid");
fkprogram_guid
.setUpdateRule(IndexRule.NO_ACTION);
fkprogram_guid
.setDeleteRule(IndexRule.NO_ACTION);
ForeginKeys.add(fkprogram_guid);
Indexes = new ArrayList<Index>();
Columns = new ArrayList<Column>();
Column colmodule_key = new Column();
colmodule_key.setDecimalDigits(0);
colmodule_key.setDefault("null");
colmodule_key.setName("module_key");
colmodule_key.setTable("modules");
colmodule_key.setSize(250);
colmodule_key.setType(12);
Columns.add(colmodule_key);
Column colmodule_adi = new Column();
colmodule_adi.setDecimalDigits(0);
colmodule_adi.setDefault("null");
colmodule_adi.setName("module_adi");
colmodule_adi.setTable("modules");
colmodule_adi.setSize(250);
colmodule_adi.setType(12);
Columns.add(colmodule_adi);
Column colprogram_guid = new Column();
colprogram_guid.setDecimalDigits(0);
colprogram_guid.setDefault("null");
colprogram_guid.setName("program_guid");
colprogram_guid.setTable("modules");
colprogram_guid.setSize(100);
colprogram_guid.setType(12);
Columns.add(colprogram_guid);
Column colmodule_guid = new Column();
colmodule_guid.setDecimalDigits(0);
colmodule_guid.setDefault("null");
colmodule_guid.setName("module_guid");
colmodule_guid.setTable("modules");
colmodule_guid.setSize(100);
colmodule_guid.setType(12);
Columns.add(colmodule_guid);
Column colmodule_type = new Column();
colmodule_type.setDecimalDigits(0);
colmodule_type.setDefault("null");
colmodule_type.setName("module_type");
colmodule_type.setTable("modules");
colmodule_type.setSize(10);
colmodule_type.setType(4);
Columns.add(colmodule_type);
}
public ModulesModel() {
}
private String module_key;
public void setModule_key(String module_key) {
this.module_key = module_key;
}
public String getModule_key() {
return this.module_key;
}
private String module_adi;
public void setModule_adi(String module_adi) {
this.module_adi = module_adi;
}
public String getModule_adi() {
return this.module_adi;
}
private String program_guid;
public void setProgram_guid(String program_guid) {
this.program_guid = program_guid;
}
public String getProgram_guid() {
return this.program_guid;
}
private String module_guid;
public void setModule_guid(String module_guid) {
this.module_guid = module_guid;
}
public String getModule_guid() {
return this.module_guid;
}
private int module_type = -1;
public void setModule_type(int module_type) {
this.module_type = module_type;
}
public int getModule_type() {
return this.module_type;
}
@Override
public List<Index> getPrimaryKeys() {
return ModulesModel.PrimaryKeys;
}
@Override
public List<Index> getForeginKeys() {
return ModulesModel.ForeginKeys;
}
@Override
public List<Index> getIndexes() {
return ModulesModel.Indexes;
}
@Override
public List<Column> getColumns() {
return ModulesModel.Columns;
}
@Override
public String getDatabase() {
return ModulesModel.Database;
}
@Override
public String getTable() {
return ModulesModel.Table;
}
}
I think add a field that model structure. (Map<String,Model> Relations
. then My QueryManager will fill relational table on this field.
What do you think about and how can i use this model with GXT PropertyAccess? or do you have another offer.
Best Regards