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

History | View | Annotate | Download (4.87 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

    
28
import org.gvsig.raster.swing.pagedtable.ModelLoader;
29
import org.gvsig.raster.swing.pagedtable.PagedTable;
30
import org.gvsig.raster.swing.pagedtable.TableModel;
31

    
32

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