SWING – Controle de permissões com JTree

Este post aborda uma forma simples de preencher um JTree a partir do banco de dados, afim de fazer controle de permissões de usuario de acordo com a tela do sistema ou módulo.

Primeiro de tudo a estrutura do banco de dados (PostgreSQL)

CREATE TABLE interface(

  int_codigo integer NOT NULL,
  int_descricao character varying(40),
  int_tipo character(1),
  int_codigopai integer,
  CONSTRAINT interface_pkey PRIMARY KEY (int_codigo)
)
WITH (OIDS=FALSE);
ALTER TABLE interface OWNER TO postgres;
 

Classe Interface:

public class Interface {

    private String descricao;
    private int codInterface;
    private String tipo;

    gets e Sets ….

Rotina Recursiva que adiciona os Itens ao JTree:

    public void preencheTree(DefaultMutableTreeNode node, int pai) {
 
         DefaultMutableTreeNode aux;
         ResultSet r1 = null;
         ResultSet r2 = null;
         Interface inf;
        try {
              
            r1 = ag.RunSqlQuery(“select * from interface where int_codigopai = ” + pai + ” order by int_descricao”);

            while (r1.next()) {
                 
                if(node == null){
                    aux = new DefaultMutableTreeNode(new Interface(r1.getString(“int_descricao”), r1.getInt(“int_codigo”), r1.getString(“int_tipo”))   );
                    root.add(aux);            
                }else{
                    aux = new DefaultMutableTreeNode(new Interface(r1.getString(“int_descricao”),  r1.getInt(“int_codigo”), r1.getString(“int_tipo”))   );
                    node.add(aux);        
                }
                
                r2 = ag.RunSqlQuery(“select count(*) as filhos from interface where int_codigopai = ” + r1.getInt(“int_codigo”));
                if(r2.first()){
                   
                   if(r2.getInt(“filhos”) > 0){
                       preencheTree(aux, r1.getInt(“int_codigo”));
                   }                   
                }                
            }          
        } catch (Exception e) {
            System.err.print(e.getMessage());
        }
    }

 

Observãções: a função RunSQLQuery recebe o sql e retorna um ResultSet preenchido. se alguem quiser o fonte é só deichar o email

(cade os [/code] ? :( )

Explore posts in the same categories: Java

2 Comments on “SWING – Controle de permissões com JTree”

  1. Ismael Says:

    Ache bem interessante a forma de preencher o JTree,estou tentando desenvolver algo semelhante, se poder me conseguir o fonte agradeço.

    att

  2. Jonas Says:

    Por favor, poderia postar o fonte? Grato pela atenção


Comment: