Я пытаюсь создать свой собственный FieldEditor (так как я должен динамически заполнять значения поля со списком). Так что мой класс расширяет FieldEditor. Моей странице предпочтений нужны 3 из этих полей, которые затем выглядят так (2-й, 3-й и 4-й полевые редакторы; «выберите ядро»).
Очевидно, что что-то идет не так с макетом. Все поля должны выглядеть как 3-е поле - с использованием полного пробела.
@Override
protected void adjustForNumColumns(int numColumns) {
((GridData) c_top.getLayoutData()).horizontalSpan = numColumns;
}
@Override
protected void doFillIntoGrid(Composite parent, int numColumns) {
/* Layout comments:
*
* component are sequentially filled into numColumns
* by default each component will use 1 column
* GridData can be set to use more that one columns
*/
GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
gd.horizontalSpan = numColumns;
c_top = parent;
c_top.setLayoutData(gd);
c_group = new Composite(c_top, SWT.BORDER);
GridLayout newgd = new GridLayout(2, false);
c_group.setLayout(newgd);
c_group.setLayoutData(gd);
// kernel spec combo
Label comboLabel = new Label(c_group, SWT.NONE);
comboLabel.setText("Select kernel");
gd = new GridData(SWT.LEFT, SWT.TOP, false, false);
gd.horizontalSpan = numColumns - 1;
comboLabel.setLayoutData(gd);
c_kernelCombo = new Combo(c_group, SWT.READ_ONLY);
gd = new GridData(SWT.FILL, SWT.TOP, true, false);
//gd.horizontalSpan = 1;
c_kernelCombo.setLayoutData(gd);
}
Я даже попробовал более простой макет без использования группы, но тогда все мои полевые редакторы использовали только 2 ячейки сетки (что выглядит несколько забавно с 3 столбцами, предоставленными другими полевыми редакторами.
Понятия не имею, как это исправить. Кто-нибудь может помочь, пожалуйста?