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 @ 44262

History | View | Annotate | Download (3.44 KB)

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 org.gvsig.app.project.documents.view.ViewDocument;
7
import org.gvsig.expressionevaluator.Function;
8
import org.gvsig.expressionevaluator.swing.Element;
9
import org.gvsig.expressionevaluator.swing.Element.GroupElement;
10
import org.gvsig.expressionevaluator.swing.Element.SimpleElement;
11
import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig;
12
import org.gvsig.expressionevaluator.swing.spi.AbstractElement;
13
import org.gvsig.fmap.dal.swing.DALSwingLocator;
14
import org.gvsig.fmap.dal.swing.DataSwingManager;
15
import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement;
16
import org.gvsig.fmap.mapcontext.layers.FLayer;
17
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
18
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
19

    
20
/**
21
 *
22
 * @author jjdelcerro
23
 */
24
public class ViewLayersElement
25
        extends AbstractElement
26
        implements GroupElement, SimpleElement {
27

    
28
    private class LayerEntryElement
29
            extends AbstractElement
30
            implements ConstantElement {
31

    
32
        private final FLayer layer;
33
        
34
        public LayerEntryElement(ViewDocument view, FLayer layer) {
35
            super(layer.getName(), layer.getName(), "expressionbuilder-element-constant");
36
            this.layer = layer;
37
        }
38

    
39
        @Override
40
        public Object getValue() {
41
            return layer.getName();
42
        }
43
    }
44

    
45
    private final List<Element> children;
46

    
47
    public ViewLayersElement(ViewDocument view) {
48
        super(view.getName());
49
        
50
        DataSwingManager dalSwingManager = DALSwingLocator.getSwingManager();
51

    
52
        this.children = new ArrayList<>();
53
        Iterator<FLayer> it = view.deepiterator();
54
        while( it.hasNext() ) {
55
            FLayer layer = it.next();
56
            if( layer instanceof SingleLayer ) {
57
                if( layer instanceof FLyrVect ) {
58
                    FeatureStoreElement e = dalSwingManager.createFeatureStoreElement();
59
                    e.setFeatureStore(((FLyrVect) layer).getFeatureStore());
60
                    e.setName(layer.getName());
61
                    this.children.add(e);
62
                } else {
63
                    ConstantElement e = new LayerEntryElement(view, layer);
64
                    this.children.add(e);
65
                }
66
            }
67
        }
68
    }
69

    
70
    @Override
71
    public Element setConfig(ExpressionBuilderConfig config) {
72
        super.setConfig(config); 
73
        for (Element child : this.children) {
74
            child.setConfig(config);
75
        }
76
        return this;
77
    }
78

    
79
    @Override
80
    public Element get(int index) {
81
        return this.children.get(index);
82
    }
83

    
84
    @Override
85
    public int size() {
86
        return this.children.size();
87
    }
88

    
89
    @Override
90
    public Iterator<Element> iterator() {
91
        return this.children.iterator();
92
    }
93

    
94
    @Override
95
    public void addElement(Element element) {
96
        this.children.add(element);
97
    }
98

    
99
    @Override
100
    public void addElement(Function function) {
101
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
102
    }
103

    
104
    @Override
105
    public List<Element> getElements() {
106
        return this.children;
107
    }
108

    
109
    @Override
110
    public boolean hasSubgroups() {
111
        return true;
112
    }
113

    
114
    @Override
115
    public boolean hasMoreElements() {
116
        return false;
117
    }
118

    
119
}