case SWT.TRAVERSE_ARROW_PREVIOUS:
e.doit = false;
return;
}
Control c = (Control) e.widget;
ControlSegment segment = (ControlSegment) c
.getData(CONTROL_KEY);
if (e.detail == SWT.TRAVERSE_TAB_NEXT)
e.doit = advanceControl(c, segment, true);
else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
e.doit = advanceControl(c, segment, false);
if (!e.doit)
e.detail = SWT.TRAVERSE_NONE;
break;
}
}
};
for (int i = 0; i < paragraphs.length; i++) {
Paragraph p = paragraphs[i];
ParagraphSegment[] segments = p.getSegments();
for (int j = 0; j < segments.length; j++) {
if (segments[j] instanceof ControlSegment) {
ControlSegment cs = (ControlSegment) segments[j];
Control c = cs.getControl(resourceTable);
if (c != null) {
if (c.getData(CONTROL_KEY) == null) {
// first time - hook
c.setData(CONTROL_KEY, cs);
attachTraverseListener(c, listener);