Design: 2 jcomboboxes, lista de caixa 2 depende da seleção da caixa 1, dados de XML
Eu estou sobrecarregado com a tentativa de projetar uma solução para este problema - é um subproduto da inexperiência.
Meu objetivo é ler um arquivo de entrada XML, armazenar as informações do XML e preencher duas caixas de combinação com dados do XML. O conteúdo da segunda caixa de combinação será alterado com base na seleção no primeiro.
Dada essa estrutura XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Category xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Node>
<ID>Unique string</ID>
<Name>Unique string</Name>
<Code>Generic string<Code>
<Kind>Generic string</Kind>
<Frame>Generic string</Frame>
...
</Node>
...
</Category>
Primeira caixa de combinação: deve conter apenas os valores exclusivos encontrados na seção Tipo.
Segunda caixa de combinação: Contém TODAS as entradas de Nome de cada Nó cujo Tipo é igual ao Tipo selecionado na primeira caixa de combinação.
Em relação à fonte XML: ela é mantida e gerada externamente. Os valores na seção ID sempre serão exclusivos. Os valores na seção Nome sempre serão exclusivos. O esquema (supostamente) nunca mudará. Novos valores exclusivos podem aparecer na seção Tipo no futuro.
Minha solução proposta: Crie uma classe XMLNode para representar um nó da fonte XML. Os membros da classe XMLNode correspondem às tags em cada nó. Faça um loop por todos os nós e crie um XMLNode para cada um. While looping por nós: Adicione objetos XMLNode em um mapa de hash, com Keys = XMLNode.ID e vals = o XMLNode. Crie uma matriz de tipos exclusivos.
Preencha a caixa de combinação um do array de entradas Kind. Preencha a caixa de combinação dois dos dados de nome para cada um.
Esta é uma abordagem apropriada, ou eu negligenciei uma solução melhor / mais fácil / mais elegante? Se estou no caminho certo, há alguma falha óbvia na minha solução proposta?