I'm trying to notify event to my view when my model change. My model already extends another class (Agent from JADE platform) so I can't use Observale. I don't want to do true MVC, just want to trigger an event from my model and change my view. Only one view, model, controller in my case.
Model
public class AgentSeeker extends Agent {
private List<Music> musicsPurchased = new ArrayList<Music>();
private List<ScoredMusic> musicsToBuy = new ArrayList<ScoredMusic>();
public void buyMusic(ScoredMusic sm) {
Music music = sm.getMusic();
musicsPurchased.add(music);
musicsToBuy.remove(sm);
}
}
View
public class AgentSeekerView extends AbstractAgentView {
TextView textViewMusicPurchased;
public AgentSeekerView() {
super("AgentSeeker.glade");
}
protected void initComposant() {
super.initComposant();
textViewMusicPurchased = (TextView) builder.getObject("music_purchased");
}
public void addMusicPurchasedToConsole(String music) {
TextBuffer textBuffer = textViewMusicPurchased.getBuffer();
textBuffer.insert(textBuffer.getIterEnd(), music + '\n');
}
}
My controller
public class SeekerController {
private final AgentSeeker model;
private final AgentSeekerView view;
public SeekerController(AgentSeeker model, AgentSeekerView view) {
this.model = model;
this.view = view;
}
}
When I add music to my musicsPurchased list, I want to add this music to my TextBuffer from the view too.