Essa foi a ultima versao que eu escrevi, esta quase tudo funcionando, mas falta muita coisa ainda, e o codigo fico meio bagunçado
E para gerar essas cadastros e gerenciadores o codigo é relativamente pequeno, ex:
package gnup.erp.model;
import gnup.erp.form.EntidadeRegisterForm;
import gnup.form.RegisterForm;
import gnup.library.EntityTableCellRenderer;
import gnup.model.Entity;
public class Entidade extends Entity {
@Override
public void initialize() {
initialize("tb_ent", "Entidade");
addImageField("foto", "", 20).setVirtual(true);
addSequenceField("id_ent", "Código", "sq_ent", 10).setPrimaryKey(true);
addStringField("nome", "Nome", 90);
addCheckListField("tp_ent", "", DataType.STRING, Constants.TIPO_ENTIDADE, 100);
addSelectField("tp_pes", "Tipo pessoa", DataType.STRING, Constants.TIPO_PESSOA, 18);
addMaskField("cpf_cnpj", "Cpf/Cnpj", CPF_CNPJ_MASK, 22);
addStringField("ie", "IE", 20);
addStringField("rg", "Rg", 20);
addStringField("rg_exp", "Órgão expeditor", 20);
addSection("dados2", "");
addMaskField("fone", "Telefone", FONE_MASK, 15);
addMaskField("fax", "Fax", FONE_MASK, 15);
addMaskField("cel", "Celular", FONE_MASK, 15);
addStringField("email", "Email", 40);
addDateField("dt_cad", "Data cadastro", 15);
// addSection("");
addFloatField("vl_limite", "Limite", 20);
addIntegerField("vl_carenc", "Dias de carência", 20);
addFloatField("vl_juros", "% Juros", 20);
addSelectField("tp_prazo", "Tipo prazo", DataType.STRING, Constants.ENTIDADE_TP_PRAZO, 20);
addIntegerField("vl_prazo", "Prazo", 20);
addSection("Endereço");
addMaskField("cep", "Cep", CEP_MASK, 10);
addStringField("logr", "Logradouro", 40);
addStringField("num", "Número", 10);
addStringField("compl", "Complemento", 40);
addStringField("bairro", "Bairro", 50);
addEntityField("id_munic", "Município", DataType.INTEGER, Municipio.class, 50);
addTab("Pessoa Física");
addSection("");
addSelectField("sexo", "Sexo", DataType.STRING, Constants.SEXO, 15);
addSelectField("est_civil", "Estado civil", DataType.STRING, Constants.ESTADO_CIVIL, 15);
addDateField("dt_nasc", "Nascimento", 15);
addStringField("apel", "Apelido", 55);
addStringField("pai", "Nome do pai", 50);
addStringField("mae", "Nome da mãe", 50);
addEntityField("id_munic_nat", "Naturalidade", DataType.INTEGER, Municipio.class, 50);
addSection("Conjuge");
addStringField("conj", "Nome do conjuge", 40);
addMaskField("cpf_conj", "Cpf", CPF_MASK, 15);
addStringField("rg_conj", "Rg", 15);
addStringField("rg_exp_conj", "Órgão expeditor", 15);
addDateField("dt_nasc_conj", "Nascimento", 15);
addStringField("pai_conj", "Nome do pai", 50);
addStringField("mae_conj", "Nome da mãe", 50);
addEntityField("id_munic_nat_conj", "Naturalidade", DataType.INTEGER, Municipio.class, 50);
addDateField("dt_nasc_conj", "Nascimento", 15);
addTab("Trabalho");
addSection("");
addStringField("nome_emp_trab", "Empresa", 50);
addStringField("prof_trab", "Profissão", 50);
addFloatField("vl_renda_trab", "Renda", 20);
addMaskField("fone_trab", "Telefone", FONE_MASK, 15);
addSection("Endereço");
addMaskField("cep_trab", "Cep", CEP_MASK, 10);
addStringField("logr_trab", "Logradouro", 40);
addStringField("num_trab", "Número", 10);
addStringField("compl_trab", "Complemento", 40);
addStringField("bairro_trab", "Bairro", 50);
addEntityField("id_munic_trab", "Município", DataType.INTEGER, Municipio.class, 50);
addTab("Credenciado");
addSection("Credenciado");
addChild(EntidadeCredenciado.class, 100, 300);
getTableDef()
.setCardCellRender(new EntityTableCellRenderer("descr", "descr_uf"))
.addColumnDef("id_ent", "Código", 80)
.addColumnDef("nome", "Nome", 300)
.addColumnDef("cpf_cnpj", "Cpf/Cnpj", 50)
.addColumnDef("fone", "Telefone", 100);
getEntityFieldDef()
.setIdFieldName("id_ent")
.setDescriptionFieldName("nome");
}
@Override
public RegisterForm createRegisterForm() {
return new EntidadeRegisterForm();
}
}