GWT-EXT: ¿Cuál es la mejor manera de colocar widgets en un ContentPanel específico después de un evento?

StackOverflow https://stackoverflow.com/questions/111854

  •  02-07-2019
  •  | 
  •  

Pregunta

primer post no me hagas daño :)

estoy usando un BorderLayout con los habituales paneles Norte, Oeste, Centro y Sur.Sobre el Oeste ContentPanel, Tengo un Tree.Si un evento (OnClick) ocurre. Quiero que se muestre un cuadro de diálogo en particular en la Centro ContentPanel.

¿Cuál es la mejor manera para mí de hacer esto?Actualmente estoy usando una función llamada returnPanel() que devuelve el centro ContentPanel.En el controlador de eventos llamo a esta función (MainWindow.returnPanel().add(myDialog)).

¿Fue útil?

Solución

La forma en que lo hace es intuitiva y funciona, pero comenzará a causar problemas cuando la aplicación crezca, porque las diferentes partes de la aplicación están fuertemente acopladas.Las soluciones a estos problemas son la patrón de diseño MVC y el patrón de diseño del observador.

Idealmente, al utilizar el patrón MVC, no desea que ningún widget "conozca" ningún otro widget.La única clase que conoce todos los widgets es el Controlador.Cada vez que un widget necesita enviar un mensaje/señalar a otro widget, se lo indica a la clase Controlador, que transmite el mensaje de la manera adecuada al widget apropiado.De esta forma, los dos widgets se desacoplan y uno puede cambiar sin romper el otro.Es posible que desee utilizar una enumeración para enumerar todas las acciones posibles a las que debe responder el controlador.

Si su widget tiene que llamar solo al Controlador cuando ocurre un evento, puede simplemente llamar a un método (estático) con el nombre adecuado y terminar con él.Sin embargo, tan pronto como sea necesario informar a otras clases de un evento, es mejor utilizar el patrón Observador, que le permite señalar a otras clases, sin cambiar su clase.Simplemente llama a notifyPObservers() en eventHandler y eso es todo.Cuántos oyentes hay y de qué tipo son, es irrelevante.De esta manera, también desacoplas una clase de sus oyentes.Incluso si sólo escucha el Controlador, puede ser recomendable utilizar el patrón, ya que separa claramente el código de 'devolución de llamada' del resto del código de las clases.

Por cierto, esto no tiene nada que ver con GWT o incluso con Java en particular.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top