OSDN Git Service

Remove Id tag
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / ui / swing / filter / TargetNameComparisonPairFilterComponentService.java
1 package jp.sourceforge.stigmata.ui.swing.filter;
2
3 import java.awt.GridLayout;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import javax.swing.JComboBox;
8 import javax.swing.JLabel;
9 import javax.swing.JTextField;
10
11 import jp.sourceforge.stigmata.ComparisonPairFilter;
12 import jp.sourceforge.stigmata.filter.FilterTarget;
13 import jp.sourceforge.stigmata.filter.TargetNameComparisonPairFilter;
14 import jp.sourceforge.stigmata.filter.TargetNameComparisonPairFilterService;
15 import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
16 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
17
18 /**
19  * @author Haruaki TAMADA
20  */
21 public class TargetNameComparisonPairFilterComponentService extends AbstractComparisonPairFilterComponentService{
22
23     @Override
24     public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service){
25         return new Pane(frame, service);
26     }
27
28     @Override
29     public String getFilterName(){
30         return "name";
31     }
32
33     @Override
34     public ComparisonPairFilterSpi getComparisonPairFilterService(){
35         return new TargetNameComparisonPairFilterService();
36     }
37
38     private static class Pane extends ComparisonPairFilterPane{
39         private static final long serialVersionUID = 8912037614500713027L;
40         private ComparisonPairFilterSpi service;
41         private JComboBox criterionType;
42         private JTextField value;
43         private JComboBox targetType;
44
45         public Pane(StigmataFrame frame, ComparisonPairFilterSpi service){
46             super(frame);
47             this.service = service;
48             initLayouts();
49         }
50
51         @Override
52         public String[] getErrors(){
53             List<String> errors = new ArrayList<String>();
54             if(value.getText().trim().equals("")){
55                 errors.add(getMessages().get("error.empty.value"));
56             }
57
58             return errors.toArray(new String[errors.size()]);
59         }
60
61         @Override
62         public ComparisonPairFilter getFilter(){
63             try{
64                 TargetNameComparisonPairFilter filter = new TargetNameComparisonPairFilter(service);
65                 filter.setCriterion(getCriterion((String)criterionType.getSelectedItem()));
66                 filter.setValue(value.getText());
67                 filter.setTarget(getTarget((String)targetType.getSelectedItem()));
68
69                 return filter;
70             } catch(Exception e){
71             }
72             return null;
73         }
74
75         @Override
76         public void resetComponents(){
77             value.setText("");
78             criterionType.setSelectedIndex(0);
79             targetType.setSelectedItem(getDisplayTarget(FilterTarget.BOTH_TARGETS));
80         }
81
82         @Override
83         public void setFilter(ComparisonPairFilter cpf){
84             TargetNameComparisonPairFilter filter = (TargetNameComparisonPairFilter)cpf;
85             criterionType.setSelectedItem(getDisplayCriterion(filter.getCriterion()));
86             value.setText(filter.getValue());
87             targetType.setSelectedItem(getDisplayTarget(filter.getTarget()));
88         }
89
90         private void initLayouts(){
91             JLabel label = new JLabel(getMessages().get("filter.name.label"));
92             value = new JTextField();
93             criterionType = createCriteriaBox(TargetNameComparisonPairFilter.getValidCriteria());
94             targetType = createTargetBox();
95
96             setLayout(new GridLayout(4, 1));
97             add(label);
98             add(targetType);
99             add(criterionType);
100             add(value);
101         }
102     };
103 }