<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8249928193807124325</id><updated>2012-01-06T05:31:37.891-08:00</updated><category term='jtable'/><category term='Programação'/><category term='Recycle'/><category term='java'/><category term='Copy'/><category term='swing'/><category term='tablemodel'/><category term='Generic'/><category term='código'/><category term='Past'/><category term='Files'/><category term='code'/><category term='Serializable'/><title type='text'>Everton Dewes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-6180559438902634390</id><published>2011-06-01T21:58:00.000-07:00</published><updated>2011-06-01T21:59:09.476-07:00</updated><title type='text'></title><content type='html'>Eu sei que Deus ajuda quem cedo madruga, mas na boa, isso não é pra mim!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-6180559438902634390?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/6180559438902634390/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=6180559438902634390' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/6180559438902634390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/6180559438902634390'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2011/06/eu-sei-que-deus-ajuda-quem-cedo-madruga.html' title=''/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-431798685702540370</id><published>2008-09-26T07:28:00.001-07:00</published><updated>2008-09-26T07:28:32.604-07:00</updated><title type='text'>Microsoft PowerToys for Windows XP</title><content type='html'>http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-431798685702540370?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/431798685702540370/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=431798685702540370' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/431798685702540370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/431798685702540370'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/09/microsoft-powertoys-for-windows-xp.html' title='Microsoft PowerToys for Windows XP'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-1094138455346655936</id><published>2008-09-11T02:22:00.000-07:00</published><updated>2008-09-10T22:22:25.295-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Recycle'/><category scheme='http://www.blogger.com/atom/ns#' term='Generic'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='Serializable'/><category scheme='http://www.blogger.com/atom/ns#' term='Copy'/><category scheme='http://www.blogger.com/atom/ns#' term='Past'/><category scheme='http://www.blogger.com/atom/ns#' term='Files'/><title type='text'>Objetos como Arquivos (Objects like Files)</title><content type='html'>Objetos como Arquivos (Objects like Files)&lt;br /&gt;Buneas,,&lt;br /&gt;A idéia que surgiu é trabalhar objetos (registros do banco de dados) como se manipula os arquivos em um sistema operacional.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Criar uma lixeira (tabela) genérica para se colocar os objetos excluídos através de serializable (utilizar uma coluna para armazenar os objetos).&lt;/li&gt;&lt;li&gt;Permitir a Clonagem&lt;/li&gt;&lt;li&gt;Permitir importar campos em comum mesmo entre objetos diferentes (como na área de transferência do Windows)&lt;/li&gt;&lt;li&gt;Permitir criar rascunhos (drafts) de registros sem ter que guardar de fato na tabela principal&lt;/li&gt;&lt;li&gt;Utilizar recursão para solucionar problemas de referência entre objetos&lt;/li&gt;&lt;li&gt;Utilizar um conceito semelhante ao Outlook permitindo abrir e editar vários objetos ao mesmo tempo&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Utilizar o conceito de desfazer/refazer (ctrl+z e ctrl+y) para as operações em cima de objetos (tabelas) como atualização ou deleção&lt;/li&gt;&lt;/ol&gt;Teoricamente utilizando-se serializable e reflection seria possível a construção de um framework genérico, que poderia ser aplicado a qualquer sistema e que permitiria as operações básicas (mesmas feitas com arquivos) ser aplicadas a todas (ou quase todas) as classes Entity de uma aplicação.&lt;br /&gt;Por enquanto é só uma idéia,, ainda estou tentando convencer conhecidos que é boa! Se conseguir parto para a implementação.&lt;br /&gt;&lt;br /&gt;(Generic Recycle Copy Past Files Serializable Java)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-1094138455346655936?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/1094138455346655936/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=1094138455346655936' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/1094138455346655936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/1094138455346655936'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/08/objetos-como-arquivos-objects-like.html' title='Objetos como Arquivos (Objects like Files)'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-4966314823748937251</id><published>2008-09-10T17:35:00.000-07:00</published><updated>2008-09-10T17:49:57.657-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jtable'/><category scheme='http://www.blogger.com/atom/ns#' term='Generic'/><category scheme='http://www.blogger.com/atom/ns#' term='swing'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='tablemodel'/><title type='text'>DynamicTableModel - Evoluindo a Idéia de Algo Flexível</title><content type='html'>Melhorando um pouco o Table Model do swing, deixando ele um pouco mais compatível com o JPA e mais simples de utilizar sem precisar carregar um punhado de bibliotecas. Sei que o código poderia ser mais bem otimizado, porém, o objetivo foi a facilidade de utilização. Comecei seguindo idéias que vi na web, porém resolvi seguir um caminho próprio.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.beans.IntrospectionException;&lt;br /&gt;import java.beans.PropertyDescriptor;&lt;br /&gt;import java.lang.reflect.Method;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;import java.util.logging.Level;&lt;br /&gt;import java.util.logging.Logger;&lt;br /&gt;import javax.swing.table.AbstractTableModel;&lt;br /&gt;&lt;br /&gt;public class DynamicTableModel extends AbstractTableModel {&lt;br /&gt;&lt;br /&gt;    private String[] columnNames = null;&lt;br /&gt;    private List data = null;&lt;br /&gt;&lt;br /&gt;    public List getData() {&lt;br /&gt;        return data;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setData(List dataset) throws IntrospectionException {&lt;br /&gt;        initModel(dataset);&lt;br /&gt;    }&lt;br /&gt;    private Class c = null;&lt;br /&gt;&lt;br /&gt;    public Class getC() {&lt;br /&gt;        return c;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String[] getColumnNames() {&lt;br /&gt;        return columnNames;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public DynamicTableModel(List dataset) throws IntrospectionException {&lt;br /&gt;        super();&lt;br /&gt;        initModel(dataset);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private void initModel(List dataset) throws IntrospectionException {&lt;br /&gt;        System.out.println("dataset.size() = " + dataset.size());&lt;br /&gt;        if (dataset.size() &gt; 0) {&lt;br /&gt;            c = dataset.get(0).getClass();&lt;br /&gt;            System.out.println(c.getName());&lt;br /&gt;&lt;br /&gt;            PropertyDescriptor[] p = java.beans.Introspector.getBeanInfo(c, Object.class).getPropertyDescriptors();&lt;br /&gt;            columnNames = new String[p.length];&lt;br /&gt;            System.out.println("p.length = " + p.length);&lt;br /&gt;            for (int i = 0; i &lt; p.length; i++) {&lt;br /&gt;                // coloca o nome na coluna&lt;br /&gt;                String s = p[i].getName();&lt;br /&gt;                s = s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();&lt;br /&gt;                System.out.println("s = " + s);&lt;br /&gt;                columnNames[i] = s;&lt;br /&gt;            }&lt;br /&gt;            this.data = dataset;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public Class getColumnClass(int c) {&lt;br /&gt;        System.out.println("getColumnClass(int c) = " + c);&lt;br /&gt;        return getValueAt(0, c).getClass();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public int getColumnCount() {&lt;br /&gt;        if (columnNames == null) {&lt;br /&gt;            return 0;&lt;br /&gt;        } else {&lt;br /&gt;            System.out.println("getColumnCount = " + columnNames.length);&lt;br /&gt;            return columnNames.length;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public int getRowCount() {&lt;br /&gt;        if (data == null) {&lt;br /&gt;            return 0;&lt;br /&gt;        } else {&lt;br /&gt;            return data.size();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public String getColumnName(int col) {&lt;br /&gt;        return columnNames[col];&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object getObjectAtRow(int row) {&lt;br /&gt;        Object o = null;&lt;br /&gt;        if (data.size() &gt; 0 &amp;&amp; row &lt; data.size()) {&lt;br /&gt;            o = data.get(row);&lt;br /&gt;        }&lt;br /&gt;        return o;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public List Object&gt; getObjectAtRows(int[] rows) {&lt;br /&gt;        ArrayList Object&gt; os = new ArrayList Object&gt;();&lt;br /&gt;        if (data.size() &gt; 0) {&lt;br /&gt;            for (int i : rows) {&lt;br /&gt;                if (data.size() &gt; i) {&lt;br /&gt;                    os.add(data.get(i));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return os;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Object getValueAt(int row, int col) {&lt;br /&gt;        Object o = null;&lt;br /&gt;        if (data.size() &gt; 0 &amp;&amp; row &lt; data.size()) {&lt;br /&gt;            try {&lt;br /&gt;                Object oRow = data.get(row);&lt;br /&gt;                Method method = c.getMethod("get" + columnNames[col], new Class[]{});&lt;br /&gt;                Class t = method.getReturnType();&lt;br /&gt;                if (t.isPrimitive()) {&lt;br /&gt;                    System.out.println("t.getName() = " + t.getName());&lt;br /&gt;                    if (t.equals(java.lang.Integer.TYPE) || t.getName().equals("int")) {&lt;br /&gt;                        o = new Integer(method.invoke(oRow, new Object[]{}).toString());&lt;br /&gt;                    } else if (t.equals(java.lang.Boolean.TYPE) || t.getName().equals("boolean")) {&lt;br /&gt;                        o = new Boolean(method.invoke(oRow, new Object[]{}).toString());&lt;br /&gt;                    } else if (t.equals(java.lang.Float.TYPE) || t.getName().equals("float")) {&lt;br /&gt;                        o = new Integer(method.invoke(oRow, new Object[]{}).toString());&lt;br /&gt;                    } else if (t.equals(java.lang.Long.TYPE) || t.getName().equals("long")) {&lt;br /&gt;                        o = new Integer(method.invoke(oRow, new Object[]{}).toString());&lt;br /&gt;                    } else {&lt;br /&gt;                        o = oRow;&lt;br /&gt;                    }&lt;br /&gt;                } else {&lt;br /&gt;                    System.out.println("Nao primitivo t.getName() = " + t.getName());&lt;br /&gt;                    if (t.getName().equals("java.lang.String")) {&lt;br /&gt;                        o = new String(method.invoke(oRow, new Object[]{}).toString());&lt;br /&gt;                    } else {&lt;br /&gt;                        o = oRow;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            } catch (Exception ex) {&lt;br /&gt;                System.out.println("ex = " + ex);&lt;br /&gt;                Logger.getLogger(DynamicTableModel.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        return o;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-4966314823748937251?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/4966314823748937251/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=4966314823748937251' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/4966314823748937251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/4966314823748937251'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/09/dynamictablemodel-evoluindo-idia-de.html' title='DynamicTableModel - Evoluindo a Idéia de Algo Flexível'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-8096971108158090693</id><published>2008-08-08T12:54:00.000-07:00</published><updated>2008-08-08T14:28:29.204-07:00</updated><title type='text'>Método genérico para popular um jTable direto da lista que vem do JPA</title><content type='html'>Buenas,,&lt;br /&gt;É um exemplo de um método genérico pra popular um jTable a partir dos dados que vem do JPA (List através de uma query do EntityManager). Este método utiliza o net.sf.jga.swing.GenericTableModel para auxiliar na conversão. Att,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;package util;&lt;br /&gt;&lt;br /&gt;import java.beans.IntrospectionException;&lt;br /&gt;import java.beans.PropertyDescriptor;&lt;br /&gt;import java.util.List;&lt;br /&gt;import net.sf.jga.swing.GenericTableModel;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author esr&lt;br /&gt; */&lt;br /&gt;public class DataModel {&lt;br /&gt;    static public GenericTableModel getTableModel(List&lt;?&gt; l) throws IntrospectionException {&lt;br /&gt;        GenericTableModel model = null;&lt;br /&gt;        if (l.size() &gt; 0) {&lt;br /&gt;            Class c = l.get(0).getClass();&lt;br /&gt;            model = new GenericTableModel(c, l);&lt;br /&gt;            for (PropertyDescriptor p : java.beans.Introspector.getBeanInfo(c, Object.class).getPropertyDescriptors()) {&lt;br /&gt;                String s = p.getName();&lt;br /&gt;                s = s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();&lt;br /&gt;                model.addColumn(p.getPropertyType(), s);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return model;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;--------------------&lt;br /&gt;exemplo de chamada:&lt;br /&gt;&lt;br /&gt;jTable1.setModel(util.DataModel.getTableModel(lista));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-8096971108158090693?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/8096971108158090693/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=8096971108158090693' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/8096971108158090693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/8096971108158090693'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/08/mtodo-genrico-para-popular-um-jtable.html' title='Método genérico para popular um jTable direto da lista que vem do JPA'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-8227226698171947840</id><published>2008-08-05T11:08:00.001-07:00</published><updated>2008-08-05T11:09:19.848-07:00</updated><title type='text'>Qualquer semelhança com a realidade não passa de mera coincidência 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_JPb9uwq0zDg/SJiXSdBaiyI/AAAAAAAAAAU/js4foaf5eZc/s1600-h/dilbert_marketing.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_JPb9uwq0zDg/SJiXSdBaiyI/AAAAAAAAAAU/js4foaf5eZc/s400/dilbert_marketing.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5231097310474832674" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-8227226698171947840?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/8227226698171947840/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=8227226698171947840' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/8227226698171947840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/8227226698171947840'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/08/qualquer-semelhana-com-realidade-no.html' title='Qualquer semelhança com a realidade não passa de mera coincidência 2'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_JPb9uwq0zDg/SJiXSdBaiyI/AAAAAAAAAAU/js4foaf5eZc/s72-c/dilbert_marketing.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-3203173674334204419</id><published>2008-06-17T11:25:00.000-07:00</published><updated>2008-06-17T11:35:07.824-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>JPA List e List JSF</title><content type='html'>Adaptei um método publicado &lt;a href="http://lists.jboss.org/pipermail/jboss-user/2007-June/061507.html"&gt;aqui &lt;/a&gt;para fazer a conversão genérica de um List&lt;tipado&gt; (que é o retorno de uma consulta JPA) para um List&lt;selectitem&gt; que é utilizado pelos comboboxes no JSF. O método é um draft, pode ser otimizado, mas em fim, é uma sugestão. Penso que facilita a vida.&lt;br /&gt;Para se utilizar, se passa a lista, uma o nome do campo ID (como string) e o nome do campo de descrição (também como string). O retorno é um List&lt;selectitem&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public List&amp;lt;SelectItem&amp;gt; getItems(List entities, String idGetMthdName, String descGetMthdName) {&lt;br /&gt;        List&amp;lt;SelectItem&amp;gt; items = new Vector&amp;lt;SelectItem&amp;gt;();&lt;br /&gt;        try {&lt;br /&gt;            Method idMthd = null, nameMthd = null;&lt;br /&gt;            for (int i = 0; i &amp;lt; entities.size(); i++) {&lt;br /&gt;                Object entity = entities.get(i);&lt;br /&gt;                // On the first run, initialize reflection methods for object&lt;br /&gt;                if (idMthd == null) {&lt;br /&gt;                    Class entityClass = entity.getClass();&lt;br /&gt;                    idMthd = entityClass.getMethod(idGetMthdName, new Class[]{});&lt;br /&gt;                    nameMthd = entityClass.getMethod(descGetMthdName, new Class[]{});&lt;br /&gt;                }&lt;br /&gt;                // Retrieve values on the &lt;br /&gt;                //Integer id = (Integer)idMthd.invoke(entity, new Object[]{});&lt;br /&gt;                String id = (String) idMthd.invoke(entity, new Object[]{});&lt;br /&gt;                String name = (String) nameMthd.invoke(entity, new Object[]{});&lt;br /&gt;                //System.out.println("id=" + id);&lt;br /&gt;                //System.out.println("name=" + name);&lt;br /&gt;                // Add key information to select item list&lt;br /&gt;               // System.out.println("------------------------");&lt;br /&gt;                SelectItem item = new SelectItem();&lt;br /&gt;                item.setLabel(name);&lt;br /&gt;                item.setValue(id.toString());&lt;br /&gt;                items.add(item);&lt;br /&gt;            }&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            // TODO Auto-generated catch block&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;        //System.out.println("Fim");&lt;br /&gt;        return items;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-3203173674334204419?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/3203173674334204419/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=3203173674334204419' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/3203173674334204419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/3203173674334204419'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/06/jpa-list-e-list-jsf.html' title='JPA List e List&lt;SelectItem&gt; JSF'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-6910420538705917935</id><published>2008-06-11T19:51:00.000-07:00</published><updated>2008-06-11T19:53:23.331-07:00</updated><title type='text'>Qualquer semelhança com a realidade não passa de mera coincidência</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JPb9uwq0zDg/SFCPci4vonI/AAAAAAAAAAM/D7rDiEbD3so/s1600-h/securedownload.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_JPb9uwq0zDg/SFCPci4vonI/AAAAAAAAAAM/D7rDiEbD3so/s400/securedownload.jpg" alt="" id="BLOGGER_PHOTO_ID_5210822489431581298" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-6910420538705917935?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/6910420538705917935/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=6910420538705917935' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/6910420538705917935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/6910420538705917935'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/06/qualquer-semelhana-com-realidade-no.html' title='Qualquer semelhança com a realidade não passa de mera coincidência'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JPb9uwq0zDg/SFCPci4vonI/AAAAAAAAAAM/D7rDiEbD3so/s72-c/securedownload.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8249928193807124325.post-5095537812667120449</id><published>2008-05-07T21:23:00.000-07:00</published><updated>2008-05-07T21:24:13.024-07:00</updated><title type='text'>Blog Novo!!</title><content type='html'>Opa,&lt;br /&gt;Blog novo!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8249928193807124325-5095537812667120449?l=evertondewes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evertondewes.blogspot.com/feeds/5095537812667120449/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8249928193807124325&amp;postID=5095537812667120449' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/5095537812667120449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8249928193807124325/posts/default/5095537812667120449'/><link rel='alternate' type='text/html' href='http://evertondewes.blogspot.com/2008/05/blog-novo.html' title='Blog Novo!!'/><author><name>Everton</name><uri>http://www.blogger.com/profile/16517915897817585674</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_JPb9uwq0zDg/SMiry1B_iVI/AAAAAAAAAAk/shA4P-f9ul8/S220/nau_a_deriva.jpg'/></author><thr:total>0</thr:total></entry></feed>
