1 31 package org.objectweb.proactive.ic2d.gui.dialog; 32 33 import org.objectweb.proactive.ic2d.util.ActiveObjectFilter; 34 35 public class FilteredClassesPanel extends javax.swing.JPanel { 36 37 private javax.swing.JList list; 38 private javax.swing.DefaultListModel listModel; 39 40 public FilteredClassesPanel(ActiveObjectFilter filter) { 41 super(new java.awt.GridLayout (1,1)); 42 listModel = new javax.swing.DefaultListModel (); 43 java.util.Iterator iterator = filter.iterator(); 44 if (! iterator.hasNext()) { 45 listModel.addElement(new javax.swing.JCheckBox ("There is no filtered classes.")); 46 } else { 47 listModel.addElement(new javax.swing.JCheckBox ("Uncheck the classes you don't want to filter anymore")); 48 } 49 while (iterator.hasNext()) { 50 javax.swing.JCheckBox cb = new javax.swing.JCheckBox ((String ) iterator.next()); 51 cb.setSelected(true); 52 listModel.addElement(cb); 53 } 54 55 list = new javax.swing.JList (listModel); 57 list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); 58 list.setSelectedIndex(0); 59 list.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 60 public void valueChanged(javax.swing.event.ListSelectionEvent e) { 61 if (e.getValueIsAdjusting()) 62 return; 63 if (list.getSelectedIndex() != -1) { 64 javax.swing.JCheckBox cb = (javax.swing.JCheckBox ) listModel.get(list.getSelectedIndex()); 65 cb.setSelected(!cb.isSelected()); 66 } 67 } 68 }); 69 list.setCellRenderer(new MyCellRenderer()); 70 javax.swing.JScrollPane listScrollPane = new javax.swing.JScrollPane (list); 71 add(listScrollPane); 72 } 73 74 public boolean updateFilter(ActiveObjectFilter filter) { 75 boolean updated = false; 76 for (int i = 1; i < listModel.size(); i++) { 77 javax.swing.JCheckBox cb = (javax.swing.JCheckBox ) listModel.get(i); 78 if (!cb.isSelected()) { 79 updated = filter.removeClass(cb.getText()) || updated; 80 } 81 } 82 return updated; 83 } 84 85 private class MyCellRenderer implements javax.swing.ListCellRenderer { 86 public java.awt.Component getListCellRendererComponent(javax.swing.JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { 91 javax.swing.JCheckBox cb = (javax.swing.JCheckBox ) value; 92 if (isSelected) { 93 cb.setBackground(list.getSelectionBackground()); 94 cb.setForeground(list.getSelectionForeground()); 95 } else { 96 cb.setBackground(list.getBackground()); 97 cb.setForeground(list.getForeground()); 98 } 99 cb.setEnabled(list.isEnabled()); 100 cb.setFont(list.getFont()); 101 return cb; 102 } 103 } 104 } 105 | Popular Tags |