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

History | View | Annotate | Download (3.13 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.spi.AbstractElement;
12
import org.gvsig.fmap.dal.swing.DALSwingLocator;
13
import org.gvsig.fmap.dal.swing.DataSwingManager;
14
import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement;
15
import org.gvsig.fmap.mapcontext.layers.FLayer;
16
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
17
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
18

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

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

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

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

    
44
    private final List<Element> childs;
45

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

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

    
69
    @Override
70
    public Element get(int index) {
71
        return this.childs.get(index);
72
    }
73

    
74
    @Override
75
    public int size() {
76
        return this.childs.size();
77
    }
78

    
79
    @Override
80
    public Iterator<Element> iterator() {
81
        return this.childs.iterator();
82
    }
83

    
84
    @Override
85
    public void addElement(Element element) {
86
        this.childs.add(element);
87
    }
88

    
89
    @Override
90
    public void addElement(Function function) {
91
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
92
    }
93

    
94
    @Override
95
    public List<Element> getElements() {
96
        return this.childs;
97
    }
98

    
99
    @Override
100
    public boolean hasSubgroups() {
101
        return true;
102
    }
103

    
104
    @Override
105
    public boolean hasMoreElements() {
106
        return false;
107
    }
108

    
109
}