Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 21st, 2012  |  syntax: None  |  size: 4.70 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to render a checkbox?
  2. public class CheckBoxTableModel implements  AdvancedTableFormat {
  3.  
  4.      public Class getColumnClass(int column) {
  5.          if(column==4)
  6.         return Boolean.class;
  7.          else
  8.              return Object.class;
  9.     }
  10. }
  11.        
  12. private class TicketTableFormat implements AdvancedTableFormat<Ticket>  {
  13.  
  14.         private final String[] cols = new String[]{"Id", "From", "Subject", "Date", "Incomplete"};
  15.  
  16.         public int getColumnCount() {
  17.             return cols.length;
  18.         }
  19.  
  20.         public String getColumnName(int colId) {
  21.             return cols[colId];
  22.         }
  23.  
  24.         public Class getColumnClass(int col) {
  25.             if (col == 4) {
  26.                 return Boolean.class;
  27.             } else {
  28.                 return Object.class;
  29.             }
  30.         }
  31.  
  32.  
  33.         public Object getColumnValue(Ticket ticket, int colId) {
  34.  
  35.             switch (colId) {
  36.                 case 0:
  37.                     return ticket.getId();
  38.                 case 1:
  39.                     return ticket.getFrom();
  40.                 case 2:
  41.                     return ticket.getSubject();
  42.                 case 3:
  43.                     return ticket.getDate();
  44.                 case 4:
  45.                     return ticket.getIncomplete();
  46.             }
  47.             return null;
  48.         }
  49.  
  50.         public boolean isEditable(Ticket e, int col) {
  51.             if (col < 4) {
  52.                 return false;
  53.             } else {
  54.                 return true;
  55.             }
  56.         }
  57.  
  58.         public Ticket setColumnValue(Ticket e, Object o, int i) {
  59.             e.setB((Boolean) editedValue);
  60.             return e;          
  61.            }
  62.  
  63.         public Comparator getColumnComparator(int i) {
  64.             throw new UnsupportedOperationException("Not supported yet.");
  65.         }
  66.  
  67.     }
  68.        
  69. TicketTableFormat tbFormat = new TicketTableFormat();
  70.  TicketsModel = new EventTableModel(textFilteredTickets, tbFormat);
  71.  ticketTable.setModel(TicketsModel);
  72.        
  73. public int getColumnCount()
  74. public String getColumnName(int column)
  75. public Object getColumnValue(E model, int column)
  76. public boolean isEditable(E model, int column) // For making the checkbox editable
  77. public IFdsModel setColumnValue(E model, Object value, int column)
  78. public Class getColumnClass(int column) // For making it a Checkbox
  79. public Comparator<E> getColumnComparator(int arg0) // for sorting (if you have a SortedList)
  80.        
  81. import java.util.Comparator;
  82.  
  83. import javax.swing.JFrame;
  84. import javax.swing.JScrollPane;
  85. import javax.swing.JTable;
  86. import javax.swing.SwingUtilities;
  87.  
  88. import ca.odell.glazedlists.BasicEventList;
  89. import ca.odell.glazedlists.EventList;
  90. import ca.odell.glazedlists.gui.AdvancedTableFormat;
  91. import ca.odell.glazedlists.gui.WritableTableFormat;
  92. import ca.odell.glazedlists.swing.EventTableModel;
  93.  
  94. public class Tester {
  95.  
  96. private static class MyBoolean {
  97.     private Boolean b = Boolean.FALSE;
  98.  
  99.     public Boolean getB() {
  100.         return b;
  101.     }
  102.  
  103.     public void setB(Boolean b) {
  104.         this.b = b;
  105.     }
  106.  
  107. }
  108.  
  109. private static class BooleanTableFormat implements AdvancedTableFormat<MyBoolean>, WritableTableFormat<MyBoolean> {
  110.  
  111.     @Override
  112.     public int getColumnCount() {
  113.         return 1;
  114.     }
  115.  
  116.     @Override
  117.     public String getColumnName(int column) {
  118.         return "Bool";
  119.     }
  120.  
  121.     @Override
  122.     public Object getColumnValue(MyBoolean baseObject, int column) {
  123.         return baseObject.getB();
  124.     }
  125.  
  126.     @Override
  127.     public Class getColumnClass(int column) {
  128.         return Boolean.class;
  129.     }
  130.  
  131.     @Override
  132.     public Comparator getColumnComparator(int column) {
  133.         throw new IllegalStateException("Not yet implemented.");
  134.     }
  135.  
  136.     @Override
  137.     public boolean isEditable(MyBoolean baseObject, int column) {
  138.         return true;
  139.     }
  140.  
  141.     @Override
  142.     public MyBoolean setColumnValue(MyBoolean baseObject, Object editedValue, int column) {
  143.         baseObject.setB((Boolean) editedValue);
  144.         return baseObject;
  145.     }
  146. }
  147.  
  148. public static void main(String[] args) {
  149.  
  150.     SwingUtilities.invokeLater(new Runnable() {
  151.         @Override
  152.         public void run() {
  153.             EventList<MyBoolean> list = new BasicEventList<MyBoolean>();
  154.             list.add(new MyBoolean());
  155.             list.add(new MyBoolean());
  156.             EventTableModel<MyBoolean> etm = new EventTableModel<MyBoolean>(list, new BooleanTableFormat());
  157.             JTable table = new JTable(etm);
  158.             JFrame f = new JFrame("Tester");
  159.             f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  160.             f.setSize(300, 200);
  161.             f.getContentPane().add(new JScrollPane(table));
  162.             f.setVisible(true);
  163.         }
  164.     });
  165.  
  166. }
  167. }
  168.        
  169. @Override
  170. public boolean isCellEditable(int row, int colNum) {
  171.     switch (colNum) {
  172.         case 0:
  173.             return false;
  174.         default:
  175.             return false;
  176.     }
  177. }