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 @ 45739

History | View | Annotate | Download (2.94 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 void addItem(T item);
25
    }
26

    
27
    public interface AggregateItemController<T> {
28

    
29
        public void setEnabled(boolean b);
30

    
31
        public void put(T item);
32

    
33
        public boolean fetch(T item);
34

    
35
        public void clean();
36
        
37
        public boolean isEditing();
38
    }
39

    
40
    public final AggregateModel EMPTY_MODEL = new AggregateModel() {
41
        @Override
42
        public Object createItem() {
43
            return null;
44
        }
45

    
46
        @Override
47
        public void addItem(Object item) {
48
        }
49

    
50
        @Override
51
        public Object get(int position) {
52
            return null;
53
        }
54

    
55
        @Override
56
        public Iterator iterator() {
57
            return Collections.EMPTY_LIST.iterator();
58
        }
59

    
60
        @Override
61
        public int getRowCount() {
62
            return 0;
63
        }
64

    
65
        @Override
66
        public int getColumnCount() {
67
            return 0;
68
        }
69

    
70
        @Override
71
        public String getColumnName(int columnIndex) {
72
            return "";
73
        }
74

    
75
        @Override
76
        public Class<?> getColumnClass(int columnIndex) {
77
            return String.class;
78
        }
79

    
80
        @Override
81
        public boolean isCellEditable(int rowIndex, int columnIndex) {
82
            return false;
83
        }
84

    
85
        @Override
86
        public Object getValueAt(int rowIndex, int columnIndex) {
87
            return "";
88
        }
89

    
90
        @Override
91
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
92
        }
93

    
94
        @Override
95
        public void addTableModelListener(TableModelListener l) {
96
        }
97

    
98
        @Override
99
        public void removeTableModelListener(TableModelListener l) {
100
        }
101
    };
102

    
103
    public void acceptModifications();
104

    
105
    public void deleteCurrentItem();
106

    
107
    public void discardModificactions();
108

    
109
    public AggregateModel<T> getModel();
110

    
111
    public boolean isEditing();
112

    
113
    public void modifyCurrentItem();
114

    
115
    public void newItem();
116

    
117
    public void setCurrentRow(int row);
118
    
119
    public int getCurrentRow(); 
120

    
121
    public void setModel(AggregateModel<T> model);
122
    
123
    public AggregateItemController<T> getItemController();
124
    
125
    public void setCanCreate(boolean canCreate);
126

    
127
    public void setCanModify(boolean canModify);
128

    
129
    public void setCanDelete(boolean canDelete);
130
    
131
    public boolean canCreate();
132
    
133
    public boolean canModify();
134
    
135
    public boolean canDelete();
136
}