How to enable a button when filling a textfield with VAADIN

Multi tool use
up vote
0
down vote
favorite
I work with Vaadin. I have a text field and a button. My button is initially disabled. When my text field is filled with valid data my button must activate. I can not activate my button. Could you help me ? Thank you
public static DynTextField createFromElement(Element elt, DynForm form) {
if (elt.getNodeName().equals("param") && elt.getAttribute("type").equals("TEXT")) {
DynTextField dtf = new DynTextField();
dtf.setForm(form);
if (elt.hasAttribute("texte"))
dtf.setCaption(elt.getAttribute("texte"));
dtf.nom = elt.getAttribute("nom");
if (elt.hasAttribute("FORMAT"))
dtf.setFormat(elt.getAttribute("FORMAT"));
dtf.setDescription(elt.getAttribute("description"));
dtf.setStyleName("param" + (elt.hasAttribute("class") ? elt.getAttribute("class") : ""));
return dtf;
} else
return null;
}
private void setFormat(String attribute) {
binder = new Binder<>();
binder.forField(this).withValidator(new RegexpValidator("Saisie obligatoire !!", attribute)).asRequired("Format Erroné").bind(No.getter(), No.setter());
//new Binder<>().forField(this).withValidator(new RegexpValidator(attribute, "Format Erroné")).asRequired();
}
// convenience empty getter and setter implementation for better readability
public static class No {
public static <SOURCE, TARGET> ValueProvider<SOURCE, TARGET> getter() {
return source -> null;
}
public static <BEAN, FIELDVALUE> Setter<BEAN, FIELDVALUE> setter() {
return (bean, fieldValue) -> {
//no op
};
}
}
The program that creates my button. This is where I would like to make my button active.
public DynButton(DynForm form, String as400PGMName, String parameterList) {
super(VaadinIcons.CHECK);
this.as400PGMName = as400PGMName;
if (parameterList.length == 1 && parameterList[0].equals(""))
this.parameterList = new String {};
else
this.parameterList = parameterList;
this.form = form;
addClickListener(event -> {
fireClickEvent(event);
});
addClickListener(this);
impl = new DynComponentImpl();
//boutton initially disable
this.setEnabled(isActif());
}
java vaadin
add a comment |
up vote
0
down vote
favorite
I work with Vaadin. I have a text field and a button. My button is initially disabled. When my text field is filled with valid data my button must activate. I can not activate my button. Could you help me ? Thank you
public static DynTextField createFromElement(Element elt, DynForm form) {
if (elt.getNodeName().equals("param") && elt.getAttribute("type").equals("TEXT")) {
DynTextField dtf = new DynTextField();
dtf.setForm(form);
if (elt.hasAttribute("texte"))
dtf.setCaption(elt.getAttribute("texte"));
dtf.nom = elt.getAttribute("nom");
if (elt.hasAttribute("FORMAT"))
dtf.setFormat(elt.getAttribute("FORMAT"));
dtf.setDescription(elt.getAttribute("description"));
dtf.setStyleName("param" + (elt.hasAttribute("class") ? elt.getAttribute("class") : ""));
return dtf;
} else
return null;
}
private void setFormat(String attribute) {
binder = new Binder<>();
binder.forField(this).withValidator(new RegexpValidator("Saisie obligatoire !!", attribute)).asRequired("Format Erroné").bind(No.getter(), No.setter());
//new Binder<>().forField(this).withValidator(new RegexpValidator(attribute, "Format Erroné")).asRequired();
}
// convenience empty getter and setter implementation for better readability
public static class No {
public static <SOURCE, TARGET> ValueProvider<SOURCE, TARGET> getter() {
return source -> null;
}
public static <BEAN, FIELDVALUE> Setter<BEAN, FIELDVALUE> setter() {
return (bean, fieldValue) -> {
//no op
};
}
}
The program that creates my button. This is where I would like to make my button active.
public DynButton(DynForm form, String as400PGMName, String parameterList) {
super(VaadinIcons.CHECK);
this.as400PGMName = as400PGMName;
if (parameterList.length == 1 && parameterList[0].equals(""))
this.parameterList = new String {};
else
this.parameterList = parameterList;
this.form = form;
addClickListener(event -> {
fireClickEvent(event);
});
addClickListener(this);
impl = new DynComponentImpl();
//boutton initially disable
this.setEnabled(isActif());
}
java vaadin
The first program that allows me to fill a valid field
– woodson
yesterday
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I work with Vaadin. I have a text field and a button. My button is initially disabled. When my text field is filled with valid data my button must activate. I can not activate my button. Could you help me ? Thank you
public static DynTextField createFromElement(Element elt, DynForm form) {
if (elt.getNodeName().equals("param") && elt.getAttribute("type").equals("TEXT")) {
DynTextField dtf = new DynTextField();
dtf.setForm(form);
if (elt.hasAttribute("texte"))
dtf.setCaption(elt.getAttribute("texte"));
dtf.nom = elt.getAttribute("nom");
if (elt.hasAttribute("FORMAT"))
dtf.setFormat(elt.getAttribute("FORMAT"));
dtf.setDescription(elt.getAttribute("description"));
dtf.setStyleName("param" + (elt.hasAttribute("class") ? elt.getAttribute("class") : ""));
return dtf;
} else
return null;
}
private void setFormat(String attribute) {
binder = new Binder<>();
binder.forField(this).withValidator(new RegexpValidator("Saisie obligatoire !!", attribute)).asRequired("Format Erroné").bind(No.getter(), No.setter());
//new Binder<>().forField(this).withValidator(new RegexpValidator(attribute, "Format Erroné")).asRequired();
}
// convenience empty getter and setter implementation for better readability
public static class No {
public static <SOURCE, TARGET> ValueProvider<SOURCE, TARGET> getter() {
return source -> null;
}
public static <BEAN, FIELDVALUE> Setter<BEAN, FIELDVALUE> setter() {
return (bean, fieldValue) -> {
//no op
};
}
}
The program that creates my button. This is where I would like to make my button active.
public DynButton(DynForm form, String as400PGMName, String parameterList) {
super(VaadinIcons.CHECK);
this.as400PGMName = as400PGMName;
if (parameterList.length == 1 && parameterList[0].equals(""))
this.parameterList = new String {};
else
this.parameterList = parameterList;
this.form = form;
addClickListener(event -> {
fireClickEvent(event);
});
addClickListener(this);
impl = new DynComponentImpl();
//boutton initially disable
this.setEnabled(isActif());
}
java vaadin
I work with Vaadin. I have a text field and a button. My button is initially disabled. When my text field is filled with valid data my button must activate. I can not activate my button. Could you help me ? Thank you
public static DynTextField createFromElement(Element elt, DynForm form) {
if (elt.getNodeName().equals("param") && elt.getAttribute("type").equals("TEXT")) {
DynTextField dtf = new DynTextField();
dtf.setForm(form);
if (elt.hasAttribute("texte"))
dtf.setCaption(elt.getAttribute("texte"));
dtf.nom = elt.getAttribute("nom");
if (elt.hasAttribute("FORMAT"))
dtf.setFormat(elt.getAttribute("FORMAT"));
dtf.setDescription(elt.getAttribute("description"));
dtf.setStyleName("param" + (elt.hasAttribute("class") ? elt.getAttribute("class") : ""));
return dtf;
} else
return null;
}
private void setFormat(String attribute) {
binder = new Binder<>();
binder.forField(this).withValidator(new RegexpValidator("Saisie obligatoire !!", attribute)).asRequired("Format Erroné").bind(No.getter(), No.setter());
//new Binder<>().forField(this).withValidator(new RegexpValidator(attribute, "Format Erroné")).asRequired();
}
// convenience empty getter and setter implementation for better readability
public static class No {
public static <SOURCE, TARGET> ValueProvider<SOURCE, TARGET> getter() {
return source -> null;
}
public static <BEAN, FIELDVALUE> Setter<BEAN, FIELDVALUE> setter() {
return (bean, fieldValue) -> {
//no op
};
}
}
The program that creates my button. This is where I would like to make my button active.
public DynButton(DynForm form, String as400PGMName, String parameterList) {
super(VaadinIcons.CHECK);
this.as400PGMName = as400PGMName;
if (parameterList.length == 1 && parameterList[0].equals(""))
this.parameterList = new String {};
else
this.parameterList = parameterList;
this.form = form;
addClickListener(event -> {
fireClickEvent(event);
});
addClickListener(this);
impl = new DynComponentImpl();
//boutton initially disable
this.setEnabled(isActif());
}
java vaadin
java vaadin
asked yesterday
woodson
12
12
The first program that allows me to fill a valid field
– woodson
yesterday
add a comment |
The first program that allows me to fill a valid field
– woodson
yesterday
The first program that allows me to fill a valid field
– woodson
yesterday
The first program that allows me to fill a valid field
– woodson
yesterday
add a comment |
1 Answer
1
active
oldest
votes
up vote
4
down vote
You can do it with a listener on either the text field or the binder
textField.addValueChangeListener(e ->
myButton.setEnabled(!e.getValue().equals("")));
or
binder.addStatusChangeListener(e ->
myButton.setEnabled(!e.hasValidationErrors()));
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
1
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
|
show 1 more comment
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
You can do it with a listener on either the text field or the binder
textField.addValueChangeListener(e ->
myButton.setEnabled(!e.getValue().equals("")));
or
binder.addStatusChangeListener(e ->
myButton.setEnabled(!e.hasValidationErrors()));
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
1
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
|
show 1 more comment
up vote
4
down vote
You can do it with a listener on either the text field or the binder
textField.addValueChangeListener(e ->
myButton.setEnabled(!e.getValue().equals("")));
or
binder.addStatusChangeListener(e ->
myButton.setEnabled(!e.hasValidationErrors()));
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
1
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
|
show 1 more comment
up vote
4
down vote
up vote
4
down vote
You can do it with a listener on either the text field or the binder
textField.addValueChangeListener(e ->
myButton.setEnabled(!e.getValue().equals("")));
or
binder.addStatusChangeListener(e ->
myButton.setEnabled(!e.hasValidationErrors()));
You can do it with a listener on either the text field or the binder
textField.addValueChangeListener(e ->
myButton.setEnabled(!e.getValue().equals("")));
or
binder.addStatusChangeListener(e ->
myButton.setEnabled(!e.hasValidationErrors()));
answered yesterday
Tazavoo
598210
598210
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
1
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
|
show 1 more comment
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
1
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I did as you told me; it does not work. My button does not listen to my text fields. Here is my program : private DynTextField dtf1 = new DynTextField(); dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
1
1
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
@woodson It should work, but you have to specify the button which should be enabled/disabled when text is entered in the text fields.
– André Schild
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
this.setEnabled (isActif ()); allows me to disable my button. Here is my isActive program: private boolean isActive () { for (String param: parameterList) { if (! getForm (). getParam (param) .isValid ()) return false; } return true; } I do not see how to implement it
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
So this had to work : dtf1.addValueChangeListener(event -> this.setEnabled(isActif()));
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
I tried this code it does not work. Someone could give me some advice: dtf1.addValueChangeListener(event -> { if(event.getValue().isEmpty()) this.setEnabled(isActif()); else this.setEnabled(isActif()); });
– woodson
yesterday
|
show 1 more comment
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204337%2fhow-to-enable-a-button-when-filling-a-textfield-with-vaadin%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
fxlWhsiAiDoiad,Zyl LML0,3Sq2fs8 olBpw 0I5B8O4AfE YiqLxls X,fRuE3UU,mqe0t4P
The first program that allows me to fill a valid field
– woodson
yesterday