final String[] params,
final MyButton thisApplyButton) {
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
final Check check;
if (realParamWi == null) {
application.waitForSwing();
check = checkResourceFields(param, params);
} else {
application.invokeLater(new Runnable() {
@Override
public void run() {
if (paramWi.getValue() == null || paramWi.getValue().isNothingSelected()) {
realParamWi.setValueAndWait(null);
} else {
final Value value = paramWi.getValue();
realParamWi.setValueAndWait(value);
}
}
});
application.waitForSwing();
check = checkResourceFields(param, params);
}
application.invokeLater(new Runnable() {
@Override
public void run() {
if (getResource().isNew()) {
check.addChanged("new resource");
}
if (thisApplyButton == applyButton) {
/* not a wizard button */
if (isDialogStarted()) {
check.addIncorrect("dialog started");
}
thisApplyButton.setEnabled(check);
} else {
/* wizard button */
thisApplyButton.setEnabledCorrect(check);