Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.swing / org.gvsig.raster.swing.impl / src / main / java / org / gvsig / raster / swing / impl / pagedtable / PagedTableImpl.java @ 2443

History | View | Annotate | Download (5.57 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 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 2
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.raster.swing.impl.pagedtable;
25

    
26
import javax.swing.JComponent;
27
import javax.swing.JTable;
28

    
29
import org.gvsig.raster.swing.pagedtable.ModelLoader;
30
import org.gvsig.raster.swing.pagedtable.PagedTable;
31
import org.gvsig.raster.swing.pagedtable.PagedTableEvent;
32
import org.gvsig.raster.swing.pagedtable.PagedTableListener;
33
import org.gvsig.raster.swing.pagedtable.TableModel;
34

    
35

    
36
/**
37
 * Paged table
38
 * 
39
 * @author Nacho Brodin (nachobrodin@gmail.com)
40
 */
41
public class PagedTableImpl implements PagedTable {
42
        private static final long          serialVersionUID       = 1L;
43
        private ModelLoader                modelLoader            = null;
44
        private PagedTablePanel            panel                  = null;
45
        private PaginationBarPanel         paginationBar          = null;
46
        private TableEntryControllerPanel  tableEntryController   = null;
47
        private TableControllerListener    tableListener          = null;
48
        private MoveRowsPanel              moveRowsPanel          = null;
49
        private Pager                      pager                  = null;
50
        
51
        public PagedTableImpl(ModelLoader modelLoader) {
52
                this.modelLoader = modelLoader;
53
                tableListener = new TableControllerListener(this);
54
                getPager().addObserver(getTableEntryController());
55
                getPager().addObserver(getPaginationBar());
56
                getPager().addObserver(getMoveRowsPanel());
57
                getPager().addObserver(getPagedTablePanel());
58
        }
59
        
60
        public Pager getPager() {
61
                if(pager == null) {
62
                        pager = new Pager(0, this);
63
                }
64
                return pager;
65
        }
66
        
67
        public TableEntryControllerPanel getTableEntryController() {
68
                if(tableEntryController == null) {
69
                        tableEntryController = new TableEntryControllerPanel(tableListener);
70
                }
71
                return tableEntryController;
72
        }
73
        
74
        public PagedTablePanel getPagedTablePanel() {
75
                if(panel == null) {
76
                        panel = new PagedTablePanel(modelLoader, 
77
                                        getPager(), 
78
                                        getPaginationBar(), 
79
                                        getMoveRowsPanel(),
80
                                        getTableEntryController());
81
                }
82
                return panel;
83
        }
84
        
85
        public Object getValueAt(int row, int column) {
86
                Object[] entry = pager.getEntry(row);
87
                if(entry != null && column >= 0 && column < entry.length)
88
                        return entry[column];
89
                return null;
90
        }
91
        
92
        public void setValueAt(Object obj, int row, int column) {
93
                Object[] entry = pager.getEntry(row);
94
                if(entry != null && column >= 0 && column < entry.length)
95
                        entry[column] = obj;
96
                pager.throwEvent(PagedTableEvent.EVENT_MODIFY_ENTRY, new int[]{row});
97
        }
98
        
99
        public int getColumnCount() {
100
                return panel.getJTable().getModel().getColumnCount();
101
        }
102
        
103
        public int getRowCount() {
104
                return pager.getEntriesCount();
105
        }
106
        
107
        public MoveRowsPanel getMoveRowsPanel() {
108
                if (moveRowsPanel == null) {
109
                        moveRowsPanel = new MoveRowsPanel(tableListener);
110
                }
111
                return moveRowsPanel;
112
        }
113
        
114
        public PaginationBarPanel getPaginationBar() {
115
                if(paginationBar == null) {
116
                        paginationBar = new PaginationBarPanel(tableListener);
117
                }
118
                return paginationBar;
119
        }
120
        
121
        public void addRow(Object[] list) {
122
                pager.addEntry(list);
123
        }
124
        
125
        public void delRow(int i) {
126
                pager.removeEntry(i);
127
        }
128
        
129
        public void removeAllRows() {
130
                pager.removeAllEntries();
131
        }
132
        
133
        public void removeAllRowsWithoutAsk() {
134
                pager.removeAllEntriesWithoutAsk();
135
        }
136
        
137
        public int[] getSelectedRows() {
138
                return pager.getSelectedRows();
139
        }
140
        
141
        public void swapRow(int i, int j) {
142
                pager.swapRow(i, j);
143
        }
144
        
145
        public void setSelectedRows(int[] rows) {
146
                pager.setSelectedRows(rows);
147
        }
148
        
149
        public void setSelectedRow(int row) {
150
                if(row == -1) {
151
                        pager.setSelectedRows(new int[]{pager.getEntriesCount() - 1});
152
                } else {
153
                        pager.setSelectedRows(new int[]{row});
154
                }
155
        }
156
        
157
        public void addSelectedRow(int row) {
158
                pager.addSelectedRow(row);
159
        }
160
        
161
        public void increaseSelectedRows() {
162
                pager.increaseSelectedRows();
163
        }
164
        
165
        public void decreaseSelectedRows() {
166
                pager.decreaseSelectedRows();
167
        }
168
        
169
        public void nextPage() {
170
                pager.increaseSelectedPage();
171
        }
172
        
173
        public void prevPage() {
174
                pager.decreaseSelectedPage();
175
        }
176
        
177
        public void setSelectedPage(int pageNumber) {
178
                pager.setSelectedPage(pageNumber);
179
        }
180
        
181
        public TableModel getTableModel() {
182
                return modelLoader.getTableModel();
183
        }
184
        
185
        public JComponent getComponent() {
186
                return panel;
187
        }
188
        
189
        public JTable getJTable() {
190
                return panel.getJTable();
191
        }
192
        
193
        public void showMoveRowsControls(boolean show) {
194
                getMoveRowsPanel().setVisible(false);
195
        }
196
        
197
        public void showControllerTable(boolean show) {
198
                getTableEntryController().setVisible(false);
199
        }
200
        
201
        public void addListener(PagedTableListener listener) {
202
                pager.addListener(listener);
203
        }
204
        
205
        public void setConfirmationMessageDeleteAllEntries(String message) {
206
                pager.setConfirmationMessageDeleteAllEntries(message);
207
        }
208
        
209
        public void setConfirmationMessageDeleteOneEntry(String message) {
210
                pager.setConfirmationMessageDeleteOneEntry(message);
211
        }
212
}