我试图在模型更改时将事件通知给我的视图。 我的模型已经扩展了另一个类(来自JADE平台的代理),所以我不能使用Observale。我不想做真正的MVC,只是想从我的模型中触发事件并改变我的观点。在我的案例中只有一个视图,模型,控制器。
模型
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);
}
}
查看
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');
}
}
我的控制器
public class SeekerController {
private final AgentSeeker model;
private final AgentSeekerView view;
public SeekerController(AgentSeeker model, AgentSeekerView view) {
this.model = model;
this.view = view;
}
}
当我将音乐添加到我的音乐购买列表中时,我想从视图中将此音乐添加到我的TextBuffer中。