В дополнение к генерации кода и редактированию, если вы хотите реализовать парсер, этот тип грамматики проще и проще реализовать. C # следует за этим правилом в нескольких местах, где есть список разделенных запятыми элементов, таких как элементы в определении enum
.
Решение, которое я нашел, было отключить вертикальную полосу прокрутки. Это также отключает прокрутку колесиком мыши. Также используйте методы SWT addMouseWheelListener()
и mouseScrolled()
вместо addListener()
. Затем просто прокрутите ScrolledComposite, используя метод getOrigin()
.
myText.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent e) {
if (!myText.isFocusControl() ) {
myText.getVerticalBar().setEnabled(false);
if (e.count == 3) {
mySc.setOrigin(sc.getOrigin().x, mySc.getOrigin().y - 30);
} else if (e.count == -3) {
mySc.setOrigin(sc.getOrigin().x, mySc.getOrigin().y + 30);
}
} else {
myText.getVerticalBar().setEnabled(true);
}
}
});
count
всегда возвращает 3 или -3, в зависимости от направления прокрутки. Значение 30 для прокрутки вверх / вниз хорошо для меня, может быть более или менее для других целей. Я еще не проверял поведение на машине с Windows.