Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster.wms2 / org.gvsig.raster.wms2.provider / src / main / java / org / gvsig / raster / wms / provider / DefaultWMSLayerNode.java @ 8688

History | View | Annotate | Download (4.57 KB)

1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2018 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.raster.wms.provider;
24

    
25
import java.util.ArrayList;
26
import java.util.Collections;
27
import java.util.Enumeration;
28
import java.util.Iterator;
29
import java.util.List;
30

    
31
import javax.swing.tree.TreeNode;
32

    
33
import org.apache.commons.lang3.StringUtils;
34

    
35
import org.gvsig.fmap.dal.OpenDataStoreParameters;
36
import org.gvsig.remoteclient.wms.WMSLayer;
37
import org.gvsig.remoteclient.wms.WMSStyle;
38

    
39

    
40
/**
41
 * @author fdiaz
42
 *
43
 */
44
public class DefaultWMSLayerNode implements WMSLayerNode {
45

    
46
    private TreeNode parent;
47
    private List<WMSLayerNode> children;
48
    private List<WMSStyleData> styles;
49
    private int selectedStyleIndex = -1;
50
    private String name;
51
    private String title;
52

    
53
    /**
54
     * @param layer
55
     * @param parent
56
     *
57
     */
58
    public DefaultWMSLayerNode(WMSLayer layer, TreeNode parent) {
59
        this.name = layer.getName();
60
        this.title = layer.getTitle();
61
        this.parent = parent;
62
        setSelectedStyleIndex(-1);
63
        ArrayList<WMSStyle> layerStyles = layer.getStyles();
64
        styles = new ArrayList<>(layerStyles.size());
65
        for (Iterator<WMSStyle> iterator = layerStyles.iterator(); iterator.hasNext();) {
66
            WMSStyle wmsStyle = iterator.next();
67
            styles.add(new DefaultWMSStyle(wmsStyle));
68
        }
69
        if(layerStyles.size()>0){
70
            setSelectedStyleIndex(0);
71
        }
72

    
73
        ArrayList<WMSLayer> layerChildren = layer.getChildren();
74
        children = new ArrayList<>(layerChildren.size());
75
        for (Iterator<WMSLayer> iterator = layerChildren.iterator(); iterator.hasNext();) {
76
            WMSLayer wmsLayer = iterator.next();
77
            children.add(new DefaultWMSLayerNode(wmsLayer, this));
78
        }
79
    }
80

    
81
    @Override
82
    public TreeNode getChildAt(int childIndex) {
83
        return children.get(childIndex);
84
    }
85

    
86
    @Override
87
    public int getChildCount() {
88
        return children.size();
89
    }
90

    
91
    @Override
92
    public TreeNode getParent() {
93
        return parent;
94
    }
95

    
96
    @Override
97
    public int getIndex(TreeNode node) {
98
        for(int i =0; i<children.size(); i++){
99
            if(children.get(i).equals(node)){
100
                return i;
101
            }
102
        }
103
        return -1;
104
    }
105

    
106
    @Override
107
    public boolean getAllowsChildren() {
108
        return (children.size() > 0);
109
    }
110

    
111
    @Override
112
    public boolean isLeaf() {
113
        return (children.size() == 0);
114
    }
115

    
116
    @Override
117
    public Enumeration children() {
118
        return Collections.enumeration(children);
119
    }
120

    
121
    @Override
122
    public int getSelectedStyleIndex() {
123
        return selectedStyleIndex;
124
    }
125

    
126
    @Override
127
    public void setSelectedStyleIndex(int selectedStyle) {
128
        this.selectedStyleIndex = selectedStyle;
129
    }
130

    
131
    @Override
132
    public WMSStyleData getSelectedStyle() {
133
        if(selectedStyleIndex>=0 && selectedStyleIndex<styles.size()){
134
            return styles.get(selectedStyleIndex);
135
        }
136
        return null;
137
    }
138

    
139
    @Override
140
    public void setSelectedStyle(WMSStyleData defaultWMSStyle) {
141
        this.selectedStyleIndex = styles.indexOf(defaultWMSStyle);
142
    }
143

    
144
    @Override
145
    public List<WMSStyleData> getStyles() {
146
        return styles;
147
    }
148

    
149
    @Override
150
    public String toString() {
151
        String str;
152
            if (StringUtils.isEmpty(name)) {
153
                str = title;
154
            } else {
155
                str = "[" + name + "] " + title;
156
            }
157
        return str;
158
    }
159

    
160
    @Override
161
    public String getName() {
162
        return name;
163
    }
164

    
165
    @Override
166
    public String getTitle() {
167
        return title;
168
    }
169

    
170
    @Override
171
    public OpenDataStoreParameters getParameters() {
172
        // TODO Auto-generated method stub
173
        return null;
174
    }
175

    
176

    
177
}