Reputation: 45
I'm working currently on updating a wizard page and I wish to disable a textField
after the selection of a radioButton
.
For example : if (radioButton[1].getSelection)
"then let's say textField[2].setEnabled(false)"
The question here is, how to connect both listeners of radioButton[i]
and textField[i]
together? Thanks.
case composed:
container.setLayout(new RowLayout());
Button[] radioButton= new Button[answers.size()];
for (int i = 0; i < answers.size(); i++) {
String ans = answers.get(i).getValue();
radioButton[i]=new Button(container, SWT.RADIO);
radioButton[i].setText(ans);
radioButton[i].addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub
}});
}
Text[] textField=new Text[answers.size()];
for (int i = 0; i < answers.size(); i++) {
textField[i]=new Text(container, SWT.SINGLE | SWT.BORDER);
textField[i].addModifyListener(new ModifyListener(){
@Override
public void modifyText(ModifyEvent arg0) {
// TODO Auto-generated method stub
}
});
}
Upvotes: 1
Views: 263
Reputation: 4564
Create radio buttons and text fields before adding listeners, so you can refer to both of them.
Button[] radioButton = new Button[answers.size()];
for (int i = 0; i < answers.size(); i++) {
String ans = answers.get(i).getValue();
radioButton[i] = new Button(container, SWT.RADIO);
radioButton[i].setText(ans);
}
Text[] textField = new Text[answers.size()];
for (int i = 0; i < answers.size(); i++) {
textField[i] = new Text(container, SWT.SINGLE | SWT.BORDER);
radioButton[i].addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent arg0) {
textField[i].setEnabled(radioButton[i].getSelection());
}});
textField[i].addModifyListener(new ModifyListener(){
@Override
public void modifyText(ModifyEvent arg0) {
// your stuff
}});
}
You could also make both listeners to be the same listener object (but to be honest, why bother - it's better to have smaller listeners with single purpose):
private static class MyListener extends SelectionAdapter implements ModifyListener {
public void widgetSelected(SelectionEvent arg) { ... }
public void modifyText(ModifyEvent arg) { ... }
}
Upvotes: 3