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 / featuretype / tags / TagsModel.java @ 46876

History | View | Annotate | Download (2.84 KB)

1
package org.gvsig.fmap.dal.swing.impl.featuretype.tags;
2

    
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
import java.util.Objects;
7
import javax.swing.table.AbstractTableModel;
8
import org.gvsig.fmap.dal.swing.impl.featuretype.AggregateController;
9
import org.gvsig.tools.ToolsLocator;
10
import org.gvsig.tools.dynobject.Tags;
11
import org.gvsig.tools.dynobject.impl.DefaultTags;
12
import org.gvsig.tools.i18n.I18nManager;
13

    
14
/**
15
 *
16
 * @author gvSIG Team
17
 */
18
public class TagsModel 
19
    extends AbstractTableModel
20
    implements AggregateController.AggregateModel<Tag>
21
    {
22

    
23
    private List<Tag> tagList;
24
    private final String[] columnNames;
25
    
26
    public TagsModel(Tags tags) {
27
        I18nManager i18n = ToolsLocator.getI18nManager();
28
        this.setTags(tags);
29
        this.columnNames = new String[] { 
30
            i18n.getTranslation("_Name"), 
31
            i18n.getTranslation("_Value") 
32
        };
33
    }
34
    
35
    public final Tags getTags() {
36
        Tags theTags = new DefaultTags();
37
        for (Tag tag : this.tagList) {
38
            theTags.set(tag.getName(), tag.getValue());
39
        }
40
        return theTags;
41
    }
42
    
43
    public final void setTags(Tags tags) {
44
        this.tagList = new ArrayList<>();
45
        if( tags == null ) {
46
            return;
47
        }
48
        for (String tagName : tags) {
49
            Tag tag = new Tag();
50
            tag.setName(tagName);
51
            tag.setValue(tags.get(tagName));
52
            this.tagList.add(tag);
53
        }
54
    }
55
    
56
    @Override
57
    public void fetch(Object container) {
58
        Tags theTags = (Tags) container;
59
        theTags.removeAll();
60
        for (Tag tag : this.tagList) {
61
            theTags.set(tag.getName(), tag.getValue());
62
        }
63
    }
64
    
65
    @Override
66
    public int getRowCount() {
67
        return this.tagList.size();
68
    }
69

    
70
    @Override
71
    public int getColumnCount() {
72
        return 2;
73
    }
74

    
75
    @Override
76
    public String getColumnName(int column) {
77
        return this.columnNames[column];
78
    }
79
    
80
    @Override
81
    public Object getValueAt(int rowIndex, int columnIndex) {
82
        Tag tag = this.tagList.get(rowIndex);
83
        switch(columnIndex) {
84
            case 0:
85
                return tag.getName();
86
            case 1:
87
                return Objects.toString(tag.getValue());
88
            default:
89
                return "";
90
        }
91
    }
92

    
93
    @Override
94
    public Tag createItem() {
95
        return new Tag();
96
    }
97

    
98
    @Override
99
    public int addItem(Tag item) {
100
        this.tagList.add(item);
101
        this.fireTableDataChanged();
102
        return this.tagList.size()-1;
103
    }
104

    
105
    @Override
106
    public void itemUpdated(int position) {
107
        this.fireTableDataChanged();
108
    }
109

    
110
    @Override
111
    public Tag get(int position) {
112
        return tagList.get(position);
113
    }
114

    
115
    @Override
116
    public Iterator<Tag> iterator() {
117
        return tagList.iterator();
118
    }
119

    
120
}