From: <lsc...@xd...> - 2003-08-18 21:57:12
|
E ai galera, =20 precisamos combinar como faremos os pr=F3ximos passos para o blake, acho que precisavamos todos validarmos a aplica=E7=E3o que o carlos fez, para podermos entender como faremos para extende-la com os conceitos vitais ao xdev. =20 Como vcs sabem sou faixa branca total em Java, por isso demorarei mais que vcs para entender o que est=E1 sendo feito l=E1, mas podem deixar = que com muita persist=EAncia eu chego l=E1 :) =20 Carlos, vc pode mandar os fontes para n=F3s, ou disponibilizar no cvs? = =C9 facinho por para rodar, ou precisa de algum roteiro para seguirmos? =20 []'s=20 =20 Luiz |
From: Carlos V. <ca...@bl...> - 2003-08-18 22:17:44
|
Opa! :) Entao, os fontes estao no CVS la da java.net, mas o projeto ainda nao foi aprovado. Eu tou trabalhando que nem um doente na interface de administracao agora (quero deixar ela redondassa antes de mais nada), entao passar o codigo pra vcs, no estado q esta, nao vai ajudar mto... acho que poucos vao conseguir compilar e por pra rodar, e mesmo se conseguirem, vai ser dificil entender o que tah acontecendo :) Mas, pra gente nao ficar parado, aqui vao as perguntas que a gente tem que responder pra conseguir fazer o Blake: - O que tem numa aplicacao web? - Formularios - Campos - Labels - Listagens - Relatorios - Acoes - ? - O que deve ser customizavel em todas as aplicacoes web? Ordem dos campos? Visibilidade dos campos? Permissao de edicao ou visualizacao de um campo/formulario? - Como montar uma interface que permita ao cara criar forms, listagens, relatorios e acoes pela web? Bom, acho que e' so', por enquanto, se a gente ficar se perguntando mto mais do que isso, nao sai nada do lugar ;) []'s -cv On Mon, 2003-08-18 at 18:57, lsc...@xd... wrote: > E ai galera, > > precisamos combinar como faremos os próximos passos para o blake, acho > que precisavamos todos validarmos a aplicação que o carlos fez, para > podermos entender como faremos para extende-la com os conceitos vitais > ao xdev. > > Como vcs sabem sou faixa branca total em Java, por isso demorarei mais > que vcs para entender o que está sendo feito lá, mas podem deixar que > com muita persistência eu chego lá :) > > Carlos, vc pode mandar os fontes para nós, ou disponibilizar no cvs? É > facinho por para rodar, ou precisa de algum roteiro para seguirmos? > > []'s > > Luiz |
From: lscheidegger - x. <lsc...@xd...> - 2003-08-18 22:44:11
|
>- O que tem numa aplicacao web? >- Formularios > - Campos > - Labels >- Listagens >- Relatorios >- Acoes >- ? =20 Vamos por partes, n=F3s j=E1 mapeamos um monte de interfaces, entre = elas: - Report (o cl=E1ssico), t=EDtulo, subt=EDtulo, tabela, links (bot=F5es) - ListReport , relat=F3rio composto de uma listagem de links, como em not=EDcias relacionadas de um site de not=EDcias - NestedReport , report que cont=E9m master-detail em uma mesma tela, Estado Cidade Habitantes S=E3o Paulo 12000000 SP Santos 3000000 Sorocaba 700000 RJ Rio de Janeiro 6000000 Resende 500000 BA Salvador 4000000 - Form (o cl=E1ssico) t=EDtulo, subt=EDtulo, campos, links - Search campo + bot=E3o + link para advanced search - Advanced Search parecido com o form, o que muda s=E3o os par=E2metros = de processamento - Cross , refer=EAncia cruzada de duas entidades (n para n), exemplo cl=E1ssico: usu=E1rio x grupo, vc pode querer ver todos os usu=E1rio vinculados a um determinado grupo, na consulta de grupo, bem como ver todos os grupo vinculados ao usu=E1rio na consulta de usu=E1rio. - Menu (listagem de links) - Interfaces compostas como: - formul=E1rio em abas; - help (estilo hlp) com lista de links a esquerda e conte=FAdo a direita Que eu me lembre essas s=E3o as principais, se algu=E9m lembrar de = alguma outra feel free, por=E9m temos que resolver antes de escrevermos os c=F3digos que lidem = com as interfaces, como ser=E1 feita essa integra=E7=E3o, desculpe mas para = mim n=E3o est=E1 muito claro, pois se formos usar algo que n=E0o seja xsl, = temos que entender como esse algo processar a defini=E7=E3o e gerar=E1 = sa=EDdas distintas como htm, xml, wml, excel, csv, txt, etc. >O que deve ser customizavel em todas as aplicacoes web? Ordem dos campos? Visibilidade dos campos? Permissao de edicao ou visualizacao de um campo/formulario? Sim, tudo isso mais algumas coisas, que podemos ir discutindo interface a interface, acho que podemos criar uma por vez e estressarmos tudo que pudermos nela, antes de irmos para a pr=F3xima - Como montar uma interface que permita ao cara criar forms, listagens, relatorios e acoes pela web? N=E3o s=F3 pela web n=E9? o foco principal =E9 esse mas tb todos os = tipos de sa=EDda de informa=E7=E3o que forem confort=E1veis ao usu=E1rio. Por = interface nesse ponto vc est=E1 se referindo a uma esp=E9cie de IDE para ajudar a programar utilizando-se do Blake? Bom, acho que e' so', por enquanto, se a gente ficar se perguntando mto mais do que isso, nao sai nada do lugar ;) =E9 vero []'s =20 Luiz |
From: Rafael S. <ra...@in...> - 2003-08-18 23:02:35
|
bom, ListReport daria para encarar como um Report nnormal, nao?.. =20 outra coisa, usando qualquer ferramenta no estilo velocity/freemarker/webwork ( ou seja, que gerem saida texto ), da para fazer qualquer coisa que tambem tenha formato texto como entrada.. Relatorios em excel nao me parecem especialmente prioritarios assim de cara ( apesar que lancar uma aplicacao com opcoes de exportacao para trocentos formatos pega bem ). =20 Resumindo, temos o Form ( onde dados sao inseridos ), Report / NestedReport ( este ultimo mais incomum de ser usado, mas por ser simples de fazer, nao ha problemas em colocar de cara ), Search e Menus. Ha ainda um tipo interessante de interface, que sao aquelas de "home page" de grande parte dos sites ( barrinha em cima, menu de navegacao a esquerda, conteudo no centro e, em alguns casos, algum oturo tipo de conteudo a direita ). Esse pode ser interessante tmb... se bem que isso nao passa de uma interface composta, ou algum template diferente..=20 =20 Rafael -----Mensagem original----- De: bla...@li... [mailto:bla...@li...] Em nome de lscheidegger - xdev Enviada em: segunda-feira, 18 de agosto de 2003 19:44 Para: bla...@li... Assunto: RES: [Blake-devel] Fontes do Inectis Vamos por partes, n=F3s j=E1 mapeamos um monte de interfaces, entre = elas: - Report (o cl=E1ssico), t=EDtulo, subt=EDtulo, tabela, links (bot=F5es) - ListReport , relat=F3rio composto de uma listagem de links, como em not=EDcias relacionadas de um site de not=EDcias - NestedReport , report que cont=E9m master-detail em uma mesma tela, Estado Cidade Habitantes S=E3o Paulo 12000000 SP Santos 3000000 Sorocaba 700000 RJ Rio de Janeiro 6000000 Resende 500000 BA Salvador 4000000 - Form (o cl=E1ssico) t=EDtulo, subt=EDtulo, campos, links - Search campo + bot=E3o + link para advanced search - Advanced Search parecido com o form, o que muda s=E3o os par=E2metros = de processamento - Cross , refer=EAncia cruzada de duas entidades (n para n), exemplo cl=E1ssico: usu=E1rio x grupo, vc pode querer ver todos os usu=E1rio vinculados a um determinado grupo, na consulta de grupo, bem como ver todos os grupo vinculados ao usu=E1rio na consulta de usu=E1rio. - Menu (listagem de links) - Interfaces compostas como: - formul=E1rio em abas; - help (estilo hlp) com lista de links a esquerda e conte=FAdo a direita Que eu me lembre essas s=E3o as principais, se algu=E9m lembrar de = alguma outra feel free, por=E9m temos que resolver antes de escrevermos os c=F3digos que lidem = com as interfaces, como ser=E1 feita essa integra=E7=E3o, desculpe mas para = mim n=E3o est=E1 muito claro, pois se formos usar algo que n=E0o seja xsl, = temos que entender como esse algo processar a defini=E7=E3o e gerar=E1 = sa=EDdas distintas como htm, xml, wml, excel, csv, txt, etc. >O que deve ser customizavel em todas as aplicacoes web? Ordem dos campos? Visibilidade dos campos? Permissao de edicao ou visualizacao de um campo/formulario? Sim, tudo isso mais algumas coisas, que podemos ir discutindo interface a interface, acho que podemos criar uma por vez e estressarmos tudo que pudermos nela, antes de irmos para a pr=F3xima - Como montar uma interface que permita ao cara criar forms, listagens, relatorios e acoes pela web? N=E3o s=F3 pela web n=E9? o foco principal =E9 esse mas tb todos os = tipos de sa=EDda de informa=E7=E3o que forem confort=E1veis ao usu=E1rio. Por = interface nesse ponto vc est=E1 se referindo a uma esp=E9cie de IDE para ajudar a programar utilizando-se do Blake? Bom, acho que e' so', por enquanto, se a gente ficar se perguntando mto mais do que isso, nao sai nada do lugar ;) =E9 vero []'s =20 Luiz |
From: Carlos V. <ca...@bl...> - 2003-08-19 00:28:10
|
On Mon, 2003-08-18 at 20:04, Rafael Steil wrote: > outra coisa, usando qualquer ferramenta no estilo > velocity/freemarker/webwork ( ou seja, que gerem saida texto ), da > para fazer qualquer coisa que tambem tenha formato texto como > entrada.. Relatorios em excel nao me parecem especialmente > prioritarios assim de cara ( apesar que lancar uma aplicacao com > opcoes de exportacao para trocentos formatos pega bem ). +1. > Resumindo, temos o Form ( onde dados sao inseridos ), Report / > NestedReport ( este ultimo mais incomum de ser usado, mas por ser > simples de fazer, nao ha problemas em colocar de cara ), Search e > Menus. Hmm...ainda falta mta coisa aih. Qual eh o objeto que representa a acao de um botao, quando clicado, por exemplo? > Ha ainda um tipo interessante de interface, que sao aquelas de "home > page" de grande parte dos sites ( barrinha em cima, menu de navegacao > a esquerda, conteudo no centro e, em alguns casos, algum oturo tipo de > conteudo a direita ). Esse pode ser interessante tmb... se bem que > isso nao passa de uma interface composta, ou algum template > diferente.. Se a gente for se preocupar com a apresentacao, a gente caga no modelo. Vamos fazer uma coisa de cada vez ;) []'s -cv |
From: Rafael S. <ra...@in...> - 2003-08-19 01:50:06
|
-----Mensagem original----- De: bla...@li... [mailto:bla...@li...] Em nome de Carlos Villela Enviada em: segunda-feira, 18 de agosto de 2003 21:28 Para: bla...@li... Assunto: Re: RES: [Blake-devel] Fontes do Inectis > Hmm...ainda falta mta coisa aih. Qual eh o objeto que representa a acao de um botao, quando clicado, por exemplo? bom, atualmente nao existe um objeto que representa um botao, se bem entendi o que vc esta pensando... o que temos eh uma tag de link, onde dizemos o tipo dela ( continuar, boltar, inserir, submit, cancelar etc ), a qual vai para uma lista de links, e entao o sistema, com base no tipo, constroi as tags xml relacionadas, passando os parametros do link ( que estao na configuracao dele tmb ).... eh mais ou menos assim que funciona. A "acao do botao" seria a url/pagina/processamento disparado pelo click? se for isso, nao ha relacao alguma, pois o link/acao eh uma operacao no sistema ( report, insert, edit, o que quer que seja, como um link qualquer ). > Ha ainda um tipo interessante de interface, que sao aquelas de "home > page" de grande parte dos sites ( barrinha em cima, menu de navegacao > a esquerda, conteudo no centro e, em alguns casos, algum oturo tipo de > conteudo a direita ). Esse pode ser interessante tmb... se bem que > isso nao passa de uma interface composta, ou algum template > diferente.. >> Se a gente for se preocupar com a apresentacao, a gente caga no modelo. Vamos fazer uma coisa de cada vez ;) Em muitos sistemas sim, mas no modelo do xdev ( no qual o blake eh baseado ), isso tudo eh meio paralelo, pois as acoes do modelo sao diretamente para a criacao da apresentacao.. entao, se nao tiver uma apresentacao definida, muitas coisas da parte de negocios ficam meio complicadas de serem definidas... Claro, ha coisas que nao sao relacionadas de forma alguma, e tambem concordo que quere definir todas as formas possiveis de interfaces logo de cara nao eh uma boa ideia.. mas ter pelo menos uma nocao do que queremos montar de saida pode ajudar bastante a bolar partes mais iternanas do sistema ( se bem que isso esta diretamente ligado a forma - a qual falta definir - que vamos fazer para montar a tela ). ( af, enrolei tanto que ate eu me perdi =) ) Rafael |
From: Carlos V. <ca...@bl...> - 2003-08-19 03:20:57
|
On Mon, 2003-08-18 at 22:49, Rafael Steil wrote: > > Hmm...ainda falta mta coisa aih. Qual eh o objeto que representa a > acao de um botao, quando clicado, por exemplo? > > bom, atualmente nao existe um objeto que representa um botao, se bem > entendi o que vc esta pensando... o que temos eh uma tag de link, onde > dizemos o tipo dela ( continuar, boltar, inserir, submit, cancelar etc > ), a qual vai para uma lista de links, e entao o sistema, com base no > tipo, constroi as tags xml relacionadas, passando os parametros do link > ( que estao na configuracao dele tmb ).... eh mais ou menos assim que > funciona. A "acao do botao" seria a url/pagina/processamento disparado > pelo click? se for isso, nao ha relacao alguma, pois o link/acao eh uma > operacao no sistema ( report, insert, edit, o que quer que seja, como um > link qualquer ). > Hmm, conflitou ja :D A minha visao sobre como o Inectis/Blake vai funcionar eh a seguinte: Suponha que vc esta fazendo um cadastro de usuarios e grupos. Suponha que vc estivesse usando uma API imaginaria, que faz todo o trabalho sujo pra vc. Se coloque na pele dum usuario do Inectis/Blake: [se preparem pra um loooongo bloco de codigo lindo] // Cria as definicoes das classes usuario = new ClassDefinition("Usuario"); grupo = new ClassDefinition("Grupo"); // Cria as propriedades que as classes vao ter nome = new Property("nome", String.class); senha = new Property("senha", String.class); grupos = new Property("grupos", Set.class); usuarios = new Property("usuarios", Set.class); // Adiciona as propriedades as classes usuario.addProperty(nome); usuario.addProperty(senha); usuario.addProperty(grupos); grupo.addProperty(nome); grupo.addProperty(usuarios); // Adiciona os constraints que cada propriedade // vai ter nesta classe especifica usuario.addConstraint("nome", new MinimumSizeConstraint(6)); usuario.addConstraint("nome", new RequiredConstraint()); usuario.addConstraint("senha", new MinimumSizeConstraint(6)); usuario.addConstraint("senha", new RequiredConstraint()); usuario.addConstraint("grupos", new RequiredConstraint()); usuario.addConstraint("grupos", new MinimumCollectionSizeConstraint(1)); usuario.addConstraint("grupos", new TypeMatchConstraint(grupo)); grupo.addConstraint("nome", new MinimumSizeConstraint(6)); grupo.addConstraint("nome", new RequiredConstraint()); grupo.addConstraint("usuarios", new TypeMatchConstraint(usuario)); // Adiciona as acoes que cada objeto usuario pode receber add = new Action("add"); del = new Action("delete"); edit = new Action("edit"); dup = new Action("duplicate"); // Define a regra de negocio para cada acao add.addParameter(0, grupo); add.addParameter(1, usuario); add.setScript( function(system, params) { grupo = system.findGrupo(params.get("grupo")); grupo.addUsuario(params.get("usuario")); } ); del.addParameter(0, grupo); del.addParameter(1, usuario); del.setScript( function(system, params) { grupo = system.findGrupo(params.get("grupo")); grupo.removeUsuario(params.get("usuario")); } ); edit.addParameter(0, grupo); edit.addParameter(1, usuario); edit.addParameter(2, nome); edit.addParameter(3, senha); edit.setScript( function(system, params) { grupo = system.findGrupo(params.get("grupo")); usuario = grupo.findUsuario(params.get("usuario")); PropertyHelper.changeAllProperties(usuario, params); } ) dup.addParameter(0, grupo); dup.addParameter(1, usuario); dup.addParameter(2, nome); dup.setScript( function(system, params) { grupo = system.findGrupo(params.get("grupo")); usuario = grupo.findUsuario(params.get("usuario")); novo = new Usuario(); PropertyHelper.changeAllProperties(novo, PropertyHelper.getAllProperties(usuario)); novo.setNome(params.get("nome")); grupo.addUsuario(novo); } ) usuario.addAction(add); usuario.addAction(del); usuario.addAction(edit); usuario.addAction(dup); // Adiciona as acoes que cada objeto grupo pode receber add = new Action("add"); del = new Action("delete"); edit = new Action("edit"); dup = new Action("duplicate"); // Define a regra de negocio para cada acao add.addParameter(0, grupo); add.setScript( function(system, params) { system.addGrupo(params.get("grupo")); } ); del.addParameter(0, grupo); del.setScript( function(system, params) { system.removeGrupo(params.get("grupo")); } ); edit.addParameter(0, grupo); edit.addParameter(1, nome); edit.addParameter(2, usuarios); edit.setScript( function(system, params) { grupo = system.findGrupo(params.get("grupo")); PropertyHelper.changeAllProperties(grupo, params); } ) dup.addParameter(0, grupo); dup.addParameter(1, nome); dup.setScript( function(system, params) { grupo = system.findGrupo(params.get("grupo")); novo = new Grupo(); PropertyHelper.changeAllProperties(novo, PropertyHelper.getAllProperties(grupo)); novo.setNome(params.get("nome")); system.addGrupo(grupo); } ) usuario.addAction(add); usuario.addAction(del); usuario.addAction(edit); usuario.addAction(dup); // ------------------------------------------------------------ // ACABOU! ALELUIA! :D // ------------------------------------------------------------ Agora vamo la'. Pra que eu tou falando disso tudo? Vantagens e desvantagens deste modelo: Vantagens: - Totalmente independente da camada de visualizacao - Super-facil de usar - Properties e Actions altamente reutilizaveis - Totalmente independente da interface que a gente vai usar pra definir tudo isso (a gente nao quer que os caras facam esse JavaScript todo no braco ne? :) Desvantagens: - Tem alguma? Me avisem. ;) []'s -cv |
From: Rafael S. <ra...@in...> - 2003-08-19 03:46:25
|
-----Mensagem original----- De: bla...@li... [mailto:bla...@li...] Em nome de Carlos Villela Enviada em: ter=E7a-feira, 19 de agosto de 2003 00:21 Para: bla...@li... Assunto: Re: RES: RES: [Blake-devel] Fontes do Inectis > Hmm, conflitou ja :D > A minha visao sobre como o Inectis/Blake vai funcionar eh a seguinte: > Suponha que vc esta fazendo um cadastro de usuarios e grupos. Suponha que vc estivesse usando uma API=20 > imaginaria, que faz todo o trabalho sujo pra vc. Se coloque na pele dum usuario do Inectis/Blake: > [se preparem pra um loooongo bloco de codigo lindo] Eu soh nao tenho certeza se entendi sobre qual parte do sistema eh essa que vc mandou. Digo, eh a definicao final da interface, ou a definicao de como ela vai ser? sao os campos e acoes que a tela tera, e com base nisso o sistema "popula" os dados para entao serem processados pelo carinha que monta a tela? Rafael |
From: lscheidegger - x. <lsc...@xd...> - 2003-08-19 13:31:43
|
>Desvantagens: >- Tem alguma? Me avisem. ;) S=F3 uma, vc escreve pra diabo. Ao mapear as interfaces e opera=E7=F5es, n=F3s temos que ter em conta = que teremos uma situa=E7=E3o padr=E3o definida para cada uma delas. O que fazemos normalmente =E9 criar uma defini=E7=E3o padr=E3o para cada interface, opera=E7=E3o e propriedade, e mesclamos apenas as = diferen=E7as que a entidade/classe que est=E1 sendo processada tem. Supondo que a defini=E7=E3o padr=E3o da opera=E7=E3o add seja (seguindo = seu padr=E3o): //LINK //define a imagem que aparecer=E1 no bot=E3o add.setImage("bt_inclusao.gif"); //LINK + DISPLAY //Define o caption do link, bem como o t=EDtulo da p=E1gina add.setTitle("Inclus=E3o"); //DISPLAY //define que por default ser=E3o mostrados todas as propriedades no formul=E1rio add.getAllProperties(true); //indica que a primary key =E9 gerada automaticamente e n=E3o pode ser alterada add.hiddenIdentifier(true); //defini=E7=E3o de subt=EDtulo add.setSubtitle(""); //PROCESS //define qual =E9 a opera=E7=E3o que ser=E1 chamada ap=F3s o = processamento do formul=E1rio add.setRedirectOperation("report"); //define a query de processamento add.setQuery("add"); //define se h=E1 algum m=E9todo de valida=E7=E3o que deva ser chamado = antes da inclus=E3o add.setValidationMethod("validate"); Supondo que essa seja a defini=E7=E3o padr=E3o de uma propriedade = string: string.setLenght(100) string.isMandatory(false) string.isVisible(true) string.setCaption("") string.isIdentifier(false) Essa =E9 a defini=E7=E3o padr=E3o de um campo num=E9rico number.setType(integer) number.setCaption("") number.minValue(null) number.maxValue(null) number.isIdentifier(false) number.isMandatory(false) number.isVisible(true) Vamos criar uma entidade Usu=E1rio, vou exemplificar apenas a = inclus=E3o. // Cria a definicao da classe usuario =3D new ClassDefinition("Usuario"); // Cria as propriedades que a classe vai ter usuario.addProperty("id", Number.class); usuario.addProperty("nome", String.class); //define que o campo id =E9 chave prim=E1rio, e que seu valor vem de uma seguence ou campo auto_increment usuario.properties.get("id").isIdentifier(true); usuario.properties.get("id").setType("sequencer"); //define a legenda da propriedade nome usuario.properties.get("nome").setCaption("Nome do Usu=E1rio"); //addAction (String type,boolean automatic=3Dtrue) usuario.addAction("add"); []'s Luiz |
From: Carlos V. <ca...@bl...> - 2003-08-20 03:55:21
|
On Tue, 2003-08-19 at 10:31, lscheidegger - xdev wrote: > >Desvantagens: > >- Tem alguma? Me avisem. ;) > > Só uma, vc escreve pra diabo. E voces nao ne?! :D > //LINK > //define a imagem que aparecerá no botão > add.setImage("bt_inclusao.gif"); > > //LINK + DISPLAY > //Define o caption do link, bem como o título da página > add.setTitle("Inclusão"); > > //DISPLAY > //define que por default serão mostrados todas as propriedades no > formulário > add.getAllProperties(true); Essa chamada ficou estranha. Era melhor: add.showProperties(PropertyHelper.getAllProperties(usuario)); > //indica que a primary key é gerada automaticamente e não pode ser > alterada > add.hiddenIdentifier(true); Para tudo que eu quero descer! Objetos nao tem primary key. Isso eh coisa do banco de dados - e eu sinceramente nem quero usar um, entao suma com essas nojeiras de modelo relacional da minha frente! :D > //definição de subtítulo > add.setSubtitle(""); Po, se vc nao vai setar o subtitulo, nao chame o metodo ;) > //PROCESS > //define qual é a operação que será chamada após o processamento do > formulário > add.setRedirectOperation("report"); Huh!? Isso ja nao tinha sido mapeado na Action que eu bolei antes? :) > //define a query de processamento > add.setQuery("add"); Que query? De onde vem esse "add"? Magica? > //define se há algum método de validação que deva ser chamado antes da > inclusão > add.setValidationMethod("validate"); "validate" o que? Como? O que acontece quando a validacao falha? > Supondo que essa seja a definição padrão de uma propriedade string: > string.setLenght(100) > string.isMandatory(false) > string.isVisible(true) > string.setCaption("") > string.isIdentifier(false) Hmm... eu gostei mais do modelo de constraints que eu bolei - assim a gente nao precisa ficar adicionando um metodo novo na classe Property sempre que precisar de outro tipo de validacao. Lembrando: objeto.addConstraint("propriedade", new Constraint()); > Essa é a definição padrão de um campo numérico > (...) > > Vamos criar uma entidade Usuário, vou exemplificar apenas a inclusão. > > // Cria a definicao da classe > usuario = new ClassDefinition("Usuario"); > > // Cria as propriedades que a classe vai ter > usuario.addProperty("id", Number.class); AAAAAARGH! :D > usuario.addProperty("nome", String.class); > > //define que o campo id é chave primário, e que seu valor vem de uma > seguence ou campo auto_increment > usuario.properties.get("id").isIdentifier(true); > usuario.properties.get("id").setType("sequencer"); AAAAAAAAAAAAAAAARGH!!! :D > //define a legenda da propriedade nome > usuario.properties.get("nome").setCaption("Nome do Usuário"); Hmm, nao gostei - a internacionalizacao vai pro saco se vc fizer isso ;) > //addAction (String type,boolean automatic=true) > usuario.addAction("add"); De novo, qual eh a magica que ta acontecendo aqui? []'s -cv |
From: Carlos V. <ca...@bl...> - 2003-08-19 00:25:10
|
On Mon, 2003-08-18 at 19:43, lscheidegger - xdev wrote: > >- O que tem numa aplicacao web? > >- Formularios > > - Campos > > - Labels > >- Listagens > >- Relatorios > >- Acoes > >- ? > > Vamos por partes, nós já mapeamos um monte de interfaces, entre elas: > > > - Report (o clássico), título, subtítulo, tabela, links (botões) Legal, mas ainda nao tah aprofundado o suficiente - o que tem num titulo? O que tem num subtitulo? O que eh uma tabela? Pra onde vao os links? > - ListReport , relatório composto de uma listagem de links, como em > notícias relacionadas de um site de notícias Entao, qual a diferenca entre Report e ListReport? (eu faco uma ideia, mas a gente precisa mastigar melhor as definicoes) > - NestedReport , report que contém master-detail em uma mesma tela, > Estado Cidade Habitantes > São Paulo 12000000 > SP Santos 3000000 > Sorocaba 700000 > > RJ Rio de Janeiro 6000000 > Resende 500000 > > BA Salvador 4000000 Precisamos de um tipo totalmente diferente de Report pra isso? Hmm, acho que nao... alguem quer defender a tese? :D > - Form (o clássico) título, subtítulo, campos, links Beleza, so falta definir cada um deles, especialmente o que eh um "campo" e um "link" > - Search campo + botão + link para advanced search Hmm...o que a gente mostra no advanced search? Quando o cara faz uma busca simples, que dados a gente procura? > - Advanced Search parecido com o form, o que muda são os parâmetros de > processamento ...que seriam? > - Cross , referência cruzada de duas entidades (n para n), exemplo > clássico: usuário x grupo, vc pode querer ver todos os usuário > vinculados a um determinado grupo, na consulta de grupo, bem como > ver todos os grupo vinculados ao usuário na consulta de usuário. Joia. Como modelar isso de forma generica? > - Menu (listagem de links) Corta fora - no Inectis ja tem um esquema bem mais flexivel ;) > - Interfaces compostas como: > > - formulário em abas; Detalhe do template, nao? > - help (estilo hlp) com lista de links a esquerda e conteúdo a > direita Corta fora tambem, isso o Inectis ja faz :) > Que eu me lembre essas são as principais, se alguém lembrar de > alguma outra feel free, Acho que os principais ja tao aih, a gente so precisa esmiucar eles melhor. > porém temos que resolver antes de escrevermos os códigos que lidem > com as interfaces, como será feita essa integração, desculpe mas para > mim não está muito claro, pois se formos usar algo que nào seja xsl, > temos que entender como esse algo processar a definição e gerará > saídas distintas como htm, xml, wml, excel, csv, txt, etc. Juro que eu nao vejo a *menor* necessidade de pensar nisso agora - isso eh detalhe de implementacao, e se a gente nao ficar satisfeito com Velocity, podemos mudar facilmente pra outra tecnologia. > >O que deve ser customizavel em todas as aplicacoes web? Ordem dos > campos? Visibilidade dos campos? Permissao de edicao ou visualizacao > de um campo/formulario? > > Sim, tudo isso mais algumas coisas, que podemos ir discutindo > interface a interface, acho que podemos criar uma por vez e > estressarmos tudo que pudermos nela, antes de irmos para a próxima Hmm, boa! > - Como montar uma interface que permita ao cara criar forms, > listagens, relatorios e acoes pela web? > > Não só pela web né? o foco principal é esse mas tb todos os tipos de > saída de informação que forem confortáveis ao usuário. Por interface > nesse ponto vc está se referindo a uma espécie de IDE para ajudar a > programar utilizando-se do Blake? Nao exatamente. Estou me referindo a duas coisas, na verdade: - Um modelo de objetos conciso e abrangente (que a gente esta discutindo na primeira metade do e-mail com todo aquele monte de pergunta chata) - Uma API para lidar com o modelo de objetos - Uma interface para a API <- e' disso que eu estou falando nessa pergunta. Como montar uma ferramenta web que te permita construir a porra toda sem necessariamente saber programar, a nao ser pelas regras de negocio? []'s -cv |
From: Rafael S. <ra...@in...> - 2003-08-19 02:01:03
|
-----Mensagem original----- De: bla...@li... [mailto:bla...@li...] Em nome de Carlos Villela Enviada em: segunda-feira, 18 de agosto de 2003 21:25 Para: bla...@li... Assunto: Re: RES: [Blake-devel] Fontes do Inectis > Vamos por partes, n=F3s j=E1 mapeamos um monte de interfaces, entre = elas: >=20 >=20 > - Report (o cl=E1ssico), t=EDtulo, subt=EDtulo, tabela, links = (bot=F5es) >> Legal, mas ainda nao tah aprofundado o suficiente - o que tem num titulo? O que tem num subtitulo? O que eh uma >> tabela? Pra onde vao os links? um titulo/subtitulo geralmente contem uma descricao do lugar onde o usuario se encontra atualmente. O conteudo da descricao pode vir de tres lugares diferentes: 1) uma string estatica; 2) algum campo da URL; 3) alguma propriedade da entidade. Ha ainda uma outra possiblidade de associar o retorno de um metodo como conteudo ( por exemplo, vc executa alguma query no banco para pegar informacoes extras ). Que tipo de definicao para "tabela" voce quer? Ao meu entender, uam tabela seria simplesmente como uma tabela html mesmo, ou seja, linhas e colunas nao-editaveis ( no caso dos reports, a primeira linah eh o caption, e o resto o conteudo ).. eh isso? Os links apontam para onde a configuracao deles mandar ( tal configuracao fica na definicao da interface, hardcoded, com pequenas partes variaveis que podem vir da url/entidade )..=20 > - ListReport , relat=F3rio composto de uma listagem de links, como em=20 > not=EDcias relacionadas de um site de not=EDcias >> Entao, qual a diferenca entre Report e ListReport? (eu faco uma ideia, mas a gente precisa mastigar melhor as >> definicoes) para mim da para considerar a mesma coisa os dois > - NestedReport , report que cont=E9m master-detail em uma mesma tela, > Estado Cidade Habitantes > S=E3o Paulo 12000000 > SP Santos 3000000 > Sorocaba 700000 >=20 > RJ Rio de Janeiro 6000000 > Resende 500000 >=20 > BA Salvador 4000000 >> Precisamos de um tipo totalmente diferente de Report pra isso? Hmm, acho que nao... alguem quer defender a tese? :D Bom, como eu tinha dito na outra mensagem, eh um tipo de report meio incomum, e eh bem simples de fazer.. talvez nao precise de um tipo de interface especifico para nestedReport, bastando alguma configuracao ou algo assim para aninhar os resultados..=20 > - Form (o cl=E1ssico) t=EDtulo, subt=EDtulo, campos, links >> Beleza, so falta definir cada um deles, especialmente o que eh um "campo" e um "link" "campos" sao conteudoos editaveis ( input type=3Dtext do html ), "links" sao.. links :) > - Search campo + bot=E3o + link para advanced search >> Hmm...o que a gente mostra no advanced search? Quando o cara faz uma busca simples, que dados a gente procura? Tambem intimamente ligados. O advanced-search seria apenas uma forma de poder especificar os dados com mais detalhes, como passar se eh para fazer a busca usando igualdade, like, maior ou menor etc... a busca simples geralmente soh da um like no sql... algo nesse estilo ( o luiz tem um conceito bem melhor do que eu dessa parte ). > - Advanced Search parecido com o form, o que muda s=E3o os = par=E2metros de > processamento >> ...que seriam? mesma coisa acima [...] > por=E9m temos que resolver antes de escrevermos os c=F3digos que = lidem=20 > com as interfaces, como ser=E1 feita essa integra=E7=E3o, desculpe mas = para=20 > mim n=E3o est=E1 muito claro, pois se formos usar algo que n=E0o seja = xsl,=20 > temos que entender como esse algo processar a defini=E7=E3o e gerar=E1 = > sa=EDdas distintas como htm, xml, wml, excel, csv, txt, etc. >> Juro que eu nao vejo a *menor* necessidade de pensar nisso agora - isso eh detalhe de implementacao, e se a >> gente nao ficar satisfeito com Velocity, podemos mudar facilmente pra outra tecnologia. Concordo. A parte de definicao ( xml/doclet/whatever ) eh bem mais importante.=20 [...] Rafael |
From: guilherme <gui...@su...> - 2003-10-02 00:25:03
|
as coisas já estão lá - pasta supero. vamos falando, guilherme |
From: Rafael S. <ra...@in...> - 2003-10-02 00:33:41
|
Mas nao por essa lista :) Rafael -----Mensagem original----- De: bla...@li... [mailto:bla...@li...] Em nome de guilherme Enviada em: quarta-feira, 1 de outubro de 2003 21:25 Para: bla...@li... Assunto: [Blake-devel] gm as coisas j=E1 est=E3o l=E1 - pasta supero. vamos falando, guilherme ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Blake-devel mailing list Bla...@li... https://lists.sourceforge.net/lists/listinfo/blake-devel |
From: guilherme <gui...@su...> - 2003-10-02 00:45:42
|
12 horas initerruptas na frente de um computador fazem agente embaralhar tudo oq vai pro nosso sistema de I/O ... foi malz On Wed, 2003-10-01 at 21:23, Rafael Steil wrote: > Mas nao por essa lista :) > > Rafael > > > -----Mensagem original----- > De: bla...@li... > [mailto:bla...@li...] Em nome de guilherme > Enviada em: quarta-feira, 1 de outubro de 2003 21:25 > Para: bla...@li... > Assunto: [Blake-devel] gm > > > as coisas já estão lá - pasta supero. > > vamos falando, > > guilherme > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf _______________________________________________ > Blake-devel mailing list > Bla...@li... > https://lists.sourceforge.net/lists/listinfo/blake-devel > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Blake-devel mailing list > Bla...@li... > https://lists.sourceforge.net/lists/listinfo/blake-devel > |