Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.daltransform.app / org.gvsig.daltransform.app.mainplugin / src / main / java / org / gvsig / daltransform / swing / impl / DefaultJDataTransformList.java @ 40558

History | View | Annotate | Download (5.3 KB)

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

    
26
import java.awt.Color;
27

    
28
import javax.swing.DefaultListModel;
29
import javax.swing.JList;
30
import javax.swing.ListSelectionModel;
31
import javax.swing.event.ListSelectionEvent;
32
import javax.swing.event.ListSelectionListener;
33

    
34
import org.gvsig.daltransform.swing.JDataTransformList;
35
import org.gvsig.fmap.dal.feature.FeatureStore;
36
import org.gvsig.fmap.dal.feature.FeatureStoreTransform;
37
import org.gvsig.fmap.dal.feature.FeatureStoreTransforms;
38

    
39
/**
40
 * @author gvSIG Team
41
 * @version $Id$
42
 * 
43
 */
44
public class DefaultJDataTransformList extends JDataTransformList {
45

    
46
    private static final long serialVersionUID = 3179282558802329381L;
47

    
48
    private FeatureStore store;
49
    private JList l;
50
    DefaultListModel model;
51

    
52
    public DefaultJDataTransformList(FeatureStore store) {
53
        this.store = store;
54
        createComponents();
55
    }
56

    
57
    private void createComponents() {
58
        FeatureStoreTransforms transforms = this.store.getTransforms();
59
        model = new DefaultListModel();
60
        for (int i = 0; i < transforms.size(); i++) {
61
            model.addElement(new ItemData(transforms.getTransform(i)));
62
        }
63
        l = new JList(model);
64
        l.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
65
        this.add(l);
66
        this.setBackground(Color.WHITE);
67

    
68
    }
69

    
70
    @Override
71
    public void addListSelectionListener(ListSelectionListener actionListener) {
72
        this.l.addListSelectionListener(new ListSelectionListenerWrapper(this,
73
            actionListener));
74
    }
75

    
76
    private class ListSelectionListenerWrapper implements ListSelectionListener {
77

    
78
        private DefaultJDataTransformList list;
79
        private ListSelectionListener listListener;
80

    
81
        public ListSelectionListenerWrapper(DefaultJDataTransformList list,
82
            ListSelectionListener listListener) {
83
            this.list = list;
84
            this.listListener = listListener;
85
        }
86

    
87
        public void valueChanged(ListSelectionEvent e) {
88
            listListener.valueChanged(new ListSelectionEventWrapper(e, list));
89
        }
90
    }
91

    
92
    private class ListSelectionEventWrapper extends ListSelectionEvent {
93

    
94
        private static final long serialVersionUID = -8159225017709144435L;
95

    
96
        public ListSelectionEventWrapper(ListSelectionEvent e,
97
            DefaultJDataTransformList transformList) {
98
            super(transformList, e.getFirstIndex(), e.getLastIndex(), e
99
                .getValueIsAdjusting());
100
        }
101

    
102
    }
103

    
104
    private class ItemData {
105

    
106
        public FeatureStoreTransform transform;
107

    
108
        ItemData(FeatureStoreTransform transform) {
109
            this.transform = transform;
110
        }
111

    
112
        @Override
113
        public String toString() {
114
            return this.transform.getName();
115
        }
116

    
117
        public FeatureStoreTransform getTransform() {
118
            return transform;
119
        }
120

    
121
        @Override
122
        public boolean equals(Object obj) {
123
            return this.transform.equals(((ItemData) obj).transform);
124
        }
125
    }
126

    
127
    @Override
128
    public FeatureStoreTransform getSelected() {
129
        if ((l != null) && (l.getSelectedValue() != null)) {
130
            return ((ItemData) l.getSelectedValue()).getTransform();
131
        }
132
        return null;
133
    }
134

    
135
    @Override
136
    public void remove(FeatureStoreTransform transform) {
137
        this.store.getTransforms().remove(transform);
138
        model.removeElement(new ItemData(transform));
139
    }
140

    
141
    @Override
142
    public void addTransforms(FeatureStoreTransforms transforms) {
143
        for (int i = 0; i < transforms.size(); i++) {
144
            model.addElement(new ItemData(transforms.getTransform(i)));
145
        }
146
    }
147

    
148
    @Override
149
    public void removeAllTransforms() {
150
        model.removeAllElements();
151
    }
152

    
153
    @Override
154
    public void changeStore(FeatureStore featureStore) {
155
        this.store = featureStore;
156
    }
157

    
158
    @Override
159
    public int getTransformsCount() {
160
        return model.getSize();
161
    }
162

    
163
    @Override
164
    public boolean isLastTransform(FeatureStoreTransform selectedTransform) {
165

    
166
        ItemData selectedTransformItem = new ItemData(selectedTransform);
167
        ItemData lastTransformItem = (ItemData) model.get(model.size() - 1);
168

    
169
        if (selectedTransformItem.equals(lastTransformItem)) {
170
            return true;
171
        } else {
172
            return false;
173
        }
174
    }
175

    
176
    @Override
177
    public int getSelectedIndex() {
178
        return this.l.getSelectedIndex();
179
    }
180

    
181
}