svn-gvsig-desktop / 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 / ViewLayersElement.java @ 44644
History | View | Annotate | Download (3.41 KB)
1 | 44190 | jjdelcerro | package org.gvsig.app.project.documents.view.expressionevaluator; |
---|---|---|---|
2 | |||
3 | import java.util.ArrayList; |
||
4 | 44263 | jjdelcerro | import java.util.Collection; |
5 | 44190 | jjdelcerro | import java.util.Iterator; |
6 | import java.util.List; |
||
7 | import org.gvsig.app.project.documents.view.ViewDocument; |
||
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.Element.SimpleElement; |
||
12 | 44262 | jjdelcerro | import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig; |
13 | 44190 | jjdelcerro | import org.gvsig.expressionevaluator.swing.spi.AbstractElement; |
14 | import org.gvsig.fmap.dal.swing.DALSwingLocator; |
||
15 | import org.gvsig.fmap.dal.swing.DataSwingManager; |
||
16 | import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement; |
||
17 | import org.gvsig.fmap.mapcontext.layers.FLayer; |
||
18 | import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer; |
||
19 | import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
||
20 | |||
21 | /**
|
||
22 | *
|
||
23 | * @author jjdelcerro
|
||
24 | */
|
||
25 | public class ViewLayersElement |
||
26 | extends AbstractElement
|
||
27 | implements GroupElement, SimpleElement {
|
||
28 | |||
29 | private class LayerEntryElement |
||
30 | extends AbstractElement
|
||
31 | implements ConstantElement {
|
||
32 | |||
33 | private final FLayer layer; |
||
34 | |||
35 | public LayerEntryElement(ViewDocument view, FLayer layer) {
|
||
36 | 44259 | jjdelcerro | super(layer.getName(), layer.getName(), "expressionbuilder-element-constant"); |
37 | 44190 | jjdelcerro | this.layer = layer;
|
38 | } |
||
39 | |||
40 | @Override
|
||
41 | public Object getValue() { |
||
42 | return layer.getName();
|
||
43 | } |
||
44 | } |
||
45 | |||
46 | 44262 | jjdelcerro | private final List<Element> children; |
47 | 44190 | jjdelcerro | |
48 | public ViewLayersElement(ViewDocument view) {
|
||
49 | super(view.getName());
|
||
50 | |||
51 | DataSwingManager dalSwingManager = DALSwingLocator.getSwingManager(); |
||
52 | |||
53 | 44262 | jjdelcerro | this.children = new ArrayList<>(); |
54 | 44190 | jjdelcerro | Iterator<FLayer> it = view.deepiterator();
|
55 | while( it.hasNext() ) {
|
||
56 | FLayer layer = it.next(); |
||
57 | if( layer instanceof SingleLayer ) { |
||
58 | if( layer instanceof FLyrVect ) { |
||
59 | 44259 | jjdelcerro | FeatureStoreElement e = dalSwingManager.createFeatureStoreElement(); |
60 | 44190 | jjdelcerro | e.setFeatureStore(((FLyrVect) layer).getFeatureStore()); |
61 | e.setName(layer.getName()); |
||
62 | 44262 | jjdelcerro | this.children.add(e);
|
63 | 44190 | jjdelcerro | } else {
|
64 | ConstantElement e = new LayerEntryElement(view, layer);
|
||
65 | 44262 | jjdelcerro | this.children.add(e);
|
66 | 44190 | jjdelcerro | } |
67 | } |
||
68 | } |
||
69 | } |
||
70 | |||
71 | @Override
|
||
72 | 44262 | jjdelcerro | public Element setConfig(ExpressionBuilderConfig config) { |
73 | super.setConfig(config);
|
||
74 | for (Element child : this.children) { |
||
75 | child.setConfig(config); |
||
76 | } |
||
77 | return this; |
||
78 | } |
||
79 | |||
80 | @Override
|
||
81 | 44263 | jjdelcerro | public Collection<Element> getValues() { |
82 | return this.children; |
||
83 | } |
||
84 | |||
85 | @Override
|
||
86 | 44190 | jjdelcerro | public Element get(int index) { |
87 | 44262 | jjdelcerro | return this.children.get(index); |
88 | 44190 | jjdelcerro | } |
89 | |||
90 | @Override
|
||
91 | public int size() { |
||
92 | 44262 | jjdelcerro | return this.children.size(); |
93 | 44190 | jjdelcerro | } |
94 | |||
95 | @Override
|
||
96 | public Iterator<Element> iterator() { |
||
97 | 44262 | jjdelcerro | return this.children.iterator(); |
98 | 44190 | jjdelcerro | } |
99 | |||
100 | @Override
|
||
101 | public void addElement(Element element) { |
||
102 | 44262 | jjdelcerro | this.children.add(element);
|
103 | 44190 | jjdelcerro | } |
104 | |||
105 | @Override
|
||
106 | public void addElement(Function function) { |
||
107 | throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
||
108 | } |
||
109 | |||
110 | @Override
|
||
111 | public List<Element> getElements() { |
||
112 | 44262 | jjdelcerro | return this.children; |
113 | 44190 | jjdelcerro | } |
114 | |||
115 | } |