1 32 33 package com.jeantessier.dependencyfinder.gui; 34 35 import java.awt.event.*; 36 import java.util.*; 37 38 import javax.swing.*; 39 40 import org.apache.oro.text.perl.*; 41 42 import com.jeantessier.classreader.*; 43 import com.jeantessier.metrics.*; 44 45 public class FilterActionListener implements Runnable , ActionListener { 46 private static final Perl5Util perl = new Perl5Util(); 47 48 private OOMetrics model; 49 50 public FilterActionListener(OOMetrics model) { 51 this.model = model; 52 } 53 54 public void actionPerformed(ActionEvent event) { 55 new Thread (this).start(); 56 } 57 58 public void run() { 59 try { 60 Date start = new Date(); 61 62 model.getStatusLine().showInfo("Filtering ..."); 63 model.getGroupsModel().updateMetrics(getFilterMetrics(model.getMetricsFactory().getGroupMetrics())); 64 model.getClassesModel().updateMetrics(getFilterMetrics(model.getMetricsFactory().getClassMetrics())); 65 model.getMethodsModel().updateMetrics(getFilterMetrics(model.getMetricsFactory().getMethodMetrics())); 66 67 Date stop = new Date(); 68 69 model.getStatusLine().showInfo("Done (" + ((stop.getTime() - start.getTime()) / (double) 1000) + " secs)."); 70 model.setTitle("OO Metrics - Extractor"); 71 } catch (MalformedPerl5PatternException ex) { 72 JOptionPane dialog = new JOptionPane(); 73 dialog.showMessageDialog(model, ex.getMessage(), "Malformed pattern", JOptionPane.ERROR_MESSAGE); 74 model.getStatusLine().showInfo("Ready."); 75 } catch (Exception ex) { 76 JOptionPane dialog = new JOptionPane(); 77 dialog.showMessageDialog(model, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 78 model.getStatusLine().showInfo("Ready."); 79 } 80 } 81 82 private Collection getFilterMetrics(Collection metricsList) { 83 Collection result = new ArrayList(metricsList.size()); 84 85 Iterator i = metricsList.iterator(); 86 while (i.hasNext()) { 87 Metrics metrics = (Metrics) i.next(); 88 89 if (perl.match(model.getFilterField().getText(), metrics.getName())) { 90 result.add(metrics); 91 } 92 } 93 94 return result; 95 } 96 } 97 | Popular Tags |