EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.dependencyfinder.gui]

COVERAGE SUMMARY FOR SOURCE FILE [FilterActionListener.java]

nameclass, %method, %block, %line, %
FilterActionListener.java0%   (0/1)0%   (0/5)0%   (0/146)0%   (0/27)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class FilterActionListener0%   (0/1)0%   (0/5)0%   (0/146)0%   (0/27)
<static initializer> 0%   (0/1)0%   (0/5)0%   (0/1)
FilterActionListener (OOMetrics): void 0%   (0/1)0%   (0/6)0%   (0/3)
actionPerformed (ActionEvent): void 0%   (0/1)0%   (0/6)0%   (0/2)
getFilterMetrics (Collection): Collection 0%   (0/1)0%   (0/32)0%   (0/5)
run (): void 0%   (0/1)0%   (0/97)0%   (0/16)

1/*
2 *  Copyright (c) 2001-2009, Jean Tessier
3 *  All rights reserved.
4 *  
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *  
9 *      * Redistributions of source code must retain the above copyright
10 *        notice, this list of conditions and the following disclaimer.
11 *  
12 *      * Redistributions in binary form must reproduce the above copyright
13 *        notice, this list of conditions and the following disclaimer in the
14 *        documentation and/or other materials provided with the distribution.
15 *  
16 *      * Neither the name of Jean Tessier nor the names of his contributors
17 *        may be used to endorse or promote products derived from this software
18 *        without specific prior written permission.
19 *  
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
24 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33package com.jeantessier.dependencyfinder.gui;
34 
35import java.awt.event.*;
36import java.util.*;
37import javax.swing.*;
38 
39import org.apache.oro.text.*;
40import org.apache.oro.text.perl.*;
41 
42import com.jeantessier.metrics.*;
43 
44public class FilterActionListener implements Runnable, ActionListener {
45    private static final Perl5Util perl = new Perl5Util();
46 
47    private OOMetrics model;
48 
49    public FilterActionListener(OOMetrics model) {
50        this.model = model;
51    }
52 
53    public void actionPerformed(ActionEvent event) {
54        new Thread(this).start();
55    }
56 
57    public void run() {
58        try {
59            Date start = new Date();
60 
61            model.getStatusLine().showInfo("Filtering ...");
62            model.getGroupsModel().updateMetrics(getFilterMetrics(model.getMetricsFactory().getGroupMetrics()));
63            model.getClassesModel().updateMetrics(getFilterMetrics(model.getMetricsFactory().getClassMetrics()));
64            model.getMethodsModel().updateMetrics(getFilterMetrics(model.getMetricsFactory().getMethodMetrics()));
65 
66            Date stop = new Date();
67 
68            model.getStatusLine().showInfo("Done (" + ((stop.getTime() - start.getTime()) / (double) 1000) + " secs).");
69            model.setTitle("OO Metrics - Extractor");
70        } catch (MalformedCachePatternException ex) {
71            JOptionPane.showMessageDialog(model, ex.getMessage(), "Malformed pattern", JOptionPane.ERROR_MESSAGE);
72            model.getStatusLine().showInfo("Ready.");
73        } catch (Exception ex) {
74            JOptionPane.showMessageDialog(model, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
75            model.getStatusLine().showInfo("Ready.");
76        }
77    }
78 
79    private Collection<Metrics> getFilterMetrics(Collection<Metrics> metricsList) {
80        Collection<Metrics> result = new ArrayList<Metrics>(metricsList.size());
81 
82        for (Metrics metrics : metricsList) {
83            if (perl.match(model.getFilterField().getText(), metrics.getName())) {
84                result.add(metrics);
85            }
86        }
87 
88        return result;
89    }
90}

[all classes][com.jeantessier.dependencyfinder.gui]
EMMA 2.0.5312 (C) Vladimir Roubtsov