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 / AggregateController.java @ 46876

History | View | Annotate | Download (3.48 KB)

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

    
3
import java.util.Collections;
4
import java.util.Iterator;
5
import javax.swing.event.TableModelListener;
6
import javax.swing.table.TableModel;
7
import org.gvsig.tools.util.GetItem;
8

    
9
/**
10
 *
11
 * @author gvSIG Team
12
 * @param <T>
13
 */
14
public interface AggregateController<T> {
15
    
16
    public static final int MODE_EDIT_PART = 0;
17
    public static final int MODE_EDIT_ALL = 1;
18
    public static final int MODE_SHOW_ONLY = 2;
19
    
20
    public interface AggregateModel<T> extends GetItem<T>, Iterable<T>, TableModel {
21

    
22
        public T createItem();
23

    
24
        public int addItem(T item);
25
        
26
        public void itemUpdated(int position);
27
        
28
        public void fetch(Object container);
29
    }
30

    
31
    public interface AggregateItemController<T> {
32

    
33
        public void setEnabled(boolean b);
34
        
35
        public boolean isEnabled();
36
        
37
        public void put(T item);
38

    
39
        public boolean fetch(T item);
40

    
41
        public void clean();
42
        
43
        public boolean isEditing();
44
        
45
        public void setAggregateModel(AggregateController.AggregateModel model);
46
    }
47

    
48
    public final AggregateModel EMPTY_MODEL = new AggregateModel() {
49
        @Override
50
        public Object createItem() {
51
            return null;
52
        }
53

    
54
        @Override
55
        public int addItem(Object item) {
56
            return -1;
57
        }
58

    
59
        @Override
60
        public void itemUpdated(int position) {
61
        }
62
        
63
        @Override
64
        public void fetch(Object container) {
65
        }
66

    
67
        @Override
68
        public Object get(int position) {
69
            return null;
70
        }
71

    
72
        @Override
73
        public Iterator iterator() {
74
            return Collections.EMPTY_LIST.iterator();
75
        }
76

    
77
        @Override
78
        public int getRowCount() {
79
            return 0;
80
        }
81

    
82
        @Override
83
        public int getColumnCount() {
84
            return 0;
85
        }
86

    
87
        @Override
88
        public String getColumnName(int columnIndex) {
89
            return "";
90
        }
91

    
92
        @Override
93
        public Class<?> getColumnClass(int columnIndex) {
94
            return String.class;
95
        }
96

    
97
        @Override
98
        public boolean isCellEditable(int rowIndex, int columnIndex) {
99
            return false;
100
        }
101

    
102
        @Override
103
        public Object getValueAt(int rowIndex, int columnIndex) {
104
            return "";
105
        }
106

    
107
        @Override
108
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
109
        }
110

    
111
        @Override
112
        public void addTableModelListener(TableModelListener l) {
113
        }
114

    
115
        @Override
116
        public void removeTableModelListener(TableModelListener l) {
117
        }
118
    };
119

    
120
    public void acceptModifications();
121

    
122
    public void deleteCurrentItem();
123

    
124
    public void discardModificactions();
125

    
126
    public AggregateModel<T> getModel();
127

    
128
    public boolean isEditing();
129

    
130
    public void modifyCurrentItem();
131

    
132
    public void newItem();
133

    
134
    public void setCurrentRow(int row);
135
    
136
    public int getCurrentRow(); 
137

    
138
    public void setModel(AggregateModel<T> model);
139
    
140
    public AggregateItemController<T> getItemController();
141
    
142
    public void setCanCreate(boolean canCreate);
143

    
144
    public void setCanModify(boolean canModify);
145

    
146
    public void setCanDelete(boolean canDelete);
147
    
148
    public boolean canCreate();
149
    
150
    public boolean canModify();
151
    
152
    public boolean canDelete();
153
    
154
    public boolean isEnabled();
155
    
156
    public void setEnabled(boolean enabled);
157
    
158
    public void clean();
159
    
160
}