Archive for maio \24\-02:00 2012

Java Tips: Operações com JTable parte 2

Posted on maio 24, 2012. Filed under: Java, Tips | Tags:, |

Introdução

Neste artigo teremos mais alguns exemplos de manipulação de tabelas do JTable do Java. Já abordamos o JTable em um artigo anterior. Portanto, este artigo serve como complemento ao anterior.

  • Bloqueando a seleção de linhas/colunas baseado em uma determinada condição.
  • int linhas = 10;
    int colunas = 3;
    JTable table = new JTable(linhas, colunas) {
    	public void changeSelection(int row, int column, boolean toggle, boolean extend) {
    		DefaultTableModel m = (DefaultTableModel) getModel();
    	
            /* não permite a seleção da linha quando o valor da coluna 3 for igual fechado */
    		if (m.getValueAt(row, 2) != null && m.getValueAt(row, 2).toString().toLowerCase().equals("fechado")) {
    	    	return;
    	    }
    		super.changeSelection(row, column, toggle, extend);
    	}
    };
    
  • Alterando o cor de fundo/primeiro plano de acordo com uma determinada condição.
  • Determina também a cor de fundo/primeiro plano da linha selecionada. Você esta livre para inserir outras lógicas que achar necessário além desse exemplo básico que verifica somente o valor de uma determinada coluna.

    int linhas = 5;
    int colunas = 3;
    JTable table = new JTable(linhas, colunas) {
        public Component prepareRenderer(TableCellRenderer renderer,
                int rowIndex, int vColIndex) {
    		
        	DefaultTableModel m = (DefaultTableModel) getModel();
        	Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
        	
        	// altera a cor de background da linha para vermelho e foreground para branco
        	// quando o valor da coluna 3 for igual a fechado 
        	if (m.getValueAt(rowIndex, 2).toString().toLowerCase().equals("fechado")) {
        		c.setBackground(new Color(192, 0, 0));
        		c.setForeground(Color.white);
            } else {
            	// mantem a cor padrão de foreground 
            	c.setForeground(getForeground());
            	
            	// determina a cor de background da linha selecionada 
            	if(isCellSelected(rowIndex, vColIndex)) {
            		c.setBackground(new Color(184, 207, 229));
            	} else {
            		// linhas não selecionadas, manter cor de background padrão 
            		c.setBackground(getBackground());
            	}
    
            }			
    		return c;
        }
    };
    

    Exemplo de visualização:

  • Forçar a renderização do JTable
  • O código abaixo pode ser utilizado para renderizar o JTable novamente quando for preciso. No caso de mudança de dados que influencie na lógica usada em algum dos métodos anteriores.

       
    table.updateUI();     
    

Mais dicas

Java Tips: Operações com JTable parte 1
Java Tips: Operações com JTable parte 3

Ler Post Completo | Make a Comment ( 1 so far )

Facebook App: Requisitando permissões pela API do PHP

Posted on maio 15, 2012. Filed under: Facebook, PHP | Tags:, |

Introdução

Criar aplicações para o facebook, dependendo do seu objetivo, pode requerer que o usuário autorize certas ações que sua aplicação irá executar em nome dele. Existem muitas informações sobre a API do facebook na internet que estão desatualizadas. Portanto, muitas vezes encontramos dificuldades para implementar funções consideradas básicas, como por exemplo, solicitar permissão do usuário para executar determinada ação. Venho por meio desse post exemplificar como requisitar permissões para o usuário.

Requisitando uma simples permissão

Quando sua aplicação precisa realizar uma determinada ação em nome do usuário, primeiramente é necessário que o usuário autorize essa ação. Por exemplo, caso deseje que sua aplicação publique fotos no perfil do usuário ou em algum album dele, você irá precisar que o usuário autorize essa ação para sua aplicação. Neste caso, no facebook, o nome dessa permissão é publish_stream. Uma lista de permissões disponíveis pelo facebook pode ser encontrado no seguinte link.

O exemplo abaixo mostra como fazer sua aplicação solicitar a permissão de publicação de fotos (publish_stream) para o usuário. Este exemplo já assume que você tenha criado uma aplicação no facebook.

<?php
require 'src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'xxxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
));

// permitir upload de fotos
$facebook->setFileUploadSupport(true);

// obtem usuario logado
$user = $facebook->getUser();

if ($user) {
        // usuario esta logado

        /* obtem as permissões atuais que usuário tem em relação a sua aplicação  */
        $permissions = $facebook->api("/me/permissions");

        /* verifica se o usuário já autorizou a publicação de fotos para a sua aplicação */
        if (!array_key_exists('publish_stream', $permissions['data'][0])) {
                /* solicita permissão */
                header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream")) );
                exit;
        }

        echo "Pode publicar as fotos";

} else {
        // usuário não esta logado. Requisitar login do facebook.
        $loginUrl = $facebook->getLoginUrl();
        header("Location: $loginUrl");
        exit;
}

A aplicação irá solicitar essa permissão somente uma única vez. Após, não será necessário mais a aplicação solicitar essa permissão, a não ser que o usuário remova manualmente a permissão no seu perfil. Segue abaixo exemplo da tela de solicitação de permissão:

Requisitando vários permissões ao mesmo tempo

Pode acontecer que sua aplicação realize mais de uma operação no perfil do usuário. Neste caso, dependendo do que precise, será necessário solicitar vários tipos de permissões. Com o exemplo anterior, podemos solicitar somente uma única permissão por vez. Para facilitar o processo você pode incluir em uma mesma chamada a solicitação de todas permissões que necessita. Fazendo uma simples alteração no código conseguimos obter o resultado desejado:

/* verifica se o usuário já autorizou a aplicação para publicação de fotos/acessar os dados de email e os dados sobre você  */
$permissions = $facebook->api("/me/permissions");
if(! (array_key_exists('publish_stream', $permissions['data'][0])
      &&  array_key_exists('user_photos', $permissions['data'][0])
      &&  array_key_exists('user_about_me', $permissions['data'][0])
      &&  array_key_exists('email', $permissions['data'][0])
)) {

    /* solicitar as permissões  */
    header("Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream,user_photos,user_about_me,email")));
    exit;
}

Segue abaixo exemplo da tela de solicitação de várias permissões ao mesmo tempo:

Em breve mais dicas do facebook pela api do PHP 😉

Ler Post Completo | Make a Comment ( 18 so far )

PHP/MySQL Quiz da sitepoint

Posted on maio 10, 2012. Filed under: MySQL, PHP | Tags:, , |

Faça o quiz de PHP e MySQL da sitepoint e descubra qual seu nível de conhecimento nessas duas tecnologias. Achei o teste muito bem elaborado, podendo ajudar na avaliação de profissionais.

É também uma ótima oportunidade para descobrir seu nível e em quais assuntos deve aprofundar seus estudos. A sugestão do livro da sitepoint com certeza é uma boa dica. Livros da sitepoint são sempre referência pela qualidade apresentada em seus conteúdos.

No final do teste é gerado um certificado avaliando o seu desempenho, além das questões que você errou. Segue abaixo meu certificado: 😉 Espero que dedique um tempo neste quiz, vale a pena. Boa sorte no seu teste!

Ler Post Completo | Make a Comment ( None so far )

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: