У меня есть несколько представлений в моем проекте RCP.
В одном представлении у меня есть TableViewer
.
В другом представлении у меня есть JFrame
с Button
.
Я хочу обновить данные в TableViewer
, используя метод setInput()
, когда я нажимаю кнопку в другом представлении.
Как мне это сделать?
РЕДАКТИРОВАТЬ:
Начальный ввод в просмотрщик таблиц:
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
tableViewer.setLabelProvider(new TableLabelProvider() );
tableViewer.setInput(TraceData.getTraceData()); // get realtime data
Я добавляю прослушиватель в tableViewer для прослушивания изменений в графическом интерфейсе.
listener = new ISelectionListener() {
public void selectionChanged(IWorkbenchPart part, ISelection sel) {
if (!(sel instanceof IStructuredSelection))
return;
IStructuredSelection ss = (IStructuredSelection) sel;
Object o = ss.getFirstElement();
if (o instanceof Book) // something else in place of Book
tableViewer.setInput(TraceData.getSavedTraceData());
}
};
getSite().getPage().addSelectionListener(listener);
И проблема в том, как заставить его реагировать на событие кнопки в другом представлении? Вот как транслировать пресс-событие JButton
, а затем слушать это событие в этом TreeViewer
.