Versión con UiBinder de Donate
Buenas, he commiteado la primera versión de donate con UiBinder No tengo claro si es correcto todo, seguro que se puede reducir el código más, pero yo no he sido capaz. Lo seguiré intentando. Por cierto, alguien se ha fijado de que el widget del kune-intro no se ve bien en IE, creo que es un tema de estilos. Si queréis puedo echarle un ojo. Me quedo a la espera de los comentarios de Vicente. Un saludo, -- Esteban Carreras Genis
El 26/06/11 12:53, Esteban Carreras Genis escribió:
Buenas,
he commiteado la primera versión de donate con UiBinder
No tengo claro si es correcto todo, seguro que se puede reducir el código más, pero yo no he sido capaz. Lo seguiré intentando.
Por cierto, alguien se ha fijado de que el widget del kune-intro no se ve bien en IE, creo que es un tema de estilos. Si queréis puedo echarle un ojo.
No, no sabia. Si es algo más de que no salgan las esquinas redondeadas, estaría guay que miraras y comentaras... yo no tengo IE a mano. Esta en /intro/ en el svn o igual con el firebug te bastas.
Me quedo a la espera de los comentarios de Vicente.
Vale, te comento. Para ser tu primer widget con UiBinder, no está naaaada mal (no se si lo hubiera hecho mejor así de primeras). De todas formas algún comentario: - Evita repetir código aquí y allá, por ejemplo todos los LNK_XXX_REGULAR_DONATION_XXX podrían generarse de forma que si cambia en algún momento el link, solo tienes que cambiar en un sitio. En cuanto veas algo similar o parecido evita el copy/paste. A la larga da mucho trabajo, es difícil de mantener, etc. Ya para nota (solo por comentarlo no hace falta que te pongas con ello): - Hay demasiado HTMLPanel probablemente se pueda simplificar. - Es demasiado monolítico se podría separar en pequeños objetos más sencillos de mantener (por ejemplo un botón y su lógica) y reusar, y que luego se juntan para formar el panel general. Aca: Divide y vencerás. En cualquier caso, lo dicho: no está nada mal para ser el primer contacto con UiBinder. Abrazos, Vicente
Buenas Vicente, ya está commiteado y solucionado la visualización en IE...era un span mal cerrado. Tambien he cambiado un acento que no se veía bien. lo que me gustaría ver es como se sube al server web...es decir el despliegue...si es posible claro...o a lo mejor es automático... Por otro lado sobre donate: gracias por tus comentarios, en serio que me ayudan un montón... - Sobre los links, tienes toda la razón, pero ya estaba un tanto cansado...y no se me ocurrió otra forma...jeje - Sobre los HTMLPanel, que me recomiendas??? FlowPanel? otro, más cosas dentro del Panel??? - No he conseguido ver como reutilizar los componentes, ya que UiBinder me obliga a que cada panel sea de un @UiField y estos sólo pueden ser únicos (o eso me dice eclipse) no sé si existe alguna forma de poder darles varios usos y/o varios comportamientos desde UiBinder... Un saludo, El 26 de junio de 2011 18:37, Vicente J. Ruiz Jurado <[email protected]>escribió:
El 26/06/11 12:53, Esteban Carreras Genis escribió:
Buenas,
he commiteado la primera versión de donate con UiBinder
No tengo claro si es correcto todo, seguro que se puede reducir el código más, pero yo no he sido capaz. Lo seguiré intentando.
Por cierto, alguien se ha fijado de que el widget del kune-intro no se ve bien en IE, creo que es un tema de estilos. Si queréis puedo echarle un ojo.
No, no sabia. Si es algo más de que no salgan las esquinas redondeadas, estaría guay que miraras y comentaras... yo no tengo IE a mano.
Esta en /intro/ en el svn o igual con el firebug te bastas.
Me quedo a la espera de los comentarios de Vicente.
Vale, te comento. Para ser tu primer widget con UiBinder, no está naaaada mal (no se si lo hubiera hecho mejor así de primeras). De todas formas algún comentario: - Evita repetir código aquí y allá, por ejemplo todos los LNK_XXX_REGULAR_DONATION_XXX podrían generarse de forma que si cambia en algún momento el link, solo tienes que cambiar en un sitio. En cuanto veas algo similar o parecido evita el copy/paste. A la larga da mucho trabajo, es difícil de mantener, etc. Ya para nota (solo por comentarlo no hace falta que te pongas con ello): - Hay demasiado HTMLPanel probablemente se pueda simplificar. - Es demasiado monolítico se podría separar en pequeños objetos más sencillos de mantener (por ejemplo un botón y su lógica) y reusar, y que luego se juntan para formar el panel general. Aca: Divide y vencerás.
En cualquier caso, lo dicho: no está nada mal para ser el primer contacto con UiBinder.
Abrazos,
Vicente
-- Esteban Carreras Genis
El 27/06/11 21:17, Esteban Carreras Genis escribió:
Buenas Vicente,
ya está commiteado y solucionado la visualización en IE...era un span mal cerrado. Tambien he cambiado un acento que no se veía bien. lo que me gustaría ver es como se sube al server web...es decir el despliegue...si es posible claro...o a lo mejor es automático...
Guuuuuuuay! ;) Te respondo sobre esto que acabo de llegar y es un pelín tarde. Para subir a la web suelo usar fabfile.py que hay en el raiz de intro. (apt-get install fabric) http://docs.fabfile.org/en/1.0.1/usage/fab.html Hago un fab deploy Pero básicamente el fabric hace un svn commit y en el servidor un svn update. Poco misterio. Lo único que en la intro no está muy muy fino (suelo compilar y hacer un poco de limpieza en el war). La intro se hizo hace poco en plan pin-pan-pun-pan... En otras webs el fabric es más currado, que si hazme el gettext de esto que si, hazme no se que y no se cuanto. Aquí es más simplón. Abrazotes, y gracias por el fix Vicente
El 27/06/11 21:17, Esteban Carreras Genis escribió:
- Sobre los links, tienes toda la razón, pero ya estaba un tanto cansado...y no se me ocurrió otra forma...jeje
Con que te salte la alarma de que algo no está del todo bien, de que algo huele raro: https://secure.wikimedia.org/wikipedia/en/wiki/Code_smell es suficiente, ya le pondrás solución cuando encuentres se te ocurra una forma mejor de hacerla. Con el tiempo, irás afinando y directamente se te ocurrirán directamente formas mejores de hacer las cosas. De todas formas, danigb que es el kung-fu-java-master igual tiene otros comentarios... También ten en cuenta que lo del donate la idea es que lo use cualquier proyecto que use kune, es decir, que active la posibilidad de donación para su proyecto, entonces, hay cosas que serán configurables por proyecto (no tiene que aparecer lo de comunes, por ejemplo, que era un punto de partida solo).
- Sobre los HTMLPanel, que me recomiendas??? FlowPanel? otro, más cosas dentro del Panel???
Yo estoy intentando usar FlowPanel siempre que puedo, y jugar con el "float"). Esto hace las cosas menos rígidas y que luego vía CSS se puedan cambiar cosas sin tocar el código (imagina que en una iniciativa que instala y usa Kune, quiere las cosas de otra forma con otro estilo).
- No he conseguido ver como reutilizar los componentes, ya que UiBinder me obliga a que cada panel sea de un @UiField y estos sólo pueden ser únicos (o eso me dice eclipse) no sé si existe alguna forma de poder darles varios usos y/o varios comportamientos desde UiBinder...
Mira, puedes crear un widget que sea tu botón de una determinada cantidad y de una determinada moneda. En UiBinder puedes incluir widgets de otros paquetes así: <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:ku="urn:import:cc.kune.PONAQUITUPAQUETE" xmlns:g="urn:import:com.google.gwt.user.client.ui"> y luego puedes decir <ku:MiBotonSexy currency="$" ammount="10" /> de todas formas esto te lo puede hacer el solito, en la parte de interfaz de UiBinder hay un botón de incluir otros widgets. Cualquier duda... Abrazotes, -- Vicente J. Ruiz Jurado http://comunes.org http://ourproject.org http://homes.ourproject.org/~vjrj/blog "No siempre he estado seguro de qué hacer, pero siempre he sabido lo que no debo hacer" [José Luís Sampedro, El País, 3 de abril de 2011]
El 28 de junio de 2011 14:52, Vicente J. Ruiz Jurado <[email protected]>escribió:
El 27/06/11 21:17, Esteban Carreras Genis escribió:
- Sobre los links, tienes toda la razón, pero ya estaba un tanto cansado...y no se me ocurrió otra forma...jeje
Con que te salte la alarma de que algo no está del todo bien, de que algo huele raro: https://secure.wikimedia.org/wikipedia/en/wiki/Code_smell es suficiente, ya le pondrás solución cuando encuentres se te ocurra una forma mejor de hacerla. Con el tiempo, irás afinando y directamente se te ocurrirán directamente formas mejores de hacer las cosas.
De todas formas, danigb que es el kung-fu-java-master igual tiene otros comentarios...
También ten en cuenta que lo del donate la idea es que lo use cualquier proyecto que use kune, es decir, que active la posibilidad de donación para su proyecto, entonces, hay cosas que serán configurables por proyecto (no tiene que aparecer lo de comunes, por ejemplo, que era un punto de partida solo).
- Sobre los HTMLPanel, que me recomiendas??? FlowPanel? otro, más cosas dentro del Panel???
Yo estoy intentando usar FlowPanel siempre que puedo, y jugar con el "float"). Esto hace las cosas menos rígidas y que luego vía CSS se puedan cambiar cosas sin tocar el código (imagina que en una iniciativa que instala y usa Kune, quiere las cosas de otra forma con otro estilo).
- No he conseguido ver como reutilizar los componentes, ya que UiBinder me obliga a que cada panel sea de un @UiField y estos sólo pueden ser únicos (o eso me dice eclipse) no sé si existe alguna forma de poder darles varios usos y/o varios comportamientos desde UiBinder...
Mira, puedes crear un widget que sea tu botón de una determinada cantidad y de una determinada moneda.
En UiBinder puedes incluir widgets de otros paquetes así:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:ku="urn:import:cc.kune.PONAQUITUPAQUETE" xmlns:g="urn:import:com.google.gwt.user.client.ui">
y luego puedes decir <ku:MiBotonSexy currency="$" ammount="10" /> de todas formas esto te lo puede hacer el solito, en la parte de interfaz de UiBinder hay un botón de incluir otros widgets.
Cualquier duda...
Abrazotes, -- Vicente J. Ruiz Jurado
http://comunes.org http://ourproject.org http://homes.ourproject.org/~vjrj/blog
"No siempre he estado seguro de qué hacer, pero siempre he sabido lo que no debo hacer" [José Luís Sampedro, El País, 3 de abril de 2011]
-- Esteban Carreras Genis
El 28 de junio de 2011 14:52, Vicente J. Ruiz Jurado <[email protected]>escribió:
El 27/06/11 21:17, Esteban Carreras Genis escribió:
- Sobre los links, tienes toda la razón, pero ya estaba un tanto cansado...y no se me ocurrió otra forma...jeje
Con que te salte la alarma de que algo no está del todo bien, de que algo huele raro: https://secure.wikimedia.org/wikipedia/en/wiki/Code_smell es suficiente, ya le pondrás solución cuando encuentres se te ocurra una forma mejor de hacerla. Con el tiempo, irás afinando y directamente se te ocurrirán directamente formas mejores de hacer las cosas.
De todas formas, danigb que es el kung-fu-java-master igual tiene otros comentarios...
También ten en cuenta que lo del donate la idea es que lo use cualquier proyecto que use kune, es decir, que active la posibilidad de donación para su proyecto, entonces, hay cosas que serán configurables por proyecto (no tiene que aparecer lo de comunes, por ejemplo, que era un punto de partida solo).
Ok usea entiendo que la idea es crear pequeños widgets que luego sean configurables para otros proyectos????
- Sobre los HTMLPanel, que me recomiendas??? FlowPanel? otro, más cosas dentro del Panel???
Yo estoy intentando usar FlowPanel siempre que puedo, y jugar con el "float"). Esto hace las cosas menos rígidas y que luego vía CSS se puedan cambiar cosas sin tocar el código (imagina que en una iniciativa que instala y usa Kune, quiere las cosas de otra forma con otro estilo).
Ok, cambiaré los HTLMPanel por FlowPanel, espero reducir algo el widget
- No he conseguido ver como reutilizar los componentes, ya que UiBinder me obliga a que cada panel sea de un @UiField y estos sólo pueden ser únicos (o eso me dice eclipse) no sé si existe alguna forma de poder darles varios usos y/o varios comportamientos desde UiBinder...
Mira, puedes crear un widget que sea tu botón de una determinada cantidad y de una determinada moneda.
En UiBinder puedes incluir widgets de otros paquetes así:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:ku="urn:import:cc.kune.PONAQUITUPAQUETE" xmlns:g="urn:import:com.google.gwt.user.client.ui">
y luego puedes decir <ku:MiBotonSexy currency="$" ammount="10" /> de todas formas esto te lo puede hacer el solito, en la parte de interfaz de UiBinder hay un botón de incluir otros widgets.
Lo dicho, entiendo que para la reutilización debo hacer componentes más pequeños, como los botones, y permitir más opciones de configuración para que puedan poner otros links para paypal con el objetivo de obtener donaciones para sus proyectos, así como poder cambiar los textos, etc...es así???
Cualquier duda...
Abrazotes, -- Vicente J. Ruiz Jurado
http://comunes.org http://ourproject.org http://homes.ourproject.org/~vjrj/blog
"No siempre he estado seguro de qué hacer, pero siempre he sabido lo que no debo hacer" [José Luís Sampedro, El País, 3 de abril de 2011]
-- Esteban Carreras Genis
El 28/06/11 23:35, Esteban Carreras Genis escribió:
Lo dicho, entiendo que para la reutilización debo hacer componentes más pequeños, como los botones, y permitir más opciones de configuración para que puedan poner otros links para paypal con el objetivo de obtener donaciones para sus proyectos, así como poder cambiar los textos, etc...es así???
Sí, piensa en objetos y en como se comportarían solitos. O imagina que más adelante hacemos un formulario dinámico y tenenos que añadir esos botones bajo demanda. al tenerlo dividido se puede reusar más cómodamente y también aclara el código. Ánimos, -- Vicente J. Ruiz Jurado http://comunes.org http://ourproject.org http://homes.ourproject.org/~vjrj/blog "La duda es uno de los nombres de la inteligencia." [J.L. Borges]
Buenas Vicente, estoy con el tema de crear un widget para la operativa de los botones de donate... La parte de crear el widget del botón con UiBinder la tengo clara, tambien la de enlazarlo en el UiBinder del widget general de Donate, sin embargo, no tengo nada claro como codificar para que el widget del boton obtenga los valores de sus componentes desde el UiBinder... Me explico: <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:ku="urn:import:cc.kune.sandbox.donate.client" xmlns:g="urn:import:com.google.gwt.user.client.ui"> <ku:DonateButton ui:field="btnDontation" url=" http://algunadir.com" text="Texto botón" /> </ui:UiBinder> Las propiedades url y texto botón no se como recogerlas en los widgets...Por ahora lo estoy solucionando con un UiField de tipo DonateButton y fijando los valores del link que tengo dentro de este pero creo que de la otra forma sería más chulo :D Un saludo y gracias por adelantado,
El 30/06/11 01:10, Esteban Carreras Genis escribió:
<ku:DonateButton ui:field="btnDontation" url="http://algunadir.com" text="Texto botón" />
Vale, si no me equivoco, si todo lo que hagas <ku: ... noseque="kk"> el va GWT va a llamar a setNoseque(String value). Creo que es lo que buscas. Abrazotes, -- Vicente J. Ruiz Jurado http://comunes.org http://ourproject.org http://homes.ourproject.org/~vjrj/blog "If you want to kill any idea in the world today, get a committee working on it." [Charles F. Kettering]
Gracias Vicente, era exactamente lo que buscaba. He subido una versión con el i18n completo, desglosado en algún widget más, con menos código y más personalizable (aunque a esto último tengo que darle un vuelta grande, que al final se me ha ido la cabeza un poco)... Un saludo, El 30 de junio de 2011 01:24, Vicente J. Ruiz Jurado <[email protected]>escribió:
El 30/06/11 01:10, Esteban Carreras Genis escribió:
<ku:DonateButton ui:field="btnDontation" url="http://algunadir.com" text="Texto botón" />
Vale, si no me equivoco, si todo lo que hagas <ku: ... noseque="kk"> el va GWT va a llamar a setNoseque(String value). Creo que es lo que buscas.
Abrazotes, -- Vicente J. Ruiz Jurado
http://comunes.org http://ourproject.org http://homes.ourproject.org/~vjrj/blog
"If you want to kill any idea in the world today, get a committee working on it." [Charles F. Kettering]
-- Esteban Carreras Genis
El 01/07/11 03:06, Esteban Carreras Genis escribió:
Gracias Vicente, era exactamente lo que buscaba.
He subido una versión con el i18n completo, desglosado en algún widget más, con menos código y más personalizable (aunque a esto último tengo que darle un vuelta grande, que al final se me ha ido la cabeza un poco)...
Un saludo,
Hola Esteban: Perdona por el retraso en responder. Pues la verdad que veo que has avanzando bastante y que lo vas limando bastante. Muy bien. Tener clases pequeñitas, fáciles de entender y que no tengas que scrollear o casi es buena señal (compara con el principio). Lo de personalizar, quizás es algo que le debemos dar una pensada juntos, es decir, pensar en las necesidades (que cada proyecto pueda activar una zona de "donaciones") y ver como implementarlo. Me he perdido con la parte de DonateConstants, quizás con un String static te hubiese bastado ¿no? Mira, luego otra cosa interesante ya que estás poniéndote las botas con los patrones es que empieces en algún momento a pensar e implementar usando el MVC: https://secure.wikimedia.org/wikipedia/es/wiki/Modelo_Vista_Controlador Si te fijas en ButtonsPanel hay lógica y al ser un Panel lo suyo sería que solo tuviese cosas de UI, y lo mínimo mínimo. Es decir, donde va cada cosa, como cambiarle valores y poco más. Incluso los handlers se pueden sacar al controlador: http://www.nieleyde.org/SkywayBlog/post.htm?postid=e49efd5b-31c8-423f-9fff-9... Esto entre otras cosas lo que te hace es que tengas todo lo complicado, la lógica, bien delimitada en una clase, y que la puedas probar bien (con JUnit y similares), etc. Probar programáticamente el Widget (con el Panel) es más coñazo y cuesta mucho hacerlo (a veces tienes incluso que arrancar un navegador o un emulador). No se si me explico. Así que te invito si quieres a quitar toda la lógica de ButtonsPanel y a que a tu nuevo ButtonsPresenter, le añadas tests con Junit para estar seguro de que hace lo que tiene que hacer. En cualquier caso, muy bien Esteban, -- Vicente
Buenas Vicente, estoy de vuelta...se que ha pasado bastante tiempo...pero estoy haciendo un esfuerzo grande para retomar el tema de Donate... Voy a echarle un vistazo a estos comentarios para ver el camino que debe seguir donate... Cualquier consideración adicional no dudes en comentarmela... Un saludo, El 14 de julio de 2011 16:25, Vicente J. Ruiz Jurado <[email protected]>escribió:
El 01/07/11 03:06, Esteban Carreras Genis escribió:
Gracias Vicente, era exactamente lo que buscaba.
He subido una versión con el i18n completo, desglosado en algún widget más, con menos código y más personalizable (aunque a esto último tengo que darle un vuelta grande, que al final se me ha ido la cabeza un poco)...
Un saludo,
Hola Esteban:
Perdona por el retraso en responder.
Pues la verdad que veo que has avanzando bastante y que lo vas limando bastante. Muy bien. Tener clases pequeñitas, fáciles de entender y que no tengas que scrollear o casi es buena señal (compara con el principio).
Lo de personalizar, quizás es algo que le debemos dar una pensada juntos, es decir, pensar en las necesidades (que cada proyecto pueda activar una zona de "donaciones") y ver como implementarlo. Me he perdido con la parte de DonateConstants, quizás con un String static te hubiese bastado ¿no?
Mira, luego otra cosa interesante ya que estás poniéndote las botas con los patrones es que empieces en algún momento a pensar e implementar usando el MVC: https://secure.wikimedia.org/wikipedia/es/wiki/Modelo_Vista_Controlador
Si te fijas en ButtonsPanel hay lógica y al ser un Panel lo suyo sería que solo tuviese cosas de UI, y lo mínimo mínimo. Es decir, donde va cada cosa, como cambiarle valores y poco más. Incluso los handlers se pueden sacar al controlador:
http://www.nieleyde.org/SkywayBlog/post.htm?postid=e49efd5b-31c8-423f-9fff-9...
Esto entre otras cosas lo que te hace es que tengas todo lo complicado, la lógica, bien delimitada en una clase, y que la puedas probar bien (con JUnit y similares), etc. Probar programáticamente el Widget (con el Panel) es más coñazo y cuesta mucho hacerlo (a veces tienes incluso que arrancar un navegador o un emulador). No se si me explico.
Así que te invito si quieres a quitar toda la lógica de ButtonsPanel y a que a tu nuevo ButtonsPresenter, le añadas tests con Junit para estar seguro de que hace lo que tiene que hacer.
En cualquier caso, muy bien Esteban,
-- Vicente
-- Esteban Carreras Genis
El 23/10/11 18:27, Esteban Carreras Genis escribió:
Buenas Vicente,
estoy de vuelta...se que ha pasado bastante tiempo...pero estoy haciendo un esfuerzo grande para retomar el tema de Donate...
Voy a echarle un vistazo a estos comentarios para ver el camino que debe seguir donate...
Cualquier consideración adicional no dudes en comentarmela...
Un saludo,
Hola Esteban: Me parece muy bien... yo creo que estás llegando a un punto de conocimientos (de GWT, etc) que podríamos intentar abordar el donate ya realmente funcional e integrarlo en Kune. Creo que sería muy interesante para que cada grupo pudiera activarse esta funcionalidad. Lo que podemos hacer es: - hablar de esto en detalle en una semana (esta semana la tengo complicada, así que tendría que ser al comienzo de la próxima). - trabajar conjuntamente en esto (no en solitario). Así la cosa es mucho más amena. No corre prisa así que es algo que podemos hacer al ritmo que nos de la gana. Bueno, es una propuesta de acometer esto que se me ocurre, pero podría seguir otra. Un abrazote, Vicente
Buenas Vicente, me parece perfecto, será un placer trabajar en equipo...la semana que viene retomamos el asunto, cuando tu me digas... Un saludo, El 23 de octubre de 2011 19:24, Vicente J. Ruiz Jurado <[email protected]>escribió:
El 23/10/11 18:27, Esteban Carreras Genis escribió:
Buenas Vicente,
estoy de vuelta...se que ha pasado bastante tiempo...pero estoy haciendo un esfuerzo grande para retomar el tema de Donate...
Voy a echarle un vistazo a estos comentarios para ver el camino que debe seguir donate...
Cualquier consideración adicional no dudes en comentarmela...
Un saludo,
Hola Esteban:
Me parece muy bien... yo creo que estás llegando a un punto de conocimientos (de GWT, etc) que podríamos intentar abordar el donate ya realmente funcional e integrarlo en Kune.
Creo que sería muy interesante para que cada grupo pudiera activarse esta funcionalidad.
Lo que podemos hacer es: - hablar de esto en detalle en una semana (esta semana la tengo complicada, así que tendría que ser al comienzo de la próxima). - trabajar conjuntamente en esto (no en solitario). Así la cosa es mucho más amena. No corre prisa así que es algo que podemos hacer al ritmo que nos de la gana.
Bueno, es una propuesta de acometer esto que se me ocurre, pero podría seguir otra.
Un abrazote,
Vicente
-- Esteban Carreras Genis
participants (2)
-
Esteban Carreras Genis -
Vicente J. Ruiz Jurado