Java - Generalización y reutilización fallida

 
Vista:
Imágen de perfil de Damian
Val: 5
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Generalización y reutilización fallida

Publicado por Damian (5 intervenciones) el 02/05/2017 16:12:13
Hola Gente de la web del Programador !!!
Necesito un poco de ayuda con lo siguiente:
Tengo unas ventanas diseñadas en un esquema MDI de desarrollo.
Tengo mi JFrame principal con un menú básico y una barra de herramientas.
También tengo 3 JInternalFrame, uno para las acciones de grabación en base de datos, otro para los informes y listados y el tercero para búsquedas y consultas varias.
Tengo definidos varios módulos que van colocados en diferentes oficinas de una empresa. Por ejemplo, el módulo de ventas, el módulo de compras y stock, el módulo contable, etc.
Lo que quiero hacer es que cada vez que empiezo a desarrollar un módulo nuevo, pueda elegir de la paleta de componentes el JFrame principal que yo diseñé, con mi menú base y mi barra de tareas para que esa sea mi ventana principal. Y también poder seleccionar los JInternalFrames que yo diseñé según lo que tenga que hacer (un abm, un listado o una consulta).
Hasta acá lo que quiero hacer. Ahora les cuento lo que probé hacer.
Lo primero que probé fue heredar (extender) directamente de mis objetos por el código. Creo una clase de java, extiendo de mi ventana principal y... El problema que encontré es que no me abre la solapa de diseño para poder modificar la interfaz gráfica y agregar y ubicar en pantalla los componentes que necesito (JLabels y JTextFields por ejemplo o el resto del menú específico del módulo).
Después, generé la JFrame como siempre en java. Entré en la solapa de source y le cambi;e la herencia (extends) del JFrame y mi ventana principal. Ahora veo la solapa de diseño, pero no veo nada de los menús y barra de herramientas que tengo en mi ventana padre.
Después de eso, grabé mis ventanas base (o padre) como "template". Esto me funcionó bien hasta que tuve que modificar algo en mi diseño. Por ejemplo, tuve que agregar un botón en la barra de herramientas. Volví a grabar como "template" y todas las pantallas que habían heredado de las pantallas antes de la modificación no se enteraron que había modificado algo.
Hay alguna manera de hacer esto sin morir en el intento o sacrificar infinitas horas rehaciendo todo lo hecho???
Desde ya, muchas gracias !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Generalización y reutilización fallida

Publicado por Tom (1831 intervenciones) el 02/05/2017 18:15:09
Parece algo bastante complejo ... y además, no comentas qué IDE usas ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Damian
Val: 5
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Generalización y reutilización fallida

Publicado por Damian (5 intervenciones) el 03/05/2017 16:20:17
Hola Tom !!
Es cierto, es un poco complejo.
El IDE que uso en este momento es el NetBeans 8.2.
Pero no creo que lo que quiero hacer dependa del IDE que uso.
Si hay alguna solución para otro IDE, no tengo problemas en cambiarlo.
Uso el NetBeans porque me pareció el más amigable a la hora de diseñar ventanas y componentes visuales.
Si querés que lo explique más simple, te lo cuento de otra manera: estoy tratando de desarrollar mi propio framework.
Esto no lo hago por gusto, sino porque la empresa para la que trabajo no quiere usar los frameworks que están en el mercado para sistemas MDI porque no cumplen con los requerimientos que la empresa necesita. Algunos requerimientos son de imagen y otros son de operatividad.
Y estamos en un proceso de recambio de todos los sistemas desde PowerBuilder a Java.
Gracias por el comentario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Generalización y reutilización fallida

Publicado por Tom (1831 intervenciones) el 04/05/2017 09:27:52
Lo que comentas en tu primer post, es 100% dependiente del IDE que uses.
Que yo sepa, el jdk no tiene herramientas, ni soporte para paletas de componentes, importar código fuente, y cosas así.
Por ejemplo, en Netbeans, cuando usas el diseñador gráfico se generan unos ficheros '.form' (si no recuerdo mal) que contienen la info necesaria para el propio diseñador. Por eso, aunque tu importes correctamente el código de un módulo a otro, no podrás usar el diseñador, porque no tienes los .form correctos (o no tienes ninguno).

Lo que necesitarías es, en mi opinión, poner tus componentes reutilizables en la paleta de componentes de Netbeans (y, por supuesto, bucear un poco por la documentación de Netbeans).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Damian
Val: 5
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Generalización y reutilización fallida

Publicado por Damian (5 intervenciones) el 04/05/2017 16:16:02
Muchas gracias por tu respuesta, Tom !!
Ya puse mis componentes en la paleta del NetBeans.
El problema que tengo con eso es que cuando modifico algo en mis componentes padres (agrego un botón en la barra de herramientas de mi componente de ventana principal o agrego un método o un nuevo campo o atributo a mi componente de ventana de abm), tengo que volver a colocar el componente en la barra de componentes NetBeans y tengo que volver a hacer las ventanas principales o las ventanas de abm porque si no lo hago, no se enteran de las modificaciones que hice a los componentes padre.
El asunto no es que las abro y las grabo y ya está. Las tengo que volver a hacer.
Por eso preguntaba si tenemos que cambiar de IDE o cualquier otra sugerencia que me pueda servir para solucionar este problema.
Hasta ahora, trabajando con PowerBuider, cuando se ajusta código o diseño visual de los objetos padre, las modificaciones se propagan automáticamente a todos los objetos hijos. Lo único que hay que hacer es recompilar los ejecutables y... Listo !!!

Bueno, eso. Quería saber si se puede hacer algo así en Java. Con cualquier IDE.
Estoy en etapa de diseño y me piden modificar las cosas cada 3 o 4 días.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar