Pessoal, estou precisando montar um menu dinâmico que seja montado de acordo com o banco de dados, porém estou tendo problemas quando tenho vários níveis.
Alguém já montou algo do gênero? Que componente utilizou? O que aconselham?
E quanto a modelagem do banco, qual a maneira que acham melhor? Estava pensando em uma tabela do tipo
CODIGO_MENU
DESCRICAO
COMANDO
CODIGO_MENU_PAI
mas acho que vai ficar complicado para montar o menu desta maneira, gostaria de sugestões.
Agora tu cria chaves de next/previous ou mesmo um inteiro para definir a ordem dentro de um nivel de menu.
santoro
Mas se eu defino desta maneira já não daria certo?
codigo - descricao - codigo_pai
1 - principal - null
2 - cadastro - 1 --> este fica dentro do menu principal
3 - pessoas - 2 --> este fica dentro do menu de cadastro
4 - consultas - 1 --> este fica dentro do menu principal
…
fabiofalci
Até dá…
Mas como tu vai controlar a ordem dos menus?
Simplesmente na ordem que retornar do teu select?
E se tu quiser mexer na ordem?
santoro
Perfeito, então eu precisaria de uma tabela contendo
CODIGO
DESCRICAO
CODIGO_PAI
ORDEM
mas existe algo que facilite a montagem deste menu, senão vou precisar fazer vários loops para gerar corretamente os nós no Menu, qual componente você aconselha?
fabiofalci
Exato.
Ou ordem ou chaves para next/previous.
Tu resolve isso fazendo consultas SQL (ou hql se hibernate), pegando esse retorno e transformando em
JMenu e JMenuItem
Não tem muito como fugir de loops
santoro
Resgatando este tópico estou com o seguinte problema, quando crio um subitem não consigo retornar ao item, já refiz várias vezes o meu código e não consegui uma solução, por exemplo
teria como você disponibilizar o que você fez, ou parte do código para eu tentar entender onde estou errando?
fabiofalci
Cara, não tenho mais acesso a esse código. E não olhei o teu algoritmo em detalhes.
Mas ali na linha
Tu retorna uma lista de TMenu certo?
Esse TMenu ao invés de referenciar o próprio pai, referencia ao id do pai (getIdMenuPai).
De onde vem essa lista? do banco? tu esta usando hibernate?
Se sim essa estrutura pai-filho já poderia estar pronta através do hibernate!
santoro
Não, não estou utilizando hibernate por alguns motivos internos, e os dados são retornados do banco de dados.