He resuelto el problema !!!!!! Aunque el debugger no devolvía errores sintácticos si que los había de lógica. La aplicación se ejecutaba sin problemas. Por eso no vi el error hasta que revisé en que punto la aplicación se perdía en el "intercambio de mensajes".
Vi que el addActionListener y ActionPerformed del botón funcionaba... Pero cuando la instancia del controlador iba a invocar el cambio de propiedad el debugger ya no entraba en el método:
Código PHP:
// Invoca cambio en UserViewPanel.java
controller.changeUserName(txtNewName.getText());
// No entraba en UserController.java
public void changeUserName(String newUserName) {
setModelProperty(USER_NAME_PROPERTY, newUserName);
}
Al ver esto entendí que el error tenía que ser anterior, incluso al actionlistener... El error estaba en la clase... Concretamente en el constructor, donde en vez de pasarle el argumento le hice al controlador una referencia a sí mismo:
Código PHP:
// Yo hice esto
public UserViewPanel(UserController userController) {
this.controller = controller;
this.initComponents();
}
// Y lo correcto era esto
public UserViewPanel(UserController userController) {
this.controller = userController;
this.initComponents();
}
Como dije, era una chorrada... un lápsus al poner mal una variable. Vamos lo típico. Ahora estoy feliz, de haberlo hecho y comprendido.
Lanzo una pregunta... ¿ Programaríais de esta forma vuestra aplicación ? El artículo de oracle sobre este MVC es del 2007 y no sé si hoy día directamente ustedes que son los que saben ni se plantearían empezar así una aplicación ¿ o de que forma mejorarían este ?
Muchas gracias :D