Vaadin에 새로운 기능이있어서 문제가 있습니다.Vaadin MVP 버튼이 작동하지 않음
나는 이것을 시도했습니다 : https://vaadin.com/web/magi/home/-/blogs/model-view-presenter-pattern-with-vaadin 및 예제 응용 프로그램은 괜찮습니다. 그러나 비슷한 것을 만들려고 할 때 저를 위해 작동하지 않습니다.
간단한 로그인 양식 (로그인, 비밀번호 입력란 및 버튼 하나)이 있습니다. 그리고 버튼에 문제가 있습니다. 그것은 유발되지 않습니다. 클릭 할 수 있지만 작업이 시작되지 않았습니다.
public interface LoginView {
public void getNotification(String text);
interface LoginViewListener{
void loginButtonClick(String login, String password);
}
public void addListener(LoginViewListener listener);
}
public class LoginViewImpl extends CustomComponent implements LoginView,Button.ClickListener {
private TextField loginField = new TextField();
private PasswordField passwordField = new PasswordField();
private Label loginLabel = new Label("Login:");
private Label passwordLabel = new Label("Password:");
private Button loginButton = new Button("Login");
LoginViewListener listener;
public LoginViewImpl(){
VerticalLayout layout = new VerticalLayout();
layout.setSizeFull();
layout.addComponent(loginLabel);
layout.addComponent(loginField);
layout.addComponent(passwordLabel);
layout.addComponent(passwordField);
layout.addComponent(loginButton);
setCompositionRoot(layout);
}
public void getNotification(String text){
Notification.show(text);
}
@Override
public void buttonClick(Button.ClickEvent event) {
listener.loginButtonClick("jeden","dwa");
}
public void addListener(LoginViewListener listener) {
this.listener = listener;
}
}
public class LoginModel {
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String login;
private String password;
}
public class LoginPresenter implements LoginView.LoginViewListener {
LoginModel model;
LoginView view;
public LoginPresenter(LoginModel model, LoginView view){
this.model = model;
this.view = view;
view.addListener(this);
}
@Override
public void loginButtonClick(String login, String password) {
view.getNotification(login + " " + password);
}
}
@SpringUI(path = "")
public class MainClass extends UI {
@Override
protected void init(VaadinRequest request) {
LoginModel model = new LoginModel();
LoginViewImpl view = new LoginViewImpl();
new LoginPresenter(model, view);
VerticalLayout layout = new VerticalLayout();
layout.setSizeFull();
layout.addComponent(view);
setContent(layout);
}
}
당신이 뭐가 잘못 됐는지 말해 줄 수 : 여기
내 코드? :(
addClickListener() is missing – d2k2