package application.input;
import application.ApplicationModel;
import lang.ArgumentClosure;
import lang.Closure;
import view.Presenter;
import javax.inject.Inject;
public class InputPresenter implements Presenter {
private final InputView view;
private final ApplicationModel model;
@Inject
public InputPresenter(final InputView view, final ApplicationModel model) {
this.view = view;
this.model = model;
}
@Override
public void wireModelAndView(){
view.onChange(new ArgumentClosure<String>() {
@Override
public void execute(String argument) {
model.message(argument);
}
});
model.onChange(new Closure() {
@Override
public void execute() {
view.display(model.message());
}
});
}
}