Statistics
| Revision:

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
}