1 package jp.sourceforge.stigmata.ui.swing.filter;
3 import java.awt.GridLayout;
4 import java.util.ArrayList;
7 import javax.swing.JComboBox;
8 import javax.swing.JLabel;
9 import javax.swing.JTextField;
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;
19 * @author Haruaki TAMADA
21 public class TargetNameComparisonPairFilterComponentService extends AbstractComparisonPairFilterComponentService{
24 public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service){
25 return new Pane(frame, service);
29 public String getFilterName(){
34 public ComparisonPairFilterSpi getComparisonPairFilterService(){
35 return new TargetNameComparisonPairFilterService();
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;
45 public Pane(StigmataFrame frame, ComparisonPairFilterSpi service){
47 this.service = service;
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"));
58 return errors.toArray(new String[errors.size()]);
62 public ComparisonPairFilter getFilter(){
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()));
76 public void resetComponents(){
78 criterionType.setSelectedIndex(0);
79 targetType.setSelectedItem(getDisplayTarget(FilterTarget.BOTH_TARGETS));
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()));
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();
96 setLayout(new GridLayout(4, 1));