В моем приложении RCP у меня есть виджет папки с вкладками. Каждый из элементов вкладки в виджете папки вкладок содержит одну таблицу. Элементы вкладок (представляют название определенного зала) являются динамическими, и всякий раз, когда элемент вкладки создается динамически, создается таблица для отображения в этом элементе вкладки. Элементы вкладок создаются динамически вместе с таблицей (и содержимым таблицы) для каждого элемента в папке вкладок.
Теперь, когда я пытаюсь получить выбранные пользователем значения в таблице в первой (или любой другой вкладке, кроме последней), я не могу получить значения. Я могу извлечь и манипулировать
только таблица в последнем элементе вкладки. Кажется, что предыдущие таблицы в предыдущих элементах вкладок заменяются / перекрываются новыми таблицами, которые впоследствии создаются динамически. Как мне это решить?
Для экземпляра,
//createPartControl method
public void createPartControl(Composite parent) {
.....
.....
createTabFolder();
}
// createTabFolder() method
private void createTabFolder() {
tabFolder = new CTabFolder(comMainContainer, SWT.BORDER);
tabFolder.setBounds(204, 21, 769, 495);
tabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(
SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
// display the tabitems in the tabfolder dynamically
try {
selectedDate = sdf.format(dateChooser.getSelectedDate());
rs = objHallBookingController.getHallList();
while (rs.next()) {
displayCtabItems(rs.getString("hall_name"),
rs.getInt("hall_id"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// displayCtabItems method
private void displayCtabItems(String hallName, int hallId) {
tabItem = new CTabItem(tabFolder, SWT.NONE);
tabItem.setText(hallName);
comTabItem = new Composite(tabFolder, SWT.NONE);
tabItem.setControl(comTabItem);
tblHallBooking = new Table(comTabItem, SWT.BORDER | SWT.FULL_SELECTION);
tblHallBooking.setHeaderVisible(true);
tblHallBooking.setLinesVisible(true);
tblclmnTime = new TableColumn(tblHallBooking[hallId], SWT.NONE);
tblclmnTime.setWidth(88);
tblclmnTime.setText("Time");
tblclmnTitle = new TableColumn(tblHallBooking[hallId], SWT.NONE);
tblclmnTitle.setWidth(306);
tblclmnTitle.setText("Title");
// display contents in the table; working fine
displayHallOpeningTime(Integer.parseInt(txtHallId.getText()));
}
Этот код генерирует и отображает элементы вкладок и таблицы. Но я не могу манипулировать содержимым таблиц во вкладках, кроме последнего.