Пользовательские типы событий в настоящее время не поддерживаются в RAP (в основном из-за ошибка 334028 ).
Однако, хотя вы можете сделать это в SWT, я бы счел это неправильным использованием SWTСобытия.Это может быть приемлемо для пользовательского виджета, но эти методы зарезервированы для событий на уровне виджета, пока вы используете их на уровне приложения.Кроме того, в JavaDoc Widget#notifyListeners()
и Widget#addListener()
четко указано:
Тип события является одной из констант события, определенных в классе SWT
.
Вместоиспользования пользовательского события, вы можете позволить своим композитам реализовать пользовательский интерфейс:
public interface ProcessingControl {
void doProcessing();
}
и определить метод обновления, который рекурсивно обходит дочерние элементы композитного кода:
static void updateChildren( Composite parent ) {
for( Control child : parent.getChildren() ) {
if( child instanceof ProcessingControl ) {
( ( ProcessingControl )child ).doProcessing();
}
if( child instanceof Composite ) {
updateChildren( ( Composite )child );
}
}
}
Затем выможете позвонить updateChildren( shell );
.
Если вы предпочитаете использовать события и слушателей, вы должны использовать java.util.EventObject
и EventListener
для своих целей.