How can i do OnClick with List of Buttons. I know that OnClick work only with Button, but on the page i will have a lot of buttons. I need to do next -> If the clicked value is equal or less than 30, present X new random numbers on the screen 9. If the clicked value is more than 30, pop up a message “Please select a value smaller or equal to 30.” But i cant because i dont know how take Button to OnClick from VerticalPannel
@Override
public void onModuleLoad() {
VerticalPanel mainButtons = new VerticalPanel();
VerticalPanel buttonPanel = new VerticalPanel();
Button sendButton = new Button("Enter");
Button sortButton = new Button("Sort");
Button resetButton = new Button("Reset");
List<Button> buttons = new ArrayList<>();
TextBox numberField = new TextBox();
mainButtons.add(sortButton);
mainButtons.add(resetButton);
mainButtons.add(buttonPanel);
RootPanel.get("nameFieldContainer").add(numberField);
RootPanel.get("sendButtonContainer").add(sendButton);
sendButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if(numberField.getText()!= null && !numberField.getText().equals(" ")) {
int numberOfButtons = Integer.parseInt(numberField.getText());
for(int i = 0; i < numberOfButtons; i++){
int randomNumber = (int) (Math.random() * 1000);
buttons.add(new Button(randomNumber + ""));
}
for(Button button: buttons){
buttonPanel.add(button);
}
RootPanel.get("mainButtons").add(mainButtons);
DOM.getElementById("intro").getStyle().setDisplay(Style.Display.NONE);
DOM.getElementById("mainButtons").getStyle().setDisplay(Style.Display.BLOCK);
}
}
});