listGridData.widthHint = 85;
IQueryField[] fields = lstSearchValues.keySet().toArray(new IQueryField[lstSearchValues.size()]);
for(int i=1; i<=fields.length; i++) {
IQueryField queryField = fields[i-1];
Label label = new Label(composite, SWT.NONE);
label.setText(queryField.getLabel());
label.setLayoutData(commonGridData);
Control control = lstSearchValues.get(queryField).getControl();
control.setParent(composite);
control.setLayoutData(listGridData);
if (i % columns == 0 || i == lstSearchValues.size()) {
int sv = (i % columns == 0) ? i - columns : i - i % columns;
if (i % columns != 0) {
listGridData = new GridData();
listGridData.verticalSpan = 2;
listGridData.heightHint = 100;
listGridData.horizontalSpan = (columns-(i % columns)) * 2 +1;
listGridData.widthHint = 85;
control.setLayoutData(listGridData);
}
for (int j = sv; j < i; j++) {
IQueryField tmpSearchField = fields[j];
ComboViewer combo = lstSearchOperators.get(tmpSearchField);
combo.getControl().setParent(composite);
combo.getControl().setLayoutData(commonGridData);
}