Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.swing / org.gvsig.fmap.dal.swing.impl / src / main / java / org / gvsig / fmap / dal / swing / impl / expressionevaluator / DefaultFeatureStoreElement2.java @ 44262

History | View | Annotate | Download (4.05 KB)

1
package org.gvsig.fmap.dal.swing.impl.expressionevaluator;
2

    
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
import org.gvsig.expressionevaluator.Function;
7
import org.gvsig.expressionevaluator.swing.Element;
8
import org.gvsig.expressionevaluator.swing.Element.GroupElement;
9
import org.gvsig.expressionevaluator.swing.Element.SimpleElement;
10
import org.gvsig.expressionevaluator.swing.spi.AbstractElement;
11
import org.gvsig.fmap.dal.feature.FeatureStore;
12
import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement;
13
import org.gvsig.fmap.dal.swing.impl.searchpanel.AdvancedAttributeSelectionTreeModel;
14
import org.gvsig.fmap.dal.swing.impl.searchpanel.AdvancedAttributeSelectionTreeModel.Node;
15

    
16
/**
17
 *
18
 * @author jjdelcerro
19
 */
20
public class DefaultFeatureStoreElement2
21
        extends AbstractElement
22
        implements SimpleElement, GroupElement, FeatureStoreElement {
23

    
24
    private List<Element> elements;
25

    
26
    private class Entry
27
            extends AbstractElement
28
            implements SimpleElement, GroupElement {
29

    
30
        private final Node me;
31
        private List<Element> elements;
32

    
33
        public Entry(Node me) {
34
            super(
35
                    me.getLabel(), 
36
                    me.getValue().getName(), 
37
                    me.isLeaf()? "featurestore-column" : "featurestore-foreing-key"
38
            );
39
            this.me = me;
40
        }
41

    
42
        @Override
43
        public Element get(int index) {
44
            return this.getElements().get(index);
45
        }
46

    
47
        @Override
48
        public int size() {
49
            return this.getElements().size();
50
        }
51

    
52
        @Override
53
        public Iterator<Element> iterator() {
54
            return this.getElements().iterator();
55
        }
56

    
57
        @Override
58
        public void addElement(Element element) {
59
        }
60

    
61
        @Override
62
        public void addElement(Function function) {
63
        }
64

    
65
        @Override
66
        public List<Element> getElements() {
67
            if (this.elements == null) {
68
                this.elements = new ArrayList<>();
69
                List<Node> children = me.getChilds();
70
                for (Node child : children) {
71
                    Entry e = new Entry(child);
72
                    this.elements.add(e);
73
                }
74
            }
75
            return this.elements;
76
        }
77

    
78
        @Override
79
        public boolean hasSubgroups() {
80
            return !me.isLeaf();
81
        }
82

    
83
        @Override
84
        public boolean hasMoreElements() {
85
            return false;
86
        }
87

    
88
    }
89

    
90
    private final AdvancedAttributeSelectionTreeModel treemodel;
91

    
92
    public DefaultFeatureStoreElement2(FeatureStore store) {
93
        super("store", "store", "featurestore-table");
94
        this.treemodel = new AdvancedAttributeSelectionTreeModel(store, null);
95
    }
96

    
97
    @Override
98
    public Element get(int index) {
99
        return this.getElements().get(index);
100
    }
101

    
102
    @Override
103
    public int size() {
104
        return this.getElements().size();
105
    }
106

    
107
    @Override
108
    public Iterator<Element> iterator() {
109
        return this.getElements().iterator();
110
    }
111

    
112
    @Override
113
    public void addElement(Element element) {
114
    }
115

    
116
    @Override
117
    public void addElement(Function function) {
118
    }
119

    
120
    @Override
121
    public List<Element> getElements() {
122
        if (this.elements == null) {
123
            this.elements = new ArrayList<>();
124
            Node root = (Node) treemodel.getRoot();
125
            List<Node> children = root.getChilds();
126
            for (Node child : children) {
127
                Entry e = new Entry(child);
128
                this.elements.add(e);
129
            }
130
        }
131
        return this.elements;
132
    }
133

    
134
    @Override
135
    public boolean hasSubgroups() {
136
        return true;
137
    }
138

    
139
    @Override
140
    public boolean hasMoreElements() {
141
        return false;
142
    }
143

    
144
    @Override
145
    public void setName(String name) {
146
        // TODO: Por implementar
147
    }
148

    
149
    @Override
150
    public void setFeatureStore(FeatureStore store) {
151
        // TODO: Por implementar
152
    }
153

    
154
    @Override
155
    public FeatureStore getFeatureStore() {
156
        // TODO: Por implementar
157
        return null;
158
    }
159
}