Revision 44035
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/SavedPointsElement.java | ||
---|---|---|
1 |
package org.gvsig.app.project.documents.view.expressionevaluator; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.Iterator; |
|
5 |
import java.util.List; |
|
6 |
import java.util.Objects; |
|
7 |
import org.apache.commons.lang3.tuple.Pair; |
|
8 |
import org.gvsig.expressionevaluator.Function; |
|
9 |
import org.gvsig.expressionevaluator.swing.Element; |
|
10 |
import org.gvsig.expressionevaluator.swing.Element.GroupElement; |
|
11 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator; |
|
12 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager; |
|
13 |
import org.gvsig.expressionevaluator.swing.spi.AbstractElement; |
|
14 |
import org.gvsig.fmap.geom.primitive.Point; |
|
15 |
import org.gvsig.temporarystorage.TemporaryStorageGroup; |
|
16 |
import org.gvsig.temporarystorage.TemporaryStorageLocator; |
|
17 |
import org.gvsig.temporarystorage.TemporaryStorageManager; |
|
18 |
import org.gvsig.tools.ToolsLocator; |
|
19 |
|
|
20 |
/** |
|
21 |
* |
|
22 |
* @author jjdelcerro |
|
23 |
*/ |
|
24 |
public class SavedPointsElement |
|
25 |
extends AbstractElement |
|
26 |
implements GroupElement { |
|
27 |
|
|
28 |
private class PointEntryElement |
|
29 |
extends AbstractElement |
|
30 |
implements ConstantElement { |
|
31 |
|
|
32 |
private final Object value; |
|
33 |
|
|
34 |
public PointEntryElement(Object value, String name) { |
|
35 |
super(name, null, "expressionbuilder-element-constant"); |
|
36 |
this.value = value; |
|
37 |
} |
|
38 |
|
|
39 |
@Override |
|
40 |
public Object getValue() { |
|
41 |
return value; |
|
42 |
} |
|
43 |
} |
|
44 |
|
|
45 |
private final List<Element> childs; |
|
46 |
|
|
47 |
public SavedPointsElement() { |
|
48 |
super(ToolsLocator.getI18nManager().getTranslation("Saved points"), null, "view-query-coordinate-capture"); |
|
49 |
|
|
50 |
ExpressionEvaluatorSwingManager evManager = ExpressionEvaluatorSwingLocator.getManager(); |
|
51 |
TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager(); |
|
52 |
TemporaryStorageGroup storage = manager.create("Points", Point.class); |
|
53 |
|
|
54 |
this.childs = new ArrayList<>(); |
|
55 |
for (Pair<String, Object> entry : storage.asList()) { |
|
56 |
ConstantElement e = new PointEntryElement(entry.getValue(),entry.getKey()); |
|
57 |
this.childs.add(e); |
|
58 |
} |
|
59 |
} |
|
60 |
|
|
61 |
@Override |
|
62 |
public Element get(int index) { |
|
63 |
return this.childs.get(index); |
|
64 |
} |
|
65 |
|
|
66 |
@Override |
|
67 |
public int size() { |
|
68 |
return this.childs.size(); |
|
69 |
} |
|
70 |
|
|
71 |
@Override |
|
72 |
public Iterator<Element> iterator() { |
|
73 |
return this.childs.iterator(); |
|
74 |
} |
|
75 |
|
|
76 |
@Override |
|
77 |
public void addElement(Element element) { |
|
78 |
this.childs.add(element); |
|
79 |
} |
|
80 |
|
|
81 |
@Override |
|
82 |
public void addElement(Function function) { |
|
83 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
|
84 |
} |
|
85 |
|
|
86 |
@Override |
|
87 |
public List<Element> getElements() { |
|
88 |
return this.childs; |
|
89 |
} |
|
90 |
|
|
91 |
@Override |
|
92 |
public boolean hasSubgroups() { |
|
93 |
return false; |
|
94 |
} |
|
95 |
|
|
96 |
@Override |
|
97 |
public boolean hasMoreElements() { |
|
98 |
return false; |
|
99 |
} |
|
100 |
|
|
101 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewElementFactory.java | ||
---|---|---|
21 | 21 |
ViewElement e = new ViewElement(); |
22 | 22 |
return e; |
23 | 23 |
} |
24 |
|
|
25 |
|
|
24 |
|
|
25 |
@Override |
|
26 |
public boolean isAutoload() { |
|
27 |
return true; |
|
28 |
} |
|
29 |
|
|
26 | 30 |
public static void selfRegister() { |
27 | 31 |
ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager(); |
28 | 32 |
ViewElementFactory factory = new ViewElementFactory(); |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/SavedPointsElementFactory.java | ||
---|---|---|
1 |
package org.gvsig.app.project.documents.view.expressionevaluator; |
|
2 |
|
|
3 |
import org.gvsig.andami.IconThemeHelper; |
|
4 |
import org.gvsig.expressionevaluator.swing.Element; |
|
5 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator; |
|
6 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager; |
|
7 |
import org.gvsig.expressionevaluator.swing.spi.AbstractElementFactory; |
|
8 |
|
|
9 |
/** |
|
10 |
* |
|
11 |
* @author jjdelcerro |
|
12 |
*/ |
|
13 |
public class SavedPointsElementFactory extends AbstractElementFactory { |
|
14 |
|
|
15 |
public SavedPointsElementFactory() { |
|
16 |
super("CapturedPoints", null); |
|
17 |
} |
|
18 |
|
|
19 |
@Override |
|
20 |
public Element createElement(Object... parameters) { |
|
21 |
Element e = new SavedPointsElement(); |
|
22 |
return e; |
|
23 |
} |
|
24 |
|
|
25 |
@Override |
|
26 |
public boolean isAutoload() { |
|
27 |
return true; |
|
28 |
} |
|
29 |
|
|
30 |
public static void selfRegister() { |
|
31 |
ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager(); |
|
32 |
SavedPointsElementFactory factory = new SavedPointsElementFactory(); |
|
33 |
manager.registerElement(factory); |
|
34 |
} |
|
35 |
|
|
36 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/ProjectSymbolTable.java | ||
---|---|---|
27 | 27 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
28 | 28 |
import org.gvsig.fmap.geom.Geometry; |
29 | 29 |
import org.gvsig.fmap.geom.primitive.Envelope; |
30 |
import org.gvsig.fmap.geom.primitive.Point; |
|
30 | 31 |
import org.gvsig.fmap.mapcontext.MapContext; |
31 | 32 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
32 | 33 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
33 | 34 |
import org.gvsig.fmap.mapcontrol.AreaAndPerimeterCalculator; |
35 |
import org.gvsig.temporarystorage.TemporaryStorageGroup; |
|
36 |
import org.gvsig.temporarystorage.TemporaryStorageLocator; |
|
37 |
import org.gvsig.temporarystorage.TemporaryStorageManager; |
|
34 | 38 |
|
35 | 39 |
/** |
36 | 40 |
* |
... | ... | |
311 | 315 |
|
312 | 316 |
} |
313 | 317 |
|
318 |
|
|
319 |
private class SavedPointFunction extends AbstractFunction { |
|
320 |
|
|
321 |
public SavedPointFunction() { |
|
322 |
super( |
|
323 |
"Project", |
|
324 |
"savedpoint", |
|
325 |
Range.is(1), |
|
326 |
"Return the value of the saved point with the name indicated.\n" |
|
327 |
+ "If the named point do not exists return null.", |
|
328 |
"savedpoint({{name}})", |
|
329 |
new String[]{ |
|
330 |
"name - String value with the name of the point" |
|
331 |
}, |
|
332 |
"Geometry" |
|
333 |
); |
|
334 |
} |
|
335 |
|
|
336 |
@Override |
|
337 |
public Object call(Interpreter interpreter, Object[] args) throws Exception { |
|
338 |
TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager(); |
|
339 |
TemporaryStorageGroup storage = manager.create("Points",Point.class); |
|
340 |
Geometry value = (Geometry) storage.get(getStr(args, 0)); |
|
341 |
return value; |
|
342 |
} |
|
343 |
|
|
344 |
} |
|
345 |
|
|
314 | 346 |
private class AreaFunction extends AbstractFunction { |
315 | 347 |
|
316 | 348 |
public AreaFunction() { |
... | ... | |
466 | 498 |
this.addFunction(new PropertyFunction()); |
467 | 499 |
this.addFunction(new AreaFunction()); |
468 | 500 |
this.addFunction(new PerimeterFunction()); |
501 |
this.addFunction(new SavedPointFunction()); |
|
469 | 502 |
} |
470 | 503 |
|
471 | 504 |
private MapContext getMapContext(Feature feature) { |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/ApplicationLibrary.java | ||
---|---|---|
35 | 35 |
import org.gvsig.app.gui.preferencespage.AppSymbolPreferences; |
36 | 36 |
import org.gvsig.app.project.DefaultProject; |
37 | 37 |
import org.gvsig.app.project.ProjectSymbolTable; |
38 |
import org.gvsig.app.project.documents.view.expressionevaluator.SavedPointsElementFactory; |
|
38 | 39 |
import org.gvsig.app.project.documents.view.expressionevaluator.ViewElementFactory; |
39 | 40 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLibrary; |
40 | 41 |
import org.gvsig.fmap.mapcontext.MapContextLibrary; |
... | ... | |
93 | 94 |
installBaseSymbols(); |
94 | 95 |
ProjectSymbolTable.selfRegister(); |
95 | 96 |
ViewElementFactory.selfRegister(); |
97 |
SavedPointsElementFactory.selfRegister(); |
|
96 | 98 |
} |
97 | 99 |
|
98 | 100 |
/** |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/SelectByAttributes.java | ||
---|---|---|
49 | 49 |
|
50 | 50 |
final JExpressionBuilder builder = swingManager.createJExpressionBuilder(); |
51 | 51 |
builder.addSymbolTable(DataManager.FEATURE_SYMBOL_TABLE); |
52 |
Element element = swingManager.createElement("View"); |
|
53 |
if (element != null) { |
|
54 |
builder.getElements().add(element); |
|
55 |
} |
|
56 |
element = swingManager.createElement( |
|
52 |
builder.addElement(swingManager.createElement("View")); |
|
53 |
builder.addElement( |
|
54 |
swingManager.createElement( |
|
57 | 55 |
DataSwingManager.FEATURE_STORE_EXPRESSION_ELEMENT, |
58 | 56 |
builder, |
59 | 57 |
store |
58 |
) |
|
60 | 59 |
); |
61 |
if (element != null) { |
|
62 |
builder.getElements().add(element); |
|
63 |
} |
|
64 | 60 |
panel.add(builder.asJComponent(), BorderLayout.CENTER); |
65 | 61 |
JPanel buttons = new JPanel(); |
66 | 62 |
buttons.setLayout(new FlowLayout(FlowLayout.RIGHT, 4, 4)); |
Also available in: Unified diff