Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.swing / org.gvsig.fmap.dal.swing.impl / src / main / java / org / gvsig / fmap / dal / swing / impl / searchpanel / SearchConditionPanelAdvanced.java @ 44764

History | View | Annotate | Download (3.74 KB)

1
package org.gvsig.fmap.dal.swing.impl.searchpanel;
2

    
3
import javax.swing.JButton;
4
import javax.swing.JComponent;
5
import javax.swing.event.ChangeListener;
6
import javax.swing.text.JTextComponent;
7
import org.gvsig.expressionevaluator.Expression;
8
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
9
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
10
import org.gvsig.expressionevaluator.swing.ExpressionPickerController;
11
import org.gvsig.fmap.dal.feature.FeatureStore;
12
import org.gvsig.fmap.dal.swing.DALSwingLocator;
13
import org.gvsig.fmap.dal.swing.searchpanel.SearchConditionPanel;
14
import org.gvsig.tools.swing.api.ChangeListenerHelper;
15
import org.gvsig.tools.swing.api.ToolsSwingLocator;
16

    
17
/**
18
 *
19
 * @author jjdelcerro
20
 */
21
public class SearchConditionPanelAdvanced implements SearchConditionPanel {
22

    
23
    @Override
24
    public JComponent asJComponent() {
25
        return null;
26
    }
27

    
28
  private static class SearchConditionPanelAdvancedFactory 
29
     implements SearchConditionPanelFactory
30
  {
31

    
32
    @Override
33
    public boolean isApplicable(FeatureStore store) {
34
      return true;
35
    }
36

    
37
    @Override
38
    public SearchConditionPanel create(Object... os) {
39
      return null;
40
    }
41

    
42
    @Override
43
    public String getName() {
44
      return "Advanced";
45
    }
46
    
47
  }
48
  
49
  private static final SearchConditionPanelFactory FACTORY = new SearchConditionPanelAdvancedFactory();
50
  
51
  private final ExpressionPickerController advancedExpression;
52
  private final FeatureStore store;
53
  private final ChangeListenerHelper changeListenerHelper;
54
  
55
  public SearchConditionPanelAdvanced(
56
          FeatureStore store,
57
          JTextComponent text, 
58
          JButton button, 
59
          JButton bookmarks, 
60
          JButton history
61
    ) {
62
      this.changeListenerHelper = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper();
63
      this.store = store;
64
      ExpressionEvaluatorSwingManager expressionSwingManager = ExpressionEvaluatorSwingLocator.getManager();
65
      this.advancedExpression = expressionSwingManager.createExpressionPickerController(
66
              text, 
67
              button,
68
              bookmarks,
69
              history
70
      );
71
      this.advancedExpression.addElement(
72
          DALSwingLocator.getSwingManager().createFeatureStoreElement(store)
73
      );
74
    initComponents();
75
  }
76

    
77
  @Override
78
  public SearchConditionPanelFactory getFactory() {
79
    return FACTORY;
80
  }
81
  
82
  private void initComponents() {
83
  }
84

    
85
  @Override
86
  public void clear() {
87
        this.advancedExpression.set(null);
88
        this.changeListenerHelper.fireEvent();
89
  }
90

    
91
  @Override
92
  public Expression get() {
93
    return this.advancedExpression.get();
94
  }
95

    
96
  @Override
97
  public boolean isValid(StringBuilder message) {
98
    if( this.advancedExpression.isValid() ) {
99
      return true;
100
    }
101
    message.append("The expression entered is not valid.");
102
    return false;
103
  }
104
  
105
  @Override
106
  public boolean set(Expression filter) {
107
    this.advancedExpression.set(filter);
108
    this.changeListenerHelper.fireEvent();
109
    return true;
110
  }
111

    
112
  @Override
113
  public void setEnabled(boolean enabled) {
114
        this.advancedExpression.setEnabled(enabled);
115
  }
116
  
117
  @Override
118
  public void addChangeListener(ChangeListener listener) {
119
    this.changeListenerHelper.addChangeListener(listener);
120
  }
121

    
122
  @Override
123
  public ChangeListener[] getChangeListeners() {
124
    return this.changeListenerHelper.getChangeListeners();
125
  }
126

    
127
  @Override
128
  public void removeChangeListener(ChangeListener listener) {
129
    this.changeListenerHelper.removeChangeListener(listener);
130
  }
131

    
132
  @Override
133
  public void removeAllChangeListener() {
134
    this.changeListenerHelper.removeAllChangeListener();
135
  }
136

    
137
  @Override
138
  public boolean hasChangeListeners() {
139
    return this.changeListenerHelper.hasChangeListeners();
140
  }
141
  
142
}