Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Date;
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JComponent;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JSpinner;
- import javax.swing.JTabbedPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.RowFilter;
- import javax.swing.table.AbstractTableModel;
- import javax.swing.table.TableRowSorter;
- public class LogTab extends JPanel {
- private static final String ALL_CATEGORIES_STR = "Wszystkie";
- private JFrame mainFrame;
- private JTable table;
- private String selectedCategory = "";
- public LogTab(final JFrame mf) {
- mainFrame = mf;
- selectedCategory = ALL_CATEGORIES_STR;
- GridBagLayout layout = new GridBagLayout();
- setLayout(layout);
- GridBagConstraints c = new GridBagConstraints();
- c.gridx = 0;
- c.gridy = 0;
- c.weightx = 1;
- c.weighty = 0;
- c.gridwidth = 1;
- c.fill = GridBagConstraints.BOTH;
- add(new JLabel("Kategoria"), c);
- LogCategory[] categories = LogCategory.values();
- String[] categoriesStrings = new String[categories.length + 1];
- categoriesStrings[0] = ALL_CATEGORIES_STR;
- for (int i = 0; i < categories.length; i++) {
- categoriesStrings[i + 1] = categories[i].getName();
- }
- JComboBox categoryList = new JComboBox(categoriesStrings);
- categoryList.addActionListener(new CategoryChangeListener());
- c.gridx = 1;
- c.gridy = 0;
- c.gridwidth = 5;
- add(categoryList, c);
- table = new JTable();
- TableModel tableModel = new LogTableModel();
- tableModel.setList(((MainFrame) mainFrame).getLog());
- table.setModel(tableModel);
- RowFilter<Object, Object> filter = new LogTableRowFilter();
- TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(
- tableModel);
- sorter.setRowFilter(filter);
- table.setRowSorter(sorter);
- JScrollPane scrollPane = new JScrollPane(table);
- table.setFillsViewportHeight(true);
- c.gridx = 0;
- c.gridy = 1;
- c.weightx = 100;
- c.weighty = 100;
- c.gridwidth = 6;
- add(scrollPane, c);
- }
- public JTable getTable() {
- return table;
- }
- private class LogTableRowFilter extends RowFilter<Object, Object> {
- public boolean include(Entry entry) {
- String category = (String) entry
- .getValue(LogTableModel.CATEGORY_COLUMN_IDX);
- return (selectedCategory == ALL_CATEGORIES_STR) ? true
- : (category == selectedCategory);
- }
- }
- private class CategoryChangeListener implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- JComboBox cb = (JComboBox) e.getSource();
- selectedCategory = (String) cb.getSelectedItem();
- ((AbstractTableModel) getTable().getModel()).fireTableDataChanged();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement