Дизайн: 2 jcombobox, список блока 2 зависит от выбора из блока 1, данные из XML
Я поражен попытками найти решение этой проблемы - этопобочный продукт неопытности.
Моя цель - прочитать входной файл XML, сохранить информацию из XML и заполнить два поля со списком данными из XML. Содержимое второго поля со списком будет меняться в зависимости от выбора в первом.
Учитывая эту структуру XML:
Unique string
Unique string
<code>Generic string<code>
Generic string
Generic string
...
...
</code></code>
<code>Первое поле со списком: должно содержать только уникальные значения, найденные в разделе «Вид».</code>
<code>Второе поле со списком: содержит ВСЕ записи имени от каждого узла, вид которого равен виду, выбранному в первом поле со списком.</code>
<code>Что касается источника XML: он поддерживается и генерируется извне. Значения в разделе идентификаторов всегда будут уникальными. Значения в разделе Имя всегда будут уникальными. Схема (предположительно) никогда не изменится. Новые уникальные значения могут появиться в разделе Kind в будущем.</code>
<code>Мое предлагаемое решение: создать класс XMLNode для представления узла из источника XML. Члены класса XMLNode соответствуют тегам в каждом узле. Переберите все узлы и создайте XMLNode для каждого. При прохождении по узлам: добавьте объекты XMLNode в хэш-карту, указав Keys = XMLNode.ID и vals = XMLNode. Создайте массив уникальных видов.</code>
<code>Заполните поле со списком один из массива записей вида. Заполните поле со списком два из данных имени для каждого.</code>
<code>Это подходящий подход, или я упустил лучшее / более легкое / более элегантное решение? Если я'м на правильном пути, есть ли очевидные недостатки моего предложенного решения?</code>