Я столкнулся с довольно раздражающей проблемой, и мне интересно, знает ли кто-нибудь, как с этим справиться.У меня есть приложение Eclipse RCP e4, которое создает динамические части на основе содержимого файла.
Для каждого файла созданная деталь должна показывать рядом две таблицы (реализованные в виде таблиц NatTable), размер которых должен быть изменен по горизонтали (например, master-detail)
Когда я начал, яЯ подумал, что хорошим способом было бы использовать динамическую составную часть, которую нельзя добавить ни в качестве дескрипторов частей, ни в качестве фрагментов в модель приложения.Насколько я понимаю, цель составной части также состоит в том, чтобы иметь дело с такими сценариями, но я не мог найти способ использовать их динамически.
Чтобы что-то работало, я переключился на этот код,который перерисовывает две таблицы на основе константы, добавляя прослушиватель к событию SWT.Resize.Хотя этот код не совсем то, что я хочу сделать.
public void postConstruct(Composite parent,EMenuService menuService){
...
Shell shell = parent.getShell();
Point size = shell.getSize();
leftGridData.widthHint = (int)(size.x * leftProportion);
rightGridData.widthHint = size.x - leftGridData.widthHint;
// adding this configuration adds the styles and the painters to use
_tableViewLeft.setLayoutData(leftGridData);
_tableView.setLayoutData(rightGridData);
_tableView.configure();
// Tooltip for row/column headings
shell.addListener(SWT.Resize, new Listener()
{
@Override
public void handleEvent(Event arg0)
{
Point size = shell.getSize();
leftGridData.widthHint = (int) (size.x * leftProportion);
rightGridData.widthHint = size.x - leftGridData.widthHint;
shell.redraw();
}
});
}
Я хочу добиться того, чтобы иметь возможность изменять размеры по горизонтали двух таблиц внутри динамической части.Две таблицы должны использовать все пространство, чтобы соответствовать доступному пространству.Любая подсказка или предложение будут очень благодарны.