Advertisement
Guest User

Untitled

a guest
Aug 28th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.96 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.GridBagConstraints;
  3. import java.awt.GridBagLayout;
  4. import java.awt.GridLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.util.Date;
  8.  
  9. import javax.swing.BorderFactory;
  10. import javax.swing.JButton;
  11. import javax.swing.JComboBox;
  12. import javax.swing.JComponent;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JPanel;
  16. import javax.swing.JScrollPane;
  17. import javax.swing.JSpinner;
  18. import javax.swing.JTabbedPane;
  19. import javax.swing.JTable;
  20. import javax.swing.JTextField;
  21. import javax.swing.RowFilter;
  22. import javax.swing.table.AbstractTableModel;
  23. import javax.swing.table.TableRowSorter;
  24.  
  25. public class LogTab extends JPanel {
  26.     private static final String ALL_CATEGORIES_STR = "Wszystkie";
  27.     private JFrame mainFrame;
  28.     private JTable table;
  29.     private String selectedCategory = "";
  30.  
  31.     public LogTab(final JFrame mf) {
  32.     mainFrame = mf;
  33.     selectedCategory = ALL_CATEGORIES_STR;
  34.     GridBagLayout layout = new GridBagLayout();
  35.     setLayout(layout);
  36.  
  37.     GridBagConstraints c = new GridBagConstraints();
  38.  
  39.     c.gridx = 0;
  40.     c.gridy = 0;
  41.     c.weightx = 1;
  42.     c.weighty = 0;
  43.     c.gridwidth = 1;
  44.     c.fill = GridBagConstraints.BOTH;
  45.     add(new JLabel("Kategoria"), c);
  46.     LogCategory[] categories = LogCategory.values();
  47.     String[] categoriesStrings = new String[categories.length + 1];
  48.     categoriesStrings[0] = ALL_CATEGORIES_STR;
  49.     for (int i = 0; i < categories.length; i++) {
  50.         categoriesStrings[i + 1] = categories[i].getName();
  51.     }
  52.  
  53.     JComboBox categoryList = new JComboBox(categoriesStrings);
  54.     categoryList.addActionListener(new CategoryChangeListener());
  55.     c.gridx = 1;
  56.     c.gridy = 0;
  57.     c.gridwidth = 5;
  58.     add(categoryList, c);
  59.  
  60.     table = new JTable();
  61.     TableModel tableModel = new LogTableModel();
  62.     tableModel.setList(((MainFrame) mainFrame).getLog());
  63.     table.setModel(tableModel);
  64.  
  65.     RowFilter<Object, Object> filter = new LogTableRowFilter();
  66.     TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(
  67.         tableModel);
  68.     sorter.setRowFilter(filter);
  69.     table.setRowSorter(sorter);
  70.  
  71.     JScrollPane scrollPane = new JScrollPane(table);
  72.     table.setFillsViewportHeight(true);
  73.     c.gridx = 0;
  74.     c.gridy = 1;
  75.     c.weightx = 100;
  76.     c.weighty = 100;
  77.     c.gridwidth = 6;
  78.    
  79.     add(scrollPane, c);
  80.     }
  81.  
  82.     public JTable getTable() {
  83.     return table;
  84.     }
  85.    
  86.     private class LogTableRowFilter extends RowFilter<Object, Object> {
  87.     public boolean include(Entry entry) {
  88.         String category = (String) entry
  89.             .getValue(LogTableModel.CATEGORY_COLUMN_IDX);
  90.         return (selectedCategory == ALL_CATEGORIES_STR) ? true
  91.             : (category == selectedCategory);
  92.         }
  93.     }
  94.    
  95.     private class CategoryChangeListener implements ActionListener {
  96.     public void actionPerformed(ActionEvent e) {
  97.         JComboBox cb = (JComboBox) e.getSource();
  98.         selectedCategory = (String) cb.getSelectedItem();
  99.         ((AbstractTableModel) getTable().getModel()).fireTableDataChanged();
  100.         }
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement