svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.swing / org.gvsig.expressionevaluator.swing.impl / src / main / java / org / gvsig / expressionevaluator / swing / impl / DefaultExpressionEvaluatorSwingManager.java @ 43970
History | View | Annotate | Download (3.44 KB)
1 |
|
---|---|
2 |
package org.gvsig.expressionevaluator.swing.impl; |
3 |
|
4 |
import java.util.ArrayList; |
5 |
import java.util.HashMap; |
6 |
import java.util.List; |
7 |
import java.util.Map; |
8 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
9 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
10 |
import org.gvsig.expressionevaluator.Function; |
11 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager; |
12 |
import org.gvsig.expressionevaluator.swing.JExpressionBuilder; |
13 |
import org.gvsig.expressionevaluator.swing.JExpressionBuilder.Element; |
14 |
import org.gvsig.expressionevaluator.swing.JExpressionBuilder.GroupElement; |
15 |
|
16 |
|
17 |
public class DefaultExpressionEvaluatorSwingManager |
18 |
implements ExpressionEvaluatorSwingManager {
|
19 |
|
20 |
private List<Element> elements; |
21 |
|
22 |
public DefaultExpressionEvaluatorSwingManager() {
|
23 |
|
24 |
} |
25 |
|
26 |
private void initElements() { |
27 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
28 |
Map<String, Function> functions = new HashMap<>(); |
29 |
functions.putAll(manager.getAllFunctions()); |
30 |
functions.putAll(manager.getAllOperators()); |
31 |
|
32 |
Map<String,GroupElement> functionGroups = new HashMap<>(); |
33 |
Map<String,GroupElement> operatorGroups = new HashMap<>(); |
34 |
for (Function function : functions.values()) {
|
35 |
if( function.isOperator() ) {
|
36 |
String groupName = function.group();
|
37 |
GroupElement group = operatorGroups.get(groupName); |
38 |
if( group == null ) { |
39 |
group = new DefaultGroupElement(groupName);
|
40 |
operatorGroups.put(groupName, group); |
41 |
} |
42 |
group.addElement(new DefaultFunctionElement(function));
|
43 |
} else {
|
44 |
String groupName = function.group();
|
45 |
GroupElement group = functionGroups.get(groupName); |
46 |
if( group == null ) { |
47 |
group = new DefaultGroupElement(groupName);
|
48 |
functionGroups.put(groupName, group); |
49 |
} |
50 |
group.addElement(new DefaultFunctionElement(function));
|
51 |
} |
52 |
} |
53 |
GroupElement builtinFunctions = this.createGroup("_Builtin_functions"); |
54 |
for (GroupElement group : functionGroups.values()) {
|
55 |
builtinFunctions.addElement(group); |
56 |
} |
57 |
GroupElement operatorFunctions = new DefaultGroupElement("_Operators"); |
58 |
for (GroupElement group : operatorGroups.values()) {
|
59 |
operatorFunctions.addElement(group); |
60 |
} |
61 |
this.elements = new ArrayList<>(); |
62 |
this.elements.add(operatorFunctions);
|
63 |
this.elements.add(builtinFunctions);
|
64 |
} |
65 |
|
66 |
@Override
|
67 |
public List<Element> getElements() { |
68 |
if( this.elements==null ) { |
69 |
initElements(); |
70 |
} |
71 |
return this.elements; |
72 |
} |
73 |
|
74 |
@Override
|
75 |
public GroupElement createGroup(String name) { |
76 |
DefaultGroupElement g = new DefaultGroupElement(name);
|
77 |
return g;
|
78 |
} |
79 |
|
80 |
@Override
|
81 |
public GroupElement createGroup(String name, List<Element>elements) { |
82 |
DefaultGroupElement g = new DefaultGroupElement(name);
|
83 |
return g;
|
84 |
} |
85 |
|
86 |
@Override
|
87 |
public Element createElement(Function function) { |
88 |
Element f = new DefaultFunctionElement(function); |
89 |
return f;
|
90 |
} |
91 |
|
92 |
@Override
|
93 |
public JExpressionBuilder createJExpressionBuilder() {
|
94 |
DefaultJExpressionBuilder x = new DefaultJExpressionBuilder(this); |
95 |
return x;
|
96 |
} |
97 |
|
98 |
} |