Java: Как хранить данные для использования в Jface / TreeViewer и TableViewer - PullRequest
0 голосов
/ 04 февраля 2020

Я хотел бы показать те же данные в SWT / Jface TreeViewer и TableViewer. Вопрос в том, как правильно хранить данные, чтобы оба зрителя могли использовать одни и те же данные?

Мои необработанные данные хранятся в массиве:

Id | Level | Type    | Value
1  | 1     | Heading | Heading 1
2  | 2     | Text    | This is a text
3  | 2     | Text    | This is another text
4  | 1     | Heading | Heading 2
5  | 2     | Heading | Heading 2.1
6  | 3     | Heading | Heading 2.2
7  | 4     | Text    | This is more text
...

TreeViewer должен отображать товар только с типом «заголовок»:

  • заголовок 1
  • заголовок 2
    • заголовок 2.1
    • заголовок 2.2

TableViewer должен отображать значения в том же порядке, что и в массиве.

Мои мысли:

  • Я могу хранить данные в ArrayList и предоставлять их в TableViewer, используя ArrayContentProvider по умолчанию. Но я не могу использовать этот ArrayList для TreeViewer.

  • Или я могу сохранить данные с отношением родитель-потомок и реализовать интерфейс ITreeContentProvider для использования в TreeViewer. Но чем я не могу использовать его для TableViewer.

Можете ли вы дать мне подсказку?

Фон:

Может быть, кто-то знает программное обеспечение ДВЕРИ . У вас есть контурное представление слева (TreeViewer) и список в главном представлении (TableViewer). Оба используют одни и те же данные.

...